You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2018/07/03 20:06:16 UTC
[01/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Repository: hbase-site
Updated Branches:
refs/heads/asf-site 8e541fb05 -> bcb555af5
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html
index 8cb24b3..bd3c59e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html
@@ -426,1268 +426,1286 @@
<span class="sourceLineNo">418</span> * @param inMemory if block is in-memory<a name="line.418"></a>
<span class="sourceLineNo">419</span> * @param wait if true, blocking wait when queue is full<a name="line.419"></a>
<span class="sourceLineNo">420</span> */<a name="line.420"></a>
-<span class="sourceLineNo">421</span> public void cacheBlockWithWait(BlockCacheKey cacheKey, Cacheable cachedItem, boolean inMemory,<a name="line.421"></a>
+<span class="sourceLineNo">421</span> private void cacheBlockWithWait(BlockCacheKey cacheKey, Cacheable cachedItem, boolean inMemory,<a name="line.421"></a>
<span class="sourceLineNo">422</span> boolean wait) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span> if (LOG.isTraceEnabled()) LOG.trace("Caching key=" + cacheKey + ", item=" + cachedItem);<a name="line.423"></a>
-<span class="sourceLineNo">424</span> if (!cacheEnabled) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span> return;<a name="line.425"></a>
-<span class="sourceLineNo">426</span> }<a name="line.426"></a>
-<span class="sourceLineNo">427</span><a name="line.427"></a>
-<span class="sourceLineNo">428</span> if (backingMap.containsKey(cacheKey) || ramCache.containsKey(cacheKey)) {<a name="line.428"></a>
-<span class="sourceLineNo">429</span> Cacheable existingBlock = getBlock(cacheKey, false, false, false);<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span> try {<a name="line.431"></a>
-<span class="sourceLineNo">432</span> int comparison = BlockCacheUtil.validateBlockAddition(existingBlock, cachedItem, cacheKey);<a name="line.432"></a>
-<span class="sourceLineNo">433</span> if (comparison != 0) {<a name="line.433"></a>
-<span class="sourceLineNo">434</span> if (comparison < 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize. Keeping cached block.");<a name="line.435"></a>
-<span class="sourceLineNo">436</span> return;<a name="line.436"></a>
-<span class="sourceLineNo">437</span> } else {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize. Caching new block.");<a name="line.438"></a>
-<span class="sourceLineNo">439</span> }<a name="line.439"></a>
-<span class="sourceLineNo">440</span> } else {<a name="line.440"></a>
-<span class="sourceLineNo">441</span> String msg = "Caching an already cached block: " + cacheKey;<a name="line.441"></a>
-<span class="sourceLineNo">442</span> msg += ". This is harmless and can happen in rare cases (see HBASE-8547)";<a name="line.442"></a>
-<span class="sourceLineNo">443</span> LOG.warn(msg);<a name="line.443"></a>
-<span class="sourceLineNo">444</span> return;<a name="line.444"></a>
-<span class="sourceLineNo">445</span> }<a name="line.445"></a>
-<span class="sourceLineNo">446</span> } finally {<a name="line.446"></a>
-<span class="sourceLineNo">447</span> // return the block since we need to decrement the count<a name="line.447"></a>
-<span class="sourceLineNo">448</span> returnBlock(cacheKey, existingBlock);<a name="line.448"></a>
-<span class="sourceLineNo">449</span> }<a name="line.449"></a>
-<span class="sourceLineNo">450</span> }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span> /*<a name="line.452"></a>
-<span class="sourceLineNo">453</span> * Stuff the entry into the RAM cache so it can get drained to the persistent store<a name="line.453"></a>
-<span class="sourceLineNo">454</span> */<a name="line.454"></a>
-<span class="sourceLineNo">455</span> RAMQueueEntry re =<a name="line.455"></a>
-<span class="sourceLineNo">456</span> new RAMQueueEntry(cacheKey, cachedItem, accessCount.incrementAndGet(), inMemory);<a name="line.456"></a>
-<span class="sourceLineNo">457</span> if (ramCache.putIfAbsent(cacheKey, re) != null) {<a name="line.457"></a>
-<span class="sourceLineNo">458</span> return;<a name="line.458"></a>
-<span class="sourceLineNo">459</span> }<a name="line.459"></a>
-<span class="sourceLineNo">460</span> int queueNum = (cacheKey.hashCode() & 0x7FFFFFFF) % writerQueues.size();<a name="line.460"></a>
-<span class="sourceLineNo">461</span> BlockingQueue<RAMQueueEntry> bq = writerQueues.get(queueNum);<a name="line.461"></a>
-<span class="sourceLineNo">462</span> boolean successfulAddition = false;<a name="line.462"></a>
-<span class="sourceLineNo">463</span> if (wait) {<a name="line.463"></a>
-<span class="sourceLineNo">464</span> try {<a name="line.464"></a>
-<span class="sourceLineNo">465</span> successfulAddition = bq.offer(re, DEFAULT_CACHE_WAIT_TIME, TimeUnit.MILLISECONDS);<a name="line.465"></a>
-<span class="sourceLineNo">466</span> } catch (InterruptedException e) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span> Thread.currentThread().interrupt();<a name="line.467"></a>
-<span class="sourceLineNo">468</span> }<a name="line.468"></a>
-<span class="sourceLineNo">469</span> } else {<a name="line.469"></a>
-<span class="sourceLineNo">470</span> successfulAddition = bq.offer(re);<a name="line.470"></a>
-<span class="sourceLineNo">471</span> }<a name="line.471"></a>
-<span class="sourceLineNo">472</span> if (!successfulAddition) {<a name="line.472"></a>
-<span class="sourceLineNo">473</span> ramCache.remove(cacheKey);<a name="line.473"></a>
-<span class="sourceLineNo">474</span> cacheStats.failInsert();<a name="line.474"></a>
-<span class="sourceLineNo">475</span> } else {<a name="line.475"></a>
-<span class="sourceLineNo">476</span> this.blockNumber.increment();<a name="line.476"></a>
-<span class="sourceLineNo">477</span> this.heapSize.add(cachedItem.heapSize());<a name="line.477"></a>
-<span class="sourceLineNo">478</span> blocksByHFile.add(cacheKey);<a name="line.478"></a>
-<span class="sourceLineNo">479</span> }<a name="line.479"></a>
-<span class="sourceLineNo">480</span> }<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span> /**<a name="line.482"></a>
-<span class="sourceLineNo">483</span> * Get the buffer of the block with the specified key.<a name="line.483"></a>
-<span class="sourceLineNo">484</span> * @param key block's cache key<a name="line.484"></a>
-<span class="sourceLineNo">485</span> * @param caching true if the caller caches blocks on cache misses<a name="line.485"></a>
-<span class="sourceLineNo">486</span> * @param repeat Whether this is a repeat lookup for the same block<a name="line.486"></a>
-<span class="sourceLineNo">487</span> * @param updateCacheMetrics Whether we should update cache metrics or not<a name="line.487"></a>
-<span class="sourceLineNo">488</span> * @return buffer of specified cache key, or null if not in cache<a name="line.488"></a>
-<span class="sourceLineNo">489</span> */<a name="line.489"></a>
-<span class="sourceLineNo">490</span> @Override<a name="line.490"></a>
-<span class="sourceLineNo">491</span> public Cacheable getBlock(BlockCacheKey key, boolean caching, boolean repeat,<a name="line.491"></a>
-<span class="sourceLineNo">492</span> boolean updateCacheMetrics) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span> if (!cacheEnabled) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span> return null;<a name="line.494"></a>
-<span class="sourceLineNo">495</span> }<a name="line.495"></a>
-<span class="sourceLineNo">496</span> RAMQueueEntry re = ramCache.get(key);<a name="line.496"></a>
-<span class="sourceLineNo">497</span> if (re != null) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span> if (updateCacheMetrics) {<a name="line.498"></a>
-<span class="sourceLineNo">499</span> cacheStats.hit(caching, key.isPrimary(), key.getBlockType());<a name="line.499"></a>
-<span class="sourceLineNo">500</span> }<a name="line.500"></a>
-<span class="sourceLineNo">501</span> re.access(accessCount.incrementAndGet());<a name="line.501"></a>
-<span class="sourceLineNo">502</span> return re.getData();<a name="line.502"></a>
-<span class="sourceLineNo">503</span> }<a name="line.503"></a>
-<span class="sourceLineNo">504</span> BucketEntry bucketEntry = backingMap.get(key);<a name="line.504"></a>
-<span class="sourceLineNo">505</span> if (bucketEntry != null) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span> long start = System.nanoTime();<a name="line.506"></a>
-<span class="sourceLineNo">507</span> ReentrantReadWriteLock lock = offsetLock.getLock(bucketEntry.offset());<a name="line.507"></a>
-<span class="sourceLineNo">508</span> try {<a name="line.508"></a>
-<span class="sourceLineNo">509</span> lock.readLock().lock();<a name="line.509"></a>
-<span class="sourceLineNo">510</span> // We can not read here even if backingMap does contain the given key because its offset<a name="line.510"></a>
-<span class="sourceLineNo">511</span> // maybe changed. If we lock BlockCacheKey instead of offset, then we can only check<a name="line.511"></a>
-<span class="sourceLineNo">512</span> // existence here.<a name="line.512"></a>
-<span class="sourceLineNo">513</span> if (bucketEntry.equals(backingMap.get(key))) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span> // TODO : change this area - should be removed after server cells and<a name="line.514"></a>
-<span class="sourceLineNo">515</span> // 12295 are available<a name="line.515"></a>
-<span class="sourceLineNo">516</span> int len = bucketEntry.getLength();<a name="line.516"></a>
-<span class="sourceLineNo">517</span> if (LOG.isTraceEnabled()) {<a name="line.517"></a>
-<span class="sourceLineNo">518</span> LOG.trace("Read offset=" + bucketEntry.offset() + ", len=" + len);<a name="line.518"></a>
+<span class="sourceLineNo">423</span> if (cacheEnabled) {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> if (backingMap.containsKey(cacheKey) || ramCache.containsKey(cacheKey)) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span> if (BlockCacheUtil.shouldReplaceExistingCacheBlock(this, cacheKey, cachedItem)) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span> cacheBlockWithWaitInternal(cacheKey, cachedItem, inMemory, wait);<a name="line.426"></a>
+<span class="sourceLineNo">427</span> }<a name="line.427"></a>
+<span class="sourceLineNo">428</span> } else {<a name="line.428"></a>
+<span class="sourceLineNo">429</span> cacheBlockWithWaitInternal(cacheKey, cachedItem, inMemory, wait);<a name="line.429"></a>
+<span class="sourceLineNo">430</span> }<a name="line.430"></a>
+<span class="sourceLineNo">431</span> }<a name="line.431"></a>
+<span class="sourceLineNo">432</span> }<a name="line.432"></a>
+<span class="sourceLineNo">433</span><a name="line.433"></a>
+<span class="sourceLineNo">434</span> private void cacheBlockWithWaitInternal(BlockCacheKey cacheKey, Cacheable cachedItem,<a name="line.434"></a>
+<span class="sourceLineNo">435</span> boolean inMemory, boolean wait) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span> if (!cacheEnabled) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> return;<a name="line.437"></a>
+<span class="sourceLineNo">438</span> }<a name="line.438"></a>
+<span class="sourceLineNo">439</span> LOG.trace("Caching key={}, item={}", cacheKey, cachedItem);<a name="line.439"></a>
+<span class="sourceLineNo">440</span> // Stuff the entry into the RAM cache so it can get drained to the persistent store<a name="line.440"></a>
+<span class="sourceLineNo">441</span> RAMQueueEntry re =<a name="line.441"></a>
+<span class="sourceLineNo">442</span> new RAMQueueEntry(cacheKey, cachedItem, accessCount.incrementAndGet(), inMemory);<a name="line.442"></a>
+<span class="sourceLineNo">443</span> /**<a name="line.443"></a>
+<span class="sourceLineNo">444</span> * Don't use ramCache.put(cacheKey, re) here. because there may be a existing entry with same<a name="line.444"></a>
+<span class="sourceLineNo">445</span> * key in ramCache, the heap size of bucket cache need to update if replacing entry from<a name="line.445"></a>
+<span class="sourceLineNo">446</span> * ramCache. But WriterThread will also remove entry from ramCache and update heap size, if<a name="line.446"></a>
+<span class="sourceLineNo">447</span> * using ramCache.put(), It's possible that the removed entry in WriterThread is not the correct<a name="line.447"></a>
+<span class="sourceLineNo">448</span> * one, then the heap size will mess up (HBASE-20789)<a name="line.448"></a>
+<span class="sourceLineNo">449</span> */<a name="line.449"></a>
+<span class="sourceLineNo">450</span> if (ramCache.putIfAbsent(cacheKey, re) != null) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span> return;<a name="line.451"></a>
+<span class="sourceLineNo">452</span> }<a name="line.452"></a>
+<span class="sourceLineNo">453</span> int queueNum = (cacheKey.hashCode() & 0x7FFFFFFF) % writerQueues.size();<a name="line.453"></a>
+<span class="sourceLineNo">454</span> BlockingQueue<RAMQueueEntry> bq = writerQueues.get(queueNum);<a name="line.454"></a>
+<span class="sourceLineNo">455</span> boolean successfulAddition = false;<a name="line.455"></a>
+<span class="sourceLineNo">456</span> if (wait) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span> try {<a name="line.457"></a>
+<span class="sourceLineNo">458</span> successfulAddition = bq.offer(re, DEFAULT_CACHE_WAIT_TIME, TimeUnit.MILLISECONDS);<a name="line.458"></a>
+<span class="sourceLineNo">459</span> } catch (InterruptedException e) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span> Thread.currentThread().interrupt();<a name="line.460"></a>
+<span class="sourceLineNo">461</span> }<a name="line.461"></a>
+<span class="sourceLineNo">462</span> } else {<a name="line.462"></a>
+<span class="sourceLineNo">463</span> successfulAddition = bq.offer(re);<a name="line.463"></a>
+<span class="sourceLineNo">464</span> }<a name="line.464"></a>
+<span class="sourceLineNo">465</span> if (!successfulAddition) {<a name="line.465"></a>
+<span class="sourceLineNo">466</span> ramCache.remove(cacheKey);<a name="line.466"></a>
+<span class="sourceLineNo">467</span> cacheStats.failInsert();<a name="line.467"></a>
+<span class="sourceLineNo">468</span> } else {<a name="line.468"></a>
+<span class="sourceLineNo">469</span> this.blockNumber.increment();<a name="line.469"></a>
+<span class="sourceLineNo">470</span> this.heapSize.add(cachedItem.heapSize());<a name="line.470"></a>
+<span class="sourceLineNo">471</span> blocksByHFile.add(cacheKey);<a name="line.471"></a>
+<span class="sourceLineNo">472</span> }<a name="line.472"></a>
+<span class="sourceLineNo">473</span> }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span> /**<a name="line.475"></a>
+<span class="sourceLineNo">476</span> * Get the buffer of the block with the specified key.<a name="line.476"></a>
+<span class="sourceLineNo">477</span> * @param key block's cache key<a name="line.477"></a>
+<span class="sourceLineNo">478</span> * @param caching true if the caller caches blocks on cache misses<a name="line.478"></a>
+<span class="sourceLineNo">479</span> * @param repeat Whether this is a repeat lookup for the same block<a name="line.479"></a>
+<span class="sourceLineNo">480</span> * @param updateCacheMetrics Whether we should update cache metrics or not<a name="line.480"></a>
+<span class="sourceLineNo">481</span> * @return buffer of specified cache key, or null if not in cache<a name="line.481"></a>
+<span class="sourceLineNo">482</span> */<a name="line.482"></a>
+<span class="sourceLineNo">483</span> @Override<a name="line.483"></a>
+<span class="sourceLineNo">484</span> public Cacheable getBlock(BlockCacheKey key, boolean caching, boolean repeat,<a name="line.484"></a>
+<span class="sourceLineNo">485</span> boolean updateCacheMetrics) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span> if (!cacheEnabled) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span> return null;<a name="line.487"></a>
+<span class="sourceLineNo">488</span> }<a name="line.488"></a>
+<span class="sourceLineNo">489</span> RAMQueueEntry re = ramCache.get(key);<a name="line.489"></a>
+<span class="sourceLineNo">490</span> if (re != null) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span> if (updateCacheMetrics) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span> cacheStats.hit(caching, key.isPrimary(), key.getBlockType());<a name="line.492"></a>
+<span class="sourceLineNo">493</span> }<a name="line.493"></a>
+<span class="sourceLineNo">494</span> re.access(accessCount.incrementAndGet());<a name="line.494"></a>
+<span class="sourceLineNo">495</span> return re.getData();<a name="line.495"></a>
+<span class="sourceLineNo">496</span> }<a name="line.496"></a>
+<span class="sourceLineNo">497</span> BucketEntry bucketEntry = backingMap.get(key);<a name="line.497"></a>
+<span class="sourceLineNo">498</span> if (bucketEntry != null) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span> long start = System.nanoTime();<a name="line.499"></a>
+<span class="sourceLineNo">500</span> ReentrantReadWriteLock lock = offsetLock.getLock(bucketEntry.offset());<a name="line.500"></a>
+<span class="sourceLineNo">501</span> try {<a name="line.501"></a>
+<span class="sourceLineNo">502</span> lock.readLock().lock();<a name="line.502"></a>
+<span class="sourceLineNo">503</span> // We can not read here even if backingMap does contain the given key because its offset<a name="line.503"></a>
+<span class="sourceLineNo">504</span> // maybe changed. If we lock BlockCacheKey instead of offset, then we can only check<a name="line.504"></a>
+<span class="sourceLineNo">505</span> // existence here.<a name="line.505"></a>
+<span class="sourceLineNo">506</span> if (bucketEntry.equals(backingMap.get(key))) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span> // TODO : change this area - should be removed after server cells and<a name="line.507"></a>
+<span class="sourceLineNo">508</span> // 12295 are available<a name="line.508"></a>
+<span class="sourceLineNo">509</span> int len = bucketEntry.getLength();<a name="line.509"></a>
+<span class="sourceLineNo">510</span> if (LOG.isTraceEnabled()) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span> LOG.trace("Read offset=" + bucketEntry.offset() + ", len=" + len);<a name="line.511"></a>
+<span class="sourceLineNo">512</span> }<a name="line.512"></a>
+<span class="sourceLineNo">513</span> Cacheable cachedBlock = ioEngine.read(bucketEntry.offset(), len,<a name="line.513"></a>
+<span class="sourceLineNo">514</span> bucketEntry.deserializerReference(this.deserialiserMap));<a name="line.514"></a>
+<span class="sourceLineNo">515</span> long timeTaken = System.nanoTime() - start;<a name="line.515"></a>
+<span class="sourceLineNo">516</span> if (updateCacheMetrics) {<a name="line.516"></a>
+<span class="sourceLineNo">517</span> cacheStats.hit(caching, key.isPrimary(), key.getBlockType());<a name="line.517"></a>
+<span class="sourceLineNo">518</span> cacheStats.ioHit(timeTaken);<a name="line.518"></a>
<span class="sourceLineNo">519</span> }<a name="line.519"></a>
-<span class="sourceLineNo">520</span> Cacheable cachedBlock = ioEngine.read(bucketEntry.offset(), len,<a name="line.520"></a>
-<span class="sourceLineNo">521</span> bucketEntry.deserializerReference(this.deserialiserMap));<a name="line.521"></a>
-<span class="sourceLineNo">522</span> long timeTaken = System.nanoTime() - start;<a name="line.522"></a>
-<span class="sourceLineNo">523</span> if (updateCacheMetrics) {<a name="line.523"></a>
-<span class="sourceLineNo">524</span> cacheStats.hit(caching, key.isPrimary(), key.getBlockType());<a name="line.524"></a>
-<span class="sourceLineNo">525</span> cacheStats.ioHit(timeTaken);<a name="line.525"></a>
+<span class="sourceLineNo">520</span> if (cachedBlock.getMemoryType() == MemoryType.SHARED) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span> bucketEntry.incrementRefCountAndGet();<a name="line.521"></a>
+<span class="sourceLineNo">522</span> }<a name="line.522"></a>
+<span class="sourceLineNo">523</span> bucketEntry.access(accessCount.incrementAndGet());<a name="line.523"></a>
+<span class="sourceLineNo">524</span> if (this.ioErrorStartTime > 0) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span> ioErrorStartTime = -1;<a name="line.525"></a>
<span class="sourceLineNo">526</span> }<a name="line.526"></a>
-<span class="sourceLineNo">527</span> if (cachedBlock.getMemoryType() == MemoryType.SHARED) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span> bucketEntry.incrementRefCountAndGet();<a name="line.528"></a>
-<span class="sourceLineNo">529</span> }<a name="line.529"></a>
-<span class="sourceLineNo">530</span> bucketEntry.access(accessCount.incrementAndGet());<a name="line.530"></a>
-<span class="sourceLineNo">531</span> if (this.ioErrorStartTime > 0) {<a name="line.531"></a>
-<span class="sourceLineNo">532</span> ioErrorStartTime = -1;<a name="line.532"></a>
-<span class="sourceLineNo">533</span> }<a name="line.533"></a>
-<span class="sourceLineNo">534</span> return cachedBlock;<a name="line.534"></a>
-<span class="sourceLineNo">535</span> }<a name="line.535"></a>
-<span class="sourceLineNo">536</span> } catch (IOException ioex) {<a name="line.536"></a>
-<span class="sourceLineNo">537</span> LOG.error("Failed reading block " + key + " from bucket cache", ioex);<a name="line.537"></a>
-<span class="sourceLineNo">538</span> checkIOErrorIsTolerated();<a name="line.538"></a>
-<span class="sourceLineNo">539</span> } finally {<a name="line.539"></a>
-<span class="sourceLineNo">540</span> lock.readLock().unlock();<a name="line.540"></a>
-<span class="sourceLineNo">541</span> }<a name="line.541"></a>
-<span class="sourceLineNo">542</span> }<a name="line.542"></a>
-<span class="sourceLineNo">543</span> if (!repeat && updateCacheMetrics) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span> cacheStats.miss(caching, key.isPrimary(), key.getBlockType());<a name="line.544"></a>
-<span class="sourceLineNo">545</span> }<a name="line.545"></a>
-<span class="sourceLineNo">546</span> return null;<a name="line.546"></a>
-<span class="sourceLineNo">547</span> }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span> @VisibleForTesting<a name="line.549"></a>
-<span class="sourceLineNo">550</span> void blockEvicted(BlockCacheKey cacheKey, BucketEntry bucketEntry, boolean decrementBlockNumber) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span> bucketAllocator.freeBlock(bucketEntry.offset());<a name="line.551"></a>
-<span class="sourceLineNo">552</span> realCacheSize.add(-1 * bucketEntry.getLength());<a name="line.552"></a>
-<span class="sourceLineNo">553</span> blocksByHFile.remove(cacheKey);<a name="line.553"></a>
-<span class="sourceLineNo">554</span> if (decrementBlockNumber) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span> this.blockNumber.decrement();<a name="line.555"></a>
-<span class="sourceLineNo">556</span> }<a name="line.556"></a>
-<span class="sourceLineNo">557</span> }<a name="line.557"></a>
-<span class="sourceLineNo">558</span><a name="line.558"></a>
-<span class="sourceLineNo">559</span> @Override<a name="line.559"></a>
-<span class="sourceLineNo">560</span> public boolean evictBlock(BlockCacheKey cacheKey) {<a name="line.560"></a>
-<span class="sourceLineNo">561</span> return evictBlock(cacheKey, true);<a name="line.561"></a>
-<span class="sourceLineNo">562</span> }<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span> // does not check for the ref count. Just tries to evict it if found in the<a name="line.564"></a>
-<span class="sourceLineNo">565</span> // bucket map<a name="line.565"></a>
-<span class="sourceLineNo">566</span> private boolean forceEvict(BlockCacheKey cacheKey) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span> if (!cacheEnabled) {<a name="line.567"></a>
-<span class="sourceLineNo">568</span> return false;<a name="line.568"></a>
-<span class="sourceLineNo">569</span> }<a name="line.569"></a>
-<span class="sourceLineNo">570</span> RAMQueueEntry removedBlock = checkRamCache(cacheKey);<a name="line.570"></a>
-<span class="sourceLineNo">571</span> BucketEntry bucketEntry = backingMap.get(cacheKey);<a name="line.571"></a>
-<span class="sourceLineNo">572</span> if (bucketEntry == null) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span> if (removedBlock != null) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span> cacheStats.evicted(0, cacheKey.isPrimary());<a name="line.574"></a>
-<span class="sourceLineNo">575</span> return true;<a name="line.575"></a>
-<span class="sourceLineNo">576</span> } else {<a name="line.576"></a>
-<span class="sourceLineNo">577</span> return false;<a name="line.577"></a>
-<span class="sourceLineNo">578</span> }<a name="line.578"></a>
-<span class="sourceLineNo">579</span> }<a name="line.579"></a>
-<span class="sourceLineNo">580</span> ReentrantReadWriteLock lock = offsetLock.getLock(bucketEntry.offset());<a name="line.580"></a>
-<span class="sourceLineNo">581</span> try {<a name="line.581"></a>
-<span class="sourceLineNo">582</span> lock.writeLock().lock();<a name="line.582"></a>
-<span class="sourceLineNo">583</span> if (backingMap.remove(cacheKey, bucketEntry)) {<a name="line.583"></a>
-<span class="sourceLineNo">584</span> blockEvicted(cacheKey, bucketEntry, removedBlock == null);<a name="line.584"></a>
-<span class="sourceLineNo">585</span> } else {<a name="line.585"></a>
-<span class="sourceLineNo">586</span> return false;<a name="line.586"></a>
-<span class="sourceLineNo">587</span> }<a name="line.587"></a>
-<span class="sourceLineNo">588</span> } finally {<a name="line.588"></a>
-<span class="sourceLineNo">589</span> lock.writeLock().unlock();<a name="line.589"></a>
-<span class="sourceLineNo">590</span> }<a name="line.590"></a>
-<span class="sourceLineNo">591</span> cacheStats.evicted(bucketEntry.getCachedTime(), cacheKey.isPrimary());<a name="line.591"></a>
-<span class="sourceLineNo">592</span> return true;<a name="line.592"></a>
-<span class="sourceLineNo">593</span> }<a name="line.593"></a>
-<span class="sourceLineNo">594</span><a name="line.594"></a>
-<span class="sourceLineNo">595</span> private RAMQueueEntry checkRamCache(BlockCacheKey cacheKey) {<a name="line.595"></a>
-<span class="sourceLineNo">596</span> RAMQueueEntry removedBlock = ramCache.remove(cacheKey);<a name="line.596"></a>
-<span class="sourceLineNo">597</span> if (removedBlock != null) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span> this.blockNumber.decrement();<a name="line.598"></a>
-<span class="sourceLineNo">599</span> this.heapSize.add(-1 * removedBlock.getData().heapSize());<a name="line.599"></a>
+<span class="sourceLineNo">527</span> return cachedBlock;<a name="line.527"></a>
+<span class="sourceLineNo">528</span> }<a name="line.528"></a>
+<span class="sourceLineNo">529</span> } catch (IOException ioex) {<a name="line.529"></a>
+<span class="sourceLineNo">530</span> LOG.error("Failed reading block " + key + " from bucket cache", ioex);<a name="line.530"></a>
+<span class="sourceLineNo">531</span> checkIOErrorIsTolerated();<a name="line.531"></a>
+<span class="sourceLineNo">532</span> } finally {<a name="line.532"></a>
+<span class="sourceLineNo">533</span> lock.readLock().unlock();<a name="line.533"></a>
+<span class="sourceLineNo">534</span> }<a name="line.534"></a>
+<span class="sourceLineNo">535</span> }<a name="line.535"></a>
+<span class="sourceLineNo">536</span> if (!repeat && updateCacheMetrics) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span> cacheStats.miss(caching, key.isPrimary(), key.getBlockType());<a name="line.537"></a>
+<span class="sourceLineNo">538</span> }<a name="line.538"></a>
+<span class="sourceLineNo">539</span> return null;<a name="line.539"></a>
+<span class="sourceLineNo">540</span> }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span> @VisibleForTesting<a name="line.542"></a>
+<span class="sourceLineNo">543</span> void blockEvicted(BlockCacheKey cacheKey, BucketEntry bucketEntry, boolean decrementBlockNumber) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span> bucketAllocator.freeBlock(bucketEntry.offset());<a name="line.544"></a>
+<span class="sourceLineNo">545</span> realCacheSize.add(-1 * bucketEntry.getLength());<a name="line.545"></a>
+<span class="sourceLineNo">546</span> blocksByHFile.remove(cacheKey);<a name="line.546"></a>
+<span class="sourceLineNo">547</span> if (decrementBlockNumber) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span> this.blockNumber.decrement();<a name="line.548"></a>
+<span class="sourceLineNo">549</span> }<a name="line.549"></a>
+<span class="sourceLineNo">550</span> }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span> @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span> public boolean evictBlock(BlockCacheKey cacheKey) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span> return evictBlock(cacheKey, true);<a name="line.554"></a>
+<span class="sourceLineNo">555</span> }<a name="line.555"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span> // does not check for the ref count. Just tries to evict it if found in the<a name="line.557"></a>
+<span class="sourceLineNo">558</span> // bucket map<a name="line.558"></a>
+<span class="sourceLineNo">559</span> private boolean forceEvict(BlockCacheKey cacheKey) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span> if (!cacheEnabled) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span> return false;<a name="line.561"></a>
+<span class="sourceLineNo">562</span> }<a name="line.562"></a>
+<span class="sourceLineNo">563</span> RAMQueueEntry removedBlock = checkRamCache(cacheKey);<a name="line.563"></a>
+<span class="sourceLineNo">564</span> BucketEntry bucketEntry = backingMap.get(cacheKey);<a name="line.564"></a>
+<span class="sourceLineNo">565</span> if (bucketEntry == null) {<a name="line.565"></a>
+<span class="sourceLineNo">566</span> if (removedBlock != null) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span> cacheStats.evicted(0, cacheKey.isPrimary());<a name="line.567"></a>
+<span class="sourceLineNo">568</span> return true;<a name="line.568"></a>
+<span class="sourceLineNo">569</span> } else {<a name="line.569"></a>
+<span class="sourceLineNo">570</span> return false;<a name="line.570"></a>
+<span class="sourceLineNo">571</span> }<a name="line.571"></a>
+<span class="sourceLineNo">572</span> }<a name="line.572"></a>
+<span class="sourceLineNo">573</span> ReentrantReadWriteLock lock = offsetLock.getLock(bucketEntry.offset());<a name="line.573"></a>
+<span class="sourceLineNo">574</span> try {<a name="line.574"></a>
+<span class="sourceLineNo">575</span> lock.writeLock().lock();<a name="line.575"></a>
+<span class="sourceLineNo">576</span> if (backingMap.remove(cacheKey, bucketEntry)) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span> blockEvicted(cacheKey, bucketEntry, removedBlock == null);<a name="line.577"></a>
+<span class="sourceLineNo">578</span> } else {<a name="line.578"></a>
+<span class="sourceLineNo">579</span> return false;<a name="line.579"></a>
+<span class="sourceLineNo">580</span> }<a name="line.580"></a>
+<span class="sourceLineNo">581</span> } finally {<a name="line.581"></a>
+<span class="sourceLineNo">582</span> lock.writeLock().unlock();<a name="line.582"></a>
+<span class="sourceLineNo">583</span> }<a name="line.583"></a>
+<span class="sourceLineNo">584</span> cacheStats.evicted(bucketEntry.getCachedTime(), cacheKey.isPrimary());<a name="line.584"></a>
+<span class="sourceLineNo">585</span> return true;<a name="line.585"></a>
+<span class="sourceLineNo">586</span> }<a name="line.586"></a>
+<span class="sourceLineNo">587</span><a name="line.587"></a>
+<span class="sourceLineNo">588</span> private RAMQueueEntry checkRamCache(BlockCacheKey cacheKey) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span> RAMQueueEntry removedBlock = ramCache.remove(cacheKey);<a name="line.589"></a>
+<span class="sourceLineNo">590</span> if (removedBlock != null) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span> this.blockNumber.decrement();<a name="line.591"></a>
+<span class="sourceLineNo">592</span> this.heapSize.add(-1 * removedBlock.getData().heapSize());<a name="line.592"></a>
+<span class="sourceLineNo">593</span> }<a name="line.593"></a>
+<span class="sourceLineNo">594</span> return removedBlock;<a name="line.594"></a>
+<span class="sourceLineNo">595</span> }<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span> public boolean evictBlock(BlockCacheKey cacheKey, boolean deletedBlock) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span> if (!cacheEnabled) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span> return false;<a name="line.599"></a>
<span class="sourceLineNo">600</span> }<a name="line.600"></a>
-<span class="sourceLineNo">601</span> return removedBlock;<a name="line.601"></a>
-<span class="sourceLineNo">602</span> }<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span> public boolean evictBlock(BlockCacheKey cacheKey, boolean deletedBlock) {<a name="line.604"></a>
-<span class="sourceLineNo">605</span> if (!cacheEnabled) {<a name="line.605"></a>
-<span class="sourceLineNo">606</span> return false;<a name="line.606"></a>
-<span class="sourceLineNo">607</span> }<a name="line.607"></a>
-<span class="sourceLineNo">608</span> RAMQueueEntry removedBlock = checkRamCache(cacheKey);<a name="line.608"></a>
-<span class="sourceLineNo">609</span> BucketEntry bucketEntry = backingMap.get(cacheKey);<a name="line.609"></a>
-<span class="sourceLineNo">610</span> if (bucketEntry == null) {<a name="line.610"></a>
-<span class="sourceLineNo">611</span> if (removedBlock != null) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span> cacheStats.evicted(0, cacheKey.isPrimary());<a name="line.612"></a>
-<span class="sourceLineNo">613</span> return true;<a name="line.613"></a>
-<span class="sourceLineNo">614</span> } else {<a name="line.614"></a>
-<span class="sourceLineNo">615</span> return false;<a name="line.615"></a>
-<span class="sourceLineNo">616</span> }<a name="line.616"></a>
-<span class="sourceLineNo">617</span> }<a name="line.617"></a>
-<span class="sourceLineNo">618</span> ReentrantReadWriteLock lock = offsetLock.getLock(bucketEntry.offset());<a name="line.618"></a>
-<span class="sourceLineNo">619</span> try {<a name="line.619"></a>
-<span class="sourceLineNo">620</span> lock.writeLock().lock();<a name="line.620"></a>
-<span class="sourceLineNo">621</span> int refCount = bucketEntry.getRefCount();<a name="line.621"></a>
-<span class="sourceLineNo">622</span> if (refCount == 0) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span> if (backingMap.remove(cacheKey, bucketEntry)) {<a name="line.623"></a>
-<span class="sourceLineNo">624</span> blockEvicted(cacheKey, bucketEntry, removedBlock == null);<a name="line.624"></a>
-<span class="sourceLineNo">625</span> } else {<a name="line.625"></a>
-<span class="sourceLineNo">626</span> return false;<a name="line.626"></a>
-<span class="sourceLineNo">627</span> }<a name="line.627"></a>
-<span class="sourceLineNo">628</span> } else {<a name="line.628"></a>
-<span class="sourceLineNo">629</span> if(!deletedBlock) {<a name="line.629"></a>
-<span class="sourceLineNo">630</span> if (LOG.isDebugEnabled()) {<a name="line.630"></a>
-<span class="sourceLineNo">631</span> LOG.debug("This block " + cacheKey + " is still referred by " + refCount<a name="line.631"></a>
-<span class="sourceLineNo">632</span> + " readers. Can not be freed now");<a name="line.632"></a>
+<span class="sourceLineNo">601</span> RAMQueueEntry removedBlock = checkRamCache(cacheKey);<a name="line.601"></a>
+<span class="sourceLineNo">602</span> BucketEntry bucketEntry = backingMap.get(cacheKey);<a name="line.602"></a>
+<span class="sourceLineNo">603</span> if (bucketEntry == null) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span> if (removedBlock != null) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span> cacheStats.evicted(0, cacheKey.isPrimary());<a name="line.605"></a>
+<span class="sourceLineNo">606</span> return true;<a name="line.606"></a>
+<span class="sourceLineNo">607</span> } else {<a name="line.607"></a>
+<span class="sourceLineNo">608</span> return false;<a name="line.608"></a>
+<span class="sourceLineNo">609</span> }<a name="line.609"></a>
+<span class="sourceLineNo">610</span> }<a name="line.610"></a>
+<span class="sourceLineNo">611</span> ReentrantReadWriteLock lock = offsetLock.getLock(bucketEntry.offset());<a name="line.611"></a>
+<span class="sourceLineNo">612</span> try {<a name="line.612"></a>
+<span class="sourceLineNo">613</span> lock.writeLock().lock();<a name="line.613"></a>
+<span class="sourceLineNo">614</span> int refCount = bucketEntry.getRefCount();<a name="line.614"></a>
+<span class="sourceLineNo">615</span> if (refCount == 0) {<a name="line.615"></a>
+<span class="sourceLineNo">616</span> if (backingMap.remove(cacheKey, bucketEntry)) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span> blockEvicted(cacheKey, bucketEntry, removedBlock == null);<a name="line.617"></a>
+<span class="sourceLineNo">618</span> } else {<a name="line.618"></a>
+<span class="sourceLineNo">619</span> return false;<a name="line.619"></a>
+<span class="sourceLineNo">620</span> }<a name="line.620"></a>
+<span class="sourceLineNo">621</span> } else {<a name="line.621"></a>
+<span class="sourceLineNo">622</span> if(!deletedBlock) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span> if (LOG.isDebugEnabled()) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span> LOG.debug("This block " + cacheKey + " is still referred by " + refCount<a name="line.624"></a>
+<span class="sourceLineNo">625</span> + " readers. Can not be freed now");<a name="line.625"></a>
+<span class="sourceLineNo">626</span> }<a name="line.626"></a>
+<span class="sourceLineNo">627</span> return false;<a name="line.627"></a>
+<span class="sourceLineNo">628</span> } else {<a name="line.628"></a>
+<span class="sourceLineNo">629</span> if (LOG.isDebugEnabled()) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span> LOG.debug("This block " + cacheKey + " is still referred by " + refCount<a name="line.630"></a>
+<span class="sourceLineNo">631</span> + " readers. Can not be freed now. Hence will mark this"<a name="line.631"></a>
+<span class="sourceLineNo">632</span> + " for evicting at a later point");<a name="line.632"></a>
<span class="sourceLineNo">633</span> }<a name="line.633"></a>
-<span class="sourceLineNo">634</span> return false;<a name="line.634"></a>
-<span class="sourceLineNo">635</span> } else {<a name="line.635"></a>
-<span class="sourceLineNo">636</span> if (LOG.isDebugEnabled()) {<a name="line.636"></a>
-<span class="sourceLineNo">637</span> LOG.debug("This block " + cacheKey + " is still referred by " + refCount<a name="line.637"></a>
-<span class="sourceLineNo">638</span> + " readers. Can not be freed now. Hence will mark this"<a name="line.638"></a>
-<span class="sourceLineNo">639</span> + " for evicting at a later point");<a name="line.639"></a>
-<span class="sourceLineNo">640</span> }<a name="line.640"></a>
-<span class="sourceLineNo">641</span> bucketEntry.markForEvict();<a name="line.641"></a>
-<span class="sourceLineNo">642</span> }<a name="line.642"></a>
-<span class="sourceLineNo">643</span> }<a name="line.643"></a>
-<span class="sourceLineNo">644</span> } finally {<a name="line.644"></a>
-<span class="sourceLineNo">645</span> lock.writeLock().unlock();<a name="line.645"></a>
-<span class="sourceLineNo">646</span> }<a name="line.646"></a>
-<span class="sourceLineNo">647</span> cacheStats.evicted(bucketEntry.getCachedTime(), cacheKey.isPrimary());<a name="line.647"></a>
-<span class="sourceLineNo">648</span> return true;<a name="line.648"></a>
-<span class="sourceLineNo">649</span> }<a name="line.649"></a>
-<span class="sourceLineNo">650</span><a name="line.650"></a>
-<span class="sourceLineNo">651</span> /*<a name="line.651"></a>
-<span class="sourceLineNo">652</span> * Statistics thread. Periodically output cache statistics to the log.<a name="line.652"></a>
-<span class="sourceLineNo">653</span> */<a name="line.653"></a>
-<span class="sourceLineNo">654</span> private static class StatisticsThread extends Thread {<a name="line.654"></a>
-<span class="sourceLineNo">655</span> private final BucketCache bucketCache;<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span> public StatisticsThread(BucketCache bucketCache) {<a name="line.657"></a>
-<span class="sourceLineNo">658</span> super("BucketCacheStatsThread");<a name="line.658"></a>
-<span class="sourceLineNo">659</span> setDaemon(true);<a name="line.659"></a>
-<span class="sourceLineNo">660</span> this.bucketCache = bucketCache;<a name="line.660"></a>
-<span class="sourceLineNo">661</span> }<a name="line.661"></a>
-<span class="sourceLineNo">662</span><a name="line.662"></a>
-<span class="sourceLineNo">663</span> @Override<a name="line.663"></a>
-<span class="sourceLineNo">664</span> public void run() {<a name="line.664"></a>
-<span class="sourceLineNo">665</span> bucketCache.logStats();<a name="line.665"></a>
-<span class="sourceLineNo">666</span> }<a name="line.666"></a>
-<span class="sourceLineNo">667</span> }<a name="line.667"></a>
-<span class="sourceLineNo">668</span><a name="line.668"></a>
-<span class="sourceLineNo">669</span> public void logStats() {<a name="line.669"></a>
-<span class="sourceLineNo">670</span> long totalSize = bucketAllocator.getTotalSize();<a name="line.670"></a>
-<span class="sourceLineNo">671</span> long usedSize = bucketAllocator.getUsedSize();<a name="line.671"></a>
-<span class="sourceLineNo">672</span> long freeSize = totalSize - usedSize;<a name="line.672"></a>
-<span class="sourceLineNo">673</span> long cacheSize = getRealCacheSize();<a name="line.673"></a>
-<span class="sourceLineNo">674</span> LOG.info("failedBlockAdditions=" + cacheStats.getFailedInserts() + ", " +<a name="line.674"></a>
-<span class="sourceLineNo">675</span> "totalSize=" + StringUtils.byteDesc(totalSize) + ", " +<a name="line.675"></a>
-<span class="sourceLineNo">676</span> "freeSize=" + StringUtils.byteDesc(freeSize) + ", " +<a name="line.676"></a>
-<span class="sourceLineNo">677</span> "usedSize=" + StringUtils.byteDesc(usedSize) +", " +<a name="line.677"></a>
-<span class="sourceLineNo">678</span> "cacheSize=" + StringUtils.byteDesc(cacheSize) +", " +<a name="line.678"></a>
-<span class="sourceLineNo">679</span> "accesses=" + cacheStats.getRequestCount() + ", " +<a name="line.679"></a>
-<span class="sourceLineNo">680</span> "hits=" + cacheStats.getHitCount() + ", " +<a name="line.680"></a>
-<span class="sourceLineNo">681</span> "IOhitsPerSecond=" + cacheStats.getIOHitsPerSecond() + ", " +<a name="line.681"></a>
-<span class="sourceLineNo">682</span> "IOTimePerHit=" + String.format("%.2f", cacheStats.getIOTimePerHit())+ ", " +<a name="line.682"></a>
-<span class="sourceLineNo">683</span> "hitRatio=" + (cacheStats.getHitCount() == 0 ? "0," :<a name="line.683"></a>
-<span class="sourceLineNo">684</span> (StringUtils.formatPercent(cacheStats.getHitRatio(), 2)+ ", ")) +<a name="line.684"></a>
-<span class="sourceLineNo">685</span> "cachingAccesses=" + cacheStats.getRequestCachingCount() + ", " +<a name="line.685"></a>
-<span class="sourceLineNo">686</span> "cachingHits=" + cacheStats.getHitCachingCount() + ", " +<a name="line.686"></a>
-<span class="sourceLineNo">687</span> "cachingHitsRatio=" +(cacheStats.getHitCachingCount() == 0 ? "0," :<a name="line.687"></a>
-<span class="sourceLineNo">688</span> (StringUtils.formatPercent(cacheStats.getHitCachingRatio(), 2)+ ", ")) +<a name="line.688"></a>
-<span class="sourceLineNo">689</span> "evictions=" + cacheStats.getEvictionCount() + ", " +<a name="line.689"></a>
-<span class="sourceLineNo">690</span> "evicted=" + cacheStats.getEvictedCount() + ", " +<a name="line.690"></a>
-<span class="sourceLineNo">691</span> "evictedPerRun=" + cacheStats.evictedPerEviction());<a name="line.691"></a>
-<span class="sourceLineNo">692</span> cacheStats.reset();<a name="line.692"></a>
-<span class="sourceLineNo">693</span> }<a name="line.693"></a>
-<span class="sourceLineNo">694</span><a name="line.694"></a>
-<span class="sourceLineNo">695</span> public long getRealCacheSize() {<a name="line.695"></a>
-<span class="sourceLineNo">696</span> return this.realCacheSize.sum();<a name="line.696"></a>
-<span class="sourceLineNo">697</span> }<a name="line.697"></a>
-<span class="sourceLineNo">698</span><a name="line.698"></a>
-<span class="sourceLineNo">699</span> private long acceptableSize() {<a name="line.699"></a>
-<span class="sourceLineNo">700</span> return (long) Math.floor(bucketAllocator.getTotalSize() * acceptableFactor);<a name="line.700"></a>
-<span class="sourceLineNo">701</span> }<a name="line.701"></a>
-<span class="sourceLineNo">702</span><a name="line.702"></a>
-<span class="sourceLineNo">703</span> @VisibleForTesting<a name="line.703"></a>
-<span class="sourceLineNo">704</span> long getPartitionSize(float partitionFactor) {<a name="line.704"></a>
-<span class="sourceLineNo">705</span> return (long) Math.floor(bucketAllocator.getTotalSize() * partitionFactor * minFactor);<a name="line.705"></a>
-<span class="sourceLineNo">706</span> }<a name="line.706"></a>
-<span class="sourceLineNo">707</span><a name="line.707"></a>
-<span class="sourceLineNo">708</span> /**<a name="line.708"></a>
-<span class="sourceLineNo">709</span> * Return the count of bucketSizeinfos still need free space<a name="line.709"></a>
-<span class="sourceLineNo">710</span> */<a name="line.710"></a>
-<span class="sourceLineNo">711</span> private int bucketSizesAboveThresholdCount(float minFactor) {<a name="line.711"></a>
-<span class="sourceLineNo">712</span> BucketAllocator.IndexStatistics[] stats = bucketAllocator.getIndexStatistics();<a name="line.712"></a>
-<span class="sourceLineNo">713</span> int fullCount = 0;<a name="line.713"></a>
-<span class="sourceLineNo">714</span> for (int i = 0; i < stats.length; i++) {<a name="line.714"></a>
-<span class="sourceLineNo">715</span> long freeGoal = (long) Math.floor(stats[i].totalCount() * (1 - minFactor));<a name="line.715"></a>
-<span class="sourceLineNo">716</span> freeGoal = Math.max(freeGoal, 1);<a name="line.716"></a>
-<span class="sourceLineNo">717</span> if (stats[i].freeCount() < freeGoal) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span> fullCount++;<a name="line.718"></a>
-<span class="sourceLineNo">719</span> }<a name="line.719"></a>
-<span class="sourceLineNo">720</span> }<a name="line.720"></a>
-<span class="sourceLineNo">721</span> return fullCount;<a name="line.721"></a>
-<span class="sourceLineNo">722</span> }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span> /**<a name="line.724"></a>
-<span class="sourceLineNo">725</span> * This method will find the buckets that are minimally occupied<a name="line.725"></a>
-<span class="sourceLineNo">726</span> * and are not reference counted and will free them completely<a name="line.726"></a>
-<span class="sourceLineNo">727</span> * without any constraint on the access times of the elements,<a name="line.727"></a>
-<span class="sourceLineNo">728</span> * and as a process will completely free at most the number of buckets<a name="line.728"></a>
-<span class="sourceLineNo">729</span> * passed, sometimes it might not due to changing refCounts<a name="line.729"></a>
-<span class="sourceLineNo">730</span> *<a name="line.730"></a>
-<span class="sourceLineNo">731</span> * @param completelyFreeBucketsNeeded number of buckets to free<a name="line.731"></a>
-<span class="sourceLineNo">732</span> **/<a name="line.732"></a>
-<span class="sourceLineNo">733</span> private void freeEntireBuckets(int completelyFreeBucketsNeeded) {<a name="line.733"></a>
-<span class="sourceLineNo">734</span> if (completelyFreeBucketsNeeded != 0) {<a name="line.734"></a>
-<span class="sourceLineNo">735</span> // First we will build a set where the offsets are reference counted, usually<a name="line.735"></a>
-<span class="sourceLineNo">736</span> // this set is small around O(Handler Count) unless something else is wrong<a name="line.736"></a>
-<span class="sourceLineNo">737</span> Set<Integer> inUseBuckets = new HashSet<Integer>();<a name="line.737"></a>
-<span class="sourceLineNo">738</span> for (BucketEntry entry : backingMap.values()) {<a name="line.738"></a>
-<span class="sourceLineNo">739</span> if (entry.getRefCount() != 0) {<a name="line.739"></a>
-<span class="sourceLineNo">740</span> inUseBuckets.add(bucketAllocator.getBucketIndex(entry.offset()));<a name="line.740"></a>
-<span class="sourceLineNo">741</span> }<a name="line.741"></a>
-<span class="sourceLineNo">742</span> }<a name="line.742"></a>
-<span class="sourceLineNo">743</span><a name="line.743"></a>
-<span class="sourceLineNo">744</span> Set<Integer> candidateBuckets = bucketAllocator.getLeastFilledBuckets(<a name="line.744"></a>
-<span class="sourceLineNo">745</span> inUseBuckets, completelyFreeBucketsNeeded);<a name="line.745"></a>
-<span class="sourceLineNo">746</span> for (Map.Entry<BlockCacheKey, BucketEntry> entry : backingMap.entrySet()) {<a name="line.746"></a>
-<span class="sourceLineNo">747</span> if (candidateBuckets.contains(bucketAllocator<a name="line.747"></a>
-<span class="sourceLineNo">748</span> .getBucketIndex(entry.getValue().offset()))) {<a name="line.748"></a>
-<span class="sourceLineNo">749</span> evictBlock(entry.getKey(), false);<a name="line.749"></a>
-<span class="sourceLineNo">750</span> }<a name="line.750"></a>
-<span class="sourceLineNo">751</span> }<a name="line.751"></a>
-<span class="sourceLineNo">752</span> }<a name="line.752"></a>
-<span class="sourceLineNo">753</span> }<a name="line.753"></a>
-<span class="sourceLineNo">754</span><a name="line.754"></a>
-<span class="sourceLineNo">755</span> /**<a name="line.755"></a>
-<span class="sourceLineNo">756</span> * Free the space if the used size reaches acceptableSize() or one size block<a name="line.756"></a>
-<span class="sourceLineNo">757</span> * couldn't be allocated. When freeing the space, we use the LRU algorithm and<a name="line.757"></a>
-<span class="sourceLineNo">758</span> * ensure there must be some blocks evicted<a name="line.758"></a>
-<span class="sourceLineNo">759</span> * @param why Why we are being called<a name="line.759"></a>
-<span class="sourceLineNo">760</span> */<a name="line.760"></a>
-<span class="sourceLineNo">761</span> private void freeSpace(final String why) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span> // Ensure only one freeSpace progress at a time<a name="line.762"></a>
-<span class="sourceLineNo">763</span> if (!freeSpaceLock.tryLock()) {<a name="line.763"></a>
-<span class="sourceLineNo">764</span> return;<a name="line.764"></a>
-<span class="sourceLineNo">765</span> }<a name="line.765"></a>
-<span class="sourceLineNo">766</span> try {<a name="line.766"></a>
-<span class="sourceLineNo">767</span> freeInProgress = true;<a name="line.767"></a>
-<span class="sourceLineNo">768</span> long bytesToFreeWithoutExtra = 0;<a name="line.768"></a>
-<span class="sourceLineNo">769</span> // Calculate free byte for each bucketSizeinfo<a name="line.769"></a>
-<span class="sourceLineNo">770</span> StringBuilder msgBuffer = LOG.isDebugEnabled()? new StringBuilder(): null;<a name="line.770"></a>
-<span class="sourceLineNo">771</span> BucketAllocator.IndexStatistics[] stats = bucketAllocator.getIndexStatistics();<a name="line.771"></a>
-<span class="sourceLineNo">772</span> long[] bytesToFreeForBucket = new long[stats.length];<a name="line.772"></a>
-<span class="sourceLineNo">773</span> for (int i = 0; i < stats.length; i++) {<a name="line.773"></a>
-<span class="sourceLineNo">774</span> bytesToFreeForBucket[i] = 0;<a name="line.774"></a>
-<span class="sourceLineNo">775</span> long freeGoal = (long) Math.floor(stats[i].totalCount() * (1 - minFactor));<a name="line.775"></a>
-<span class="sourceLineNo">776</span> freeGoal = Math.max(freeGoal, 1);<a name="line.776"></a>
-<span class="sourceLineNo">777</span> if (stats[i].freeCount() < freeGoal) {<a name="line.777"></a>
-<span class="sourceLineNo">778</span> bytesToFreeForBucket[i] = stats[i].itemSize() * (freeGoal - stats[i].freeCount());<a name="line.778"></a>
-<span class="sourceLineNo">779</span> bytesToFreeWithoutExtra += bytesToFreeForBucket[i];<a name="line.779"></a>
-<span class="sourceLineNo">780</span> if (msgBuffer != null) {<a name="line.780"></a>
-<span class="sourceLineNo">781</span> msgBuffer.append("Free for bucketSize(" + stats[i].itemSize() + ")="<a name="line.781"></a>
-<span class="sourceLineNo">782</span> + StringUtils.byteDesc(bytesToFreeForBucket[i]) + ", ");<a name="line.782"></a>
-<span class="sourceLineNo">783</span> }<a name="line.783"></a>
-<span class="sourceLineNo">784</span> }<a name="line.784"></a>
+<span class="sourceLineNo">634</span> bucketEntry.markForEvict();<a name="line.634"></a>
+<span class="sourceLineNo">635</span> }<a name="line.635"></a>
+<span class="sourceLineNo">636</span> }<a name="line.636"></a>
+<span class="sourceLineNo">637</span> } finally {<a name="line.637"></a>
+<span class="sourceLineNo">638</span> lock.writeLock().unlock();<a name="line.638"></a>
+<span class="sourceLineNo">639</span> }<a name="line.639"></a>
+<span class="sourceLineNo">640</span> cacheStats.evicted(bucketEntry.getCachedTime(), cacheKey.isPrimary());<a name="line.640"></a>
+<span class="sourceLineNo">641</span> return true;<a name="line.641"></a>
+<span class="sourceLineNo">642</span> }<a name="line.642"></a>
+<span class="sourceLineNo">643</span><a name="line.643"></a>
+<span class="sourceLineNo">644</span> /*<a name="line.644"></a>
+<span class="sourceLineNo">645</span> * Statistics thread. Periodically output cache statistics to the log.<a name="line.645"></a>
+<span class="sourceLineNo">646</span> */<a name="line.646"></a>
+<span class="sourceLineNo">647</span> private static class StatisticsThread extends Thread {<a name="line.647"></a>
+<span class="sourceLineNo">648</span> private final BucketCache bucketCache;<a name="line.648"></a>
+<span class="sourceLineNo">649</span><a name="line.649"></a>
+<span class="sourceLineNo">650</span> public StatisticsThread(BucketCache bucketCache) {<a name="line.650"></a>
+<span class="sourceLineNo">651</span> super("BucketCacheStatsThread");<a name="line.651"></a>
+<span class="sourceLineNo">652</span> setDaemon(true);<a name="line.652"></a>
+<span class="sourceLineNo">653</span> this.bucketCache = bucketCache;<a name="line.653"></a>
+<span class="sourceLineNo">654</span> }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span> @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span> public void run() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span> bucketCache.logStats();<a name="line.658"></a>
+<span class="sourceLineNo">659</span> }<a name="line.659"></a>
+<span class="sourceLineNo">660</span> }<a name="line.660"></a>
+<span class="sourceLineNo">661</span><a name="line.661"></a>
+<span class="sourceLineNo">662</span> public void logStats() {<a name="line.662"></a>
+<span class="sourceLineNo">663</span> long totalSize = bucketAllocator.getTotalSize();<a name="line.663"></a>
+<span class="sourceLineNo">664</span> long usedSize = bucketAllocator.getUsedSize();<a name="line.664"></a>
+<span class="sourceLineNo">665</span> long freeSize = totalSize - usedSize;<a name="line.665"></a>
+<span class="sourceLineNo">666</span> long cacheSize = getRealCacheSize();<a name="line.666"></a>
+<span class="sourceLineNo">667</span> LOG.info("failedBlockAdditions=" + cacheStats.getFailedInserts() + ", " +<a name="line.667"></a>
+<span class="sourceLineNo">668</span> "totalSize=" + StringUtils.byteDesc(totalSize) + ", " +<a name="line.668"></a>
+<span class="sourceLineNo">669</span> "freeSize=" + StringUtils.byteDesc(freeSize) + ", " +<a name="line.669"></a>
+<span class="sourceLineNo">670</span> "usedSize=" + StringUtils.byteDesc(usedSize) +", " +<a name="line.670"></a>
+<span class="sourceLineNo">671</span> "cacheSize=" + StringUtils.byteDesc(cacheSize) +", " +<a name="line.671"></a>
+<span class="sourceLineNo">672</span> "accesses=" + cacheStats.getRequestCount() + ", " +<a name="line.672"></a>
+<span class="sourceLineNo">673</span> "hits=" + cacheStats.getHitCount() + ", " +<a name="line.673"></a>
+<span class="sourceLineNo">674</span> "IOhitsPerSecond=" + cacheStats.getIOHitsPerSecond() + ", " +<a name="line.674"></a>
+<span class="sourceLineNo">675</span> "IOTimePerHit=" + String.format("%.2f", cacheStats.getIOTimePerHit())+ ", " +<a name="line.675"></a>
+<span class="sourceLineNo">676</span> "hitRatio=" + (cacheStats.getHitCount() == 0 ? "0," :<a name="line.676"></a>
+<span class="sourceLineNo">677</span> (StringUtils.formatPercent(cacheStats.getHitRatio(), 2)+ ", ")) +<a name="line.677"></a>
+<span class="sourceLineNo">678</span> "cachingAccesses=" + cacheStats.getRequestCachingCount() + ", " +<a name="line.678"></a>
+<span class="sourceLineNo">679</span> "cachingHits=" + cacheStats.getHitCachingCount() + ", " +<a name="line.679"></a>
+<span class="sourceLineNo">680</span> "cachingHitsRatio=" +(cacheStats.getHitCachingCount() == 0 ? "0," :<a name="line.680"></a>
+<span class="sourceLineNo">681</span> (StringUtils.formatPercent(cacheStats.getHitCachingRatio(), 2)+ ", ")) +<a name="line.681"></a>
+<span class="sourceLineNo">682</span> "evictions=" + cacheStats.getEvictionCount() + ", " +<a name="line.682"></a>
+<span class="sourceLineNo">683</span> "evicted=" + cacheStats.getEvictedCount() + ", " +<a name="line.683"></a>
+<span class="sourceLineNo">684</span> "evictedPerRun=" + cacheStats.evictedPerEviction());<a name="line.684"></a>
+<span class="sourceLineNo">685</span> cacheStats.reset();<a name="line.685"></a>
+<span class="sourceLineNo">686</span> }<a name="line.686"></a>
+<span class="sourceLineNo">687</span><a name="line.687"></a>
+<span class="sourceLineNo">688</span> public long getRealCacheSize() {<a name="line.688"></a>
+<span class="sourceLineNo">689</span> return this.realCacheSize.sum();<a name="line.689"></a>
+<span class="sourceLineNo">690</span> }<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span> private long acceptableSize() {<a name="line.692"></a>
+<span class="sourceLineNo">693</span> return (long) Math.floor(bucketAllocator.getTotalSize() * acceptableFactor);<a name="line.693"></a>
+<span class="sourceLineNo">694</span> }<a name="line.694"></a>
+<span class="sourceLineNo">695</span><a name="line.695"></a>
+<span class="sourceLineNo">696</span> @VisibleForTesting<a name="line.696"></a>
+<span class="sourceLineNo">697</span> long getPartitionSize(float partitionFactor) {<a name="line.697"></a>
+<span class="sourceLineNo">698</span> return (long) Math.floor(bucketAllocator.getTotalSize() * partitionFactor * minFactor);<a name="line.698"></a>
+<span class="sourceLineNo">699</span> }<a name="line.699"></a>
+<span class="sourceLineNo">700</span><a name="line.700"></a>
+<span class="sourceLineNo">701</span> /**<a name="line.701"></a>
+<span class="sourceLineNo">702</span> * Return the count of bucketSizeinfos still need free space<a name="line.702"></a>
+<span class="sourceLineNo">703</span> */<a name="line.703"></a>
+<span class="sourceLineNo">704</span> private int bucketSizesAboveThresholdCount(float minFactor) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span> BucketAllocator.IndexStatistics[] stats = bucketAllocator.getIndexStatistics();<a name="line.705"></a>
+<span class="sourceLineNo">706</span> int fullCount = 0;<a name="line.706"></a>
+<span class="sourceLineNo">707</span> for (int i = 0; i < stats.length; i++) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span> long freeGoal = (long) Math.floor(stats[i].totalCount() * (1 - minFactor));<a name="line.708"></a>
+<span class="sourceLineNo">709</span> freeGoal = Math.max(freeGoal, 1);<a name="line.709"></a>
+<span class="sourceLineNo">710</span> if (stats[i].freeCount() < freeGoal) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span> fullCount++;<a name="line.711"></a>
+<span class="sourceLineNo">712</span> }<a name="line.712"></a>
+<span class="sourceLineNo">713</span> }<a name="line.713"></a>
+<span class="sourceLineNo">714</span> return fullCount;<a name="line.714"></a>
+<span class="sourceLineNo">715</span> }<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span> /**<a name="line.717"></a>
+<span class="sourceLineNo">718</span> * This method will find the buckets that are minimally occupied<a name="line.718"></a>
+<span class="sourceLineNo">719</span> * and are not reference counted and will free them completely<a name="line.719"></a>
+<span class="sourceLineNo">720</span> * without any constraint on the access times of the elements,<a name="line.720"></a>
+<span class="sourceLineNo">721</span> * and as a process will completely free at most the number of buckets<a name="line.721"></a>
+<span class="sourceLineNo">722</span> * passed, sometimes it might not due to changing refCounts<a name="line.722"></a>
+<span class="sourceLineNo">723</span> *<a name="line.723"></a>
+<span class="sourceLineNo">724</span> * @param completelyFreeBucketsNeeded number of buckets to free<a name="line.724"></a>
+<span class="sourceLineNo">725</span> **/<a name="line.725"></a>
+<span class="sourceLineNo">726</span> private void freeEntireBuckets(int completelyFreeBucketsNeeded) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span> if (completelyFreeBucketsNeeded != 0) {<a name="line.727"></a>
+<span class="sourceLineNo">728</span> // First we will build a set where the offsets are reference counted, usually<a name="line.728"></a>
+<span class="sourceLineNo">729</span> // this set is small around O(Handler Count) unless something else is wrong<a name="line.729"></a>
+<span class="sourceLineNo">730</span> Set<Integer> inUseBuckets = new HashSet<Integer>();<a name="line.730"></a>
+<span class="sourceLineNo">731</span> for (BucketEntry entry : backingMap.values()) {<a name="line.731"></a>
+<span class="sourceLineNo">732</span> if (entry.getRefCount() != 0) {<a name="line.732"></a>
+<span class="sourceLineNo">733</span> inUseBuckets.add(bucketAllocator.getBucketIndex(entry.offset()));<a name="line.733"></a>
+<span class="sourceLineNo">734</span> }<a name="line.734"></a>
+<span class="sourceLineNo">735</span> }<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span> Set<Integer> candidateBuckets = bucketAllocator.getLeastFilledBuckets(<a name="line.737"></a>
+<span class="sourceLineNo">738</span> inUseBuckets, completelyFreeBucketsNeeded);<a name="line.738"></a>
+<span class="sourceLineNo">739</span> for (Map.Entry<BlockCacheKey, BucketEntry> entry : backingMap.entrySet()) {<a name="line.739"></a>
+<span class="sourceLineNo">740</span> if (candidateBuckets.contains(bucketAllocator<a name="line.740"></a>
+<span class="sourceLineNo">741</span> .getBucketIndex(entry.getValue().offset()))) {<a name="line.741"></a>
+<span class="sourceLineNo">742</span> evictBlock(entry.getKey(), false);<a name="line.742"></a>
+<span class="sourceLineNo">743</span> }<a name="line.743"></a>
+<span class="sourceLineNo">744</span> }<a name="line.744"></a>
+<span class="sourceLineNo">745</span> }<a name="line.745"></a>
+<span class="sourceLineNo">746</span> }<a name="line.746"></a>
+<span class="sourceLineNo">747</span><a name="line.747"></a>
+<span class="sourceLineNo">748</span> /**<a name="line.748"></a>
+<span class="sourceLineNo">749</span> * Free the space if the used size reaches acceptableSize() or one size block<a name="line.749"></a>
+<span class="sourceLineNo">750</span> * couldn't be allocated. When freeing the space, we use the LRU algorithm and<a name="line.750"></a>
+<span class="sourceLineNo">751</span> * ensure there must be some blocks evicted<a name="line.751"></a>
+<span class="sourceLineNo">752</span> * @param why Why we are being called<a name="line.752"></a>
+<span class="sourceLineNo">753</span> */<a name="line.753"></a>
+<span class="sourceLineNo">754</span> private void freeSpace(final String why) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span> // Ensure only one freeSpace progress at a time<a name="line.755"></a>
+<span class="sourceLineNo">756</span> if (!freeSpaceLock.tryLock()) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span> return;<a name="line.757"></a>
+<span class="sourceLineNo">758</span> }<a name="line.758"></a>
+<span class="sourceLineNo">759</span> try {<a name="line.759"></a>
+<span class="sourceLineNo">760</span> freeInProgress = true;<a name="line.760"></a>
+<span class="sourceLineNo">761</span> long bytesToFreeWithoutExtra = 0;<a name="line.761"></a>
+<span class="sourceLineNo">762</span> // Calculate free byte for each bucketSizeinfo<a name="line.762"></a>
+<span class="sourceLineNo">763</span> StringBuilder msgBuffer = LOG.isDebugEnabled()? new StringBuilder(): null;<a name="line.763"></a>
+<span class="sourceLineNo">764</span> BucketAllocator.IndexStatistics[] stats = bucketAllocator.getIndexStatistics();<a name="line.764"></a>
+<span class="sourceLineNo">765</span> long[] bytesToFreeForBucket = new long[stats.length];<a name="line.765"></a>
+<span class="sourceLineNo">766</span> for (int i = 0; i < stats.length; i++) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span> bytesToFreeForBucket[i] = 0;<a name="line.767"></a>
+<span class="sourceLineNo">768</span> long freeGoal = (long) Math.floor(stats[i].totalCount() * (1 - minFactor));<a name="line.768"></a>
+<span class="sourceLineNo">769</span> freeGoal = Math.max(freeGoal, 1);<a name="line.769"></a>
+<span class="sourceLineNo">770</span> if (stats[i].freeCount() < freeGoal) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span> bytesToFreeForBucket[i] = stats[i].itemSize() * (freeGoal - stats[i].freeCount());<a name="line.771"></a>
+<span class="sourceLineNo">772</span> bytesToFreeWithoutExtra += bytesToFreeForBucket[i];<a name="line.772"></a>
+<span class="sourceLineNo">773</span> if (msgBuffer != null) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span> msgBuffer.append("Free for bucketSize(" + stats[i].itemSize() + ")="<a name="line.774"></a>
+<span class="sourceLineNo">775</span> + StringUtils.byteDesc(bytesToFreeForBucket[i]) + ", ");<a name="line.775"></a>
+<span class="sourceLineNo">776</span> }<a name="line.776"></a>
+<span class="sourceLineNo">777</span> }<a name="line.777"></a>
+<span class="sourceLineNo">778</span> }<a name="line.778"></a>
+<span class="sourceLineNo">779</span> if (msgBuffer != null) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span> msgBuffer.append("Free for total=" + StringUtils.byteDesc(bytesToFreeWithoutExtra) + ", ");<a name="line.780"></a>
+<span class="sourceLineNo">781</span> }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span> if (bytesToFreeWithoutExtra <= 0) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span> return;<a name="line.784"></a>
<span class="sourceLineNo">785</span> }<a name="line.785"></a>
-<span class="sourceLineNo">786</span> if (msgBuffer != null) {<a name="line.786"></a>
-<span class="sourceLineNo">787</span> msgBuffer.append("Free for total=" + StringUtils.byteDesc(bytesToFreeWithoutExtra) + ", ");<a name="line.787"></a>
-<span class="sourceLineNo">788</span> }<a name="line.788"></a>
-<span class="sourceLineNo">789</span><a name="line.789"></a>
-<span class="sourceLineNo">790</span> if (bytesToFreeWithoutExtra <= 0) {<a name="line.790"></a>
-<span class="sourceLineNo">791</span> return;<a name="line.791"></a>
+<span class="sourceLineNo">786</span> long currentSize = bucketAllocator.getUsedSize();<a name="line.786"></a>
+<span class="sourceLineNo">787</span> long totalSize = bucketAllocator.getTotalSize();<a name="line.787"></a>
+<span class="sourceLineNo">788</span> if (LOG.isDebugEnabled() && msgBuffer != null) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span> LOG.debug("Free started because \"" + why + "\"; " + msgBuffer.toString() +<a name="line.789"></a>
+<span class="sourceLineNo">790</span> " of current used=" + StringUtils.byteDesc(currentSize) + ", actual cacheSize=" +<a name="line.790"></a>
+<span class="sourceLineNo">791</span> StringUtils.byteDesc(realCacheSize.sum()) + ", total=" + StringUtils.byteDesc(totalSize));<a name="line.791"></a>
<span class="sourceLineNo">792</span> }<a name="line.792"></a>
-<span class="sourceLineNo">793</span> long currentSize = bucketAllocator.getUsedSize();<a name="line.793"></a>
-<span class="sourceLineNo">794</span> long totalSize = bucketAllocator.getTotalSize();<a name="line.794"></a>
-<span class="sourceLineNo">795</span> if (LOG.isDebugEnabled() && msgBuffer != null) {<a name="line.795"></a>
-<span class="sourceLineNo">796</span> LOG.debug("Free started because \"" + why + "\"; " + msgBuffer.toString() +<a name="line.796"></a>
-<span class="sourceLineNo">797</span> " of current used=" + StringUtils.byteDesc(currentSize) + ", actual cacheSize=" +<a name="line.797"></a>
-<span class="sourceLineNo">798</span> StringUtils.byteDesc(realCacheSize.sum()) + ", total=" + StringUtils.byteDesc(totalSize));<a name="line.798"></a>
-<span class="sourceLineNo">799</span> }<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span> long bytesToFreeWithExtra = (long) Math.floor(bytesToFreeWithoutExtra<a name="line.801"></a>
-<span class="sourceLineNo">802</span> * (1 + extraFreeFactor));<a name="line.802"></a>
-<span class="sourceLineNo">803</span><a name="line.803"></a>
-<span class="sourceLineNo">804</span> // Instantiate priority buckets<a name="line.804"></a>
-<span class="sourceLineNo">805</span> BucketEntryGroup bucketSingle = new BucketEntryGroup(bytesToFreeWithExtra,<a name="line.805"></a>
-<span class="sourceLineNo">806</span> blockSize, getPartitionSize(singleFactor));<a name="line.806"></a>
-<span class="sourceLineNo">807</span> BucketEntryGroup bucketMulti = new BucketEntryGroup(bytesToFreeWithExtra,<a name="line.807"></a>
-<span class="sourceLineNo">808</span> blockSize, getPartitionSize(multiFactor));<a name="line.808"></a>
-<span class="sourceLineNo">809</span> BucketEntryGroup bucketMemory = new BucketEntryGroup(bytesToFreeWithExtra,<a name="line.809"></a>
-<span class="sourceLineNo">810</span> blockSize, getPartitionSize(memoryFactor));<a name="line.810"></a>
-<span class="sourceLineNo">811</span><a name="line.811"></a>
-<span class="sourceLineNo">812</span> // Scan entire map putting bucket entry into appropriate bucket entry<a name="line.812"></a>
-<span class="sourceLineNo">813</span> // group<a name="line.813"></a>
-<span class="sourceLineNo">814</span> for (Map.Entry<BlockCacheKey, BucketEntry> bucketEntryWithKey : backingMap.entrySet()) {<a name="line.814"></a>
-<span class="sourceLineNo">815</span> switch (bucketEntryWithKey.getValue().getPriority()) {<a name="line.815"></a>
-<span class="sourceLineNo">816</span> case SINGLE: {<a name="line.816"></a>
-<span class="sourceLineNo">817</span> bucketSingle.add(bucketEntryWithKey);<a name="line.817"></a>
-<span class="sourceLineNo">818</span> break;<a name="line.818"></a>
-<span class="sourceLineNo">819</span> }<a name="line.819"></a>
-<span class="sourceLineNo">820</span> case MULTI: {<a name="line.820"></a>
-<span class="sourceLineNo">821</span> bucketMulti.add(bucketEntryWithKey);<a name="line.821"></a>
-<span class="sourceLineNo">822</span> break;<a name="line.822"></a>
-<span class="sourceLineNo">823</span> }<a name="line.823"></a>
-<span class="sourceLineNo">824</span> case MEMORY: {<a name="line.824"></a>
-<span class="sourceLineNo">825</span> bucketMemory.add(bucketEntryWithKey);<a name="line.825"></a>
-<span class="sourceLineNo">826</span> break;<a name="line.826"></a>
-<span class="sourceLineNo">827</span> }<a name="line.827"></a>
-<span class="sourceLineNo">828</span> }<a name="line.828"></a>
-<span class="sourceLineNo">829</span> }<a name="line.829"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span> long bytesToFreeWithExtra = (long) Math.floor(bytesToFreeWithoutExtra<a name="line.794"></a>
+<span class="sourceLineNo">795</span> * (1 + extraFreeFactor));<a name="line.795"></a>
+<span class="sourceLineNo">796</span><a name="line.796"></a>
+<span class="sourceLineNo">797</span> // Instantiate priority buckets<a name="line.797"></a>
+<span class="sourceLineNo">798</span> BucketEntryGroup bucketSingle = new BucketEntryGroup(bytesToFreeWithExtra,<a name="line.798"></a>
+<span class="sourceLineNo">799</span> blockSize, getPartitionSize(singleFactor));<a name="line.799"></a>
+<span class="sourceLineNo">800</span> BucketEntryGroup bucketMulti = new BucketEntryGroup(bytesToFreeWithExtra,<a name="line.800"></a>
+<span class="sourceLineNo">801</span> blockSize, getPartitionSize(multiFactor));<a name="line.801"></a>
+<span class="sourceLineNo">802</span> BucketEntryGroup bucketMemory = new BucketEntryGroup(bytesToFreeWithExtra,<a name="line.802"></a>
+<span class="sourceLineNo">803</span> blockSize, getPartitionSize(memoryFactor));<a name="line.803"></a>
+<span class="sourceLineNo">804</span><a name="line.804"></a>
+<span class="sourceLineNo">805</span> // Scan entire map putting bucket entry into appropriate bucket entry<a name="line.805"></a>
+<span class="sourceLineNo">806</span> // group<a name="line.806"></a>
+<span class="sourceLineNo">807</span> for (Map.Entry<BlockCacheKey, BucketEntry> bucketEntryWithKey : backingMap.entrySet()) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span> switch (bucketEntryWithKey.getValue().getPriority()) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span> case SINGLE: {<a name="line.809"></a>
+<span class="sourceLineNo">810</span> bucketSingle.add(bucketEntryWithKey);<a name="line.810"></a>
+<span class="sourceLineNo">811</span> break;<a name="line.811"></a>
+<span class="sourceLineNo">812</span> }<a name="line.812"></a>
+<span class="sourceLineNo">813</span> case MULTI: {<a name="line.813"></a>
+<span class="sourceLineNo">814</span> bucketMulti.add(bucketEntryWithKey);<a name="line.814"></a>
+<span class="sourceLineNo">815</span> break;<a name="line.815"></a>
+<span class="sourceLineNo">816</span> }<a name="line.816"></a>
+<span class="sourceLineNo">817</span> case MEMORY: {<a name="line.817"></a>
+<span class="sourceLineNo">818</span> bucketMemory.add(bucketEntryWithKey);<a name="line.818"></a>
+<span class="sourceLineNo">819</span> break;<a name="line.819"></a>
+<span class="sourceLineNo">820</span> }<a name="line.820"></a>
+<span class="sourceLineNo">821</span> }<a name="line.821"></a>
+<span class="sourceLineNo">822</span> }<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span> PriorityQueue<BucketEntryGroup> bucketQueue = new PriorityQueue<>(3,<a name="line.824"></a>
+<span class="sourceLineNo">825</span> Comparator.comparingLong(BucketEntryGroup::overflow));<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span> bucketQueue.add(bucketSingle);<a name="line.827"></a>
+<span class="sourceLineNo">828</span> bucketQueue.add(bucketMulti);<a name="line.828"></a>
+<span class="sourceLineNo">829</span> bucketQueue.add(bucketMemory);<a name="line.829"></a>
<span class="sourceLineNo">830</span><a name="line.830"></a>
-<span class="sourceLineNo">831</span> PriorityQueue<BucketEntryGroup> bucketQueue = new PriorityQueue<>(3,<a name="line.831"></a>
-<span class="sourceLineNo">832</span> Comparator.comparingLong(BucketEntryGroup::overflow));<a name="line.832"></a>
+<span class="sourceLineNo">831</span> int remainingBuckets = 3;<a name="line.831"></a>
+<span class="sourceLineNo">832</span> long bytesFreed = 0;<a name="line.832"></a>
<span class="sourceLineNo">833</span><a name="line.833"></a>
-<span class="sourceLineNo">834</span> bucketQueue.add(bucketSingle);<a name="line.834"></a>
-<span class="sourceLineNo">835</span> bucketQueue.add(bucketMulti);<a name="line.835"></a>
-<span class="sourceLineNo">836</span> bucketQueue.add(bucketMemory);<a name="line.836"></a>
-<span class="sourceLineNo">837</span><a name="line.837"></a>
-<span class="sourceLineNo">838</span> int remainingBuckets = 3;<a name="line.838"></a>
-<span class="sourceLineNo">839</span> long bytesFreed = 0;<a name="line.839"></a>
-<span class="sourceLineNo">840</span><a name="line.840"></a>
-<span class="sourceLineNo">841</span> BucketEntryGroup bucketGroup;<a name="line.841"></a>
-<span class="sourceLineNo">842</span> while ((bucketGroup = bucketQueue.poll()) != null) {<a name="line.842"></a>
-<span class="sourceLineNo">843</span> long overflow = bucketGroup.overflow();<a name="line.843"></a>
-<span class="sourceLineNo">844</span> if (overflow > 0) {<a name="line.844"></a>
-<span class="sourceLineNo">845</span> long bucketBytesToFree = Math.min(overflow,<a name="line.845"></a>
-<span class="sourceLineNo">846</span> (bytesToFreeWithoutExtra - bytesFreed) / remainingBuckets);<a name="line.846"></a>
-<span class="sourceLineNo">847</span> bytesFreed += bucketGroup.free(bucketBytesToFree);<a name="line.847"></a>
-<span class="sourceLineNo">848</span> }<a name="line.848"></a>
-<span class="sourceLineNo">849</span> remainingBuckets--;<a name="line.849"></a>
-<span class="sourceLineNo">850</span> }<a name="line.850"></a>
-<span class="sourceLineNo">851</span><a name="line.851"></a>
-<span class="sourceLineNo">852</span> // Check and free if there are buckets that still need freeing of space<a name="line.852"></a>
-<span class="sourceLineNo">853</span> if (bucketSizesAboveThresholdCount(minFactor) > 0) {<a name="line.853"></a>
-<span class="sourceLineNo">854</span> bucketQueue.clear();<a name="line.854"></a>
-<span class="sourceLineNo">855</span> remainingBuckets = 3;<a name="line.855"></a>
-<span class="sourceLineNo">856</span><a name="line.856"></a>
-<span class="sourceLineNo">857</span> bucketQueue.add(bucketSingle);<a name="line.857"></a>
-<span class="sourceLineNo">858</span> bucketQueue.add(bucketMulti);<a name="line.858"></a>
-<span class="sourceLineNo">859</span> bucketQueue.add(bucketMemory);<a name="line.859"></a>
+<span class="sourceLineNo">834</span> BucketEntryGroup bucketGroup;<a name="line.834"></a>
+<span class="sourceLineNo">835</span> while ((bucketGroup = bucketQueue.poll()) != null) {<a name="line.835"></a>
+<span class="sourceLineNo">836</span> long overflow = bucketGroup.overflow();<a name="line.836"></a>
+<span class="sourceLineNo">837</span> if (overflow > 0) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span> long bucketBytesToFree = Math.min(overflow,<a name="line.838"></a>
+<span class="sourceLineNo">839</span> (bytesToFreeWithoutExtra - bytesFreed) / remainingBuckets);<a name="line.839"></a>
+<span class="sourceLineNo">840</span> bytesFreed += bucketGroup.free(bucketBytesToFree);<a name="line.840"></a>
+<span class="sourceLineNo">841</span> }<a name="line.841"></a>
+<span class="sourceLineNo">842</span> remainingBuckets--;<a name="line.842"></a>
+<span class="sourceLineNo">843</span> }<a name="line.843"></a>
+<span class="sourceLineNo">844</span><a name="line.844"></a>
+<span class="sourceLineNo">845</span> // Check and free if there are buckets that still need freeing of space<a name="line.845"></a>
+<span class="sourceLineNo">846</span> if (bucketSizesAboveThresholdCount(minFactor) > 0) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span> bucketQueue.clear();<a name="line.847"></a>
+<span class="sourceLineNo">848</span> remainingBuckets = 3;<a name="line.848"></a>
+<span class="sourceLineNo">849</span><a name="line.849"></a>
+<span class="sourceLineNo">850</span> bucketQueue.add(bucketSingle);<a name="line.850"></a>
+<span class="sourceLineNo">851</span> bucketQueue.add(bucketMulti);<a name="line.851"></a>
+<span class="sourceLineNo">852</span> bucketQueue.add(bucketMemory);<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span> while ((bucketGroup = bucketQueue.poll()) != null) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span> long bucketBytesToFree = (bytesToFreeWithExtra - bytesFreed) / remainingBuckets;<a name="line.855"></a>
+<span class="sourceLineNo">856</span> bytesFreed += bucketGroup.free(bucketBytesToFree);<a name="line.856"></a>
+<span class="sourceLineNo">857</span> remainingBuckets--;<a name="line.857"></a>
+<span class="sourceLineNo">858</span> }<a name="line.858"></a>
+<span class="sourceLineNo">859</span> }<a name="line.859"></a>
<span class="sourceLineNo">860</span><a name="line.860"></a>
-<span class="sourceLineNo">861</span> while ((bucketGroup = bucketQueue.poll()) != null) {<a name="line.861"></a>
-<span class="sourceLineNo">862</span> long bucketBytesToFree = (bytesToFreeWithExtra - bytesFreed) / remainingBuckets;<a name="line.862"></a>
-<span class="sourceLineNo">863</span> bytesFreed += bucketGroup.free(bucketBytesToFree);<a name="line.863"></a>
-<span class="sourceLineNo">864</span> remainingBuckets--;<a name="line.864"></a>
-<span class="sourceLineNo">865</span> }<a name="line.865"></a>
-<span class="sourceLineNo">866</span> }<a name="line.866"></a>
-<span class="sourceLineNo">867</span><a name="line.867"></a>
-<span class="sourceLineNo">868</span> // Even after the above free we might still need freeing because of the<a name="line.868"></a>
-<span class="sourceLineNo">869</span> // De-fragmentation of the buckets (also called Slab Calcification problem), i.e<a name="line.869"></a>
-<span class="sourceLineNo">870</span> // there might be some buckets where the occupancy is very sparse and thus are not<a name="line.870"></a>
-<span class="sourceLineNo">871</span> // yielding the free for the other bucket sizes, the fix for this to evict some<a name="line.871"></a>
-<span class="sourceLineNo">872</span> // of the buckets, we do this by evicting the buckets that are least fulled<a name="line.872"></a>
-<span class="sourceLineNo">873</span> freeEntireBuckets(DEFAULT_FREE_ENTIRE_BLOCK_FACTOR *<a name="line.873"></a>
-<span class="sourceLineNo">874</span> bucketSizesAboveThresholdCount(1.0f));<a name="line.874"></a>
-<span class="sourceLineNo">875</span><a name="line.875"></a>
-<span class="sourceLineNo">876</span> if (LOG.isDebugEnabled()) {<a name="line.876"></a>
-<span class="sourceLineNo">877</span> long single = bucketSingle.totalSize();<a name="line.877"></a>
-<span class="sourceLineNo">878</span> long multi = bucketMulti.totalSize();<a name="line.878"></a>
-<span class="sourceLineNo">879</span> long memory = bucketMemory.totalSize();<a name="line.879"></a>
-<span class="sourceLineNo">880</span> if (LOG.isDebugEnabled()) {<a name="line.880"></a>
-<span class="sourceLineNo">881</span> LOG.debug("Bucket
<TRUNCATED>
[09/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html
index 05e032c..40ef9f4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html
@@ -25,767 +25,805 @@
<span class="sourceLineNo">017</span> */<a name="line.17"></a>
<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.io.asyncfs;<a name="line.18"></a>
<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.21"></a>
+<span class="sourceLineNo">020</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.21"></a>
<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import com.google.protobuf.CodedOutputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.io.IOException;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.lang.reflect.Field;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.lang.reflect.InvocationTargetException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.lang.reflect.Method;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.net.InetAddress;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import java.net.InetSocketAddress;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import java.nio.ByteBuffer;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import java.security.GeneralSecurityException;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import java.util.Arrays;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import java.util.Collections;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import java.util.List;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import java.util.Map;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import java.util.Set;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import java.util.concurrent.TimeUnit;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>import javax.security.auth.callback.Callback;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import javax.security.auth.callback.CallbackHandler;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import javax.security.auth.callback.NameCallback;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import javax.security.auth.callback.PasswordCallback;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import javax.security.sasl.RealmCallback;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import javax.security.sasl.Sasl;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import javax.security.sasl.SaslClient;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import javax.security.sasl.SaslException;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.commons.codec.binary.Base64;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.commons.lang3.StringUtils;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.conf.Configuration;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.slf4j.Logger;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.slf4j.LoggerFactory;<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>import com.google.protobuf.ByteString;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.security.token.Token;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>/**<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@InterfaceAudience.Private<a name="line.109"></a>
-<span class="sourceLineNo">110</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.110"></a>
-<span class="sourceLineNo">111</span> private static final Logger LOG =<a name="line.111"></a>
-<span class="sourceLineNo">112</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.112"></a>
+<span class="sourceLineNo">023</span>import com.google.protobuf.ByteString;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import com.google.protobuf.CodedOutputStream;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.lang.reflect.Field;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.lang.reflect.InvocationTargetException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.lang.reflect.Method;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.net.InetAddress;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.net.InetSocketAddress;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.ByteBuffer;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.security.GeneralSecurityException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.Arrays;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.List;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Map;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.Set;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import java.util.concurrent.TimeUnit;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import javax.security.auth.callback.Callback;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import javax.security.auth.callback.CallbackHandler;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import javax.security.auth.callback.NameCallback;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import javax.security.auth.callback.PasswordCallback;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import javax.security.sasl.RealmCallback;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import javax.security.sasl.Sasl;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import javax.security.sasl.SaslClient;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import javax.security.sasl.SaslException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.commons.codec.binary.Base64;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.commons.lang3.StringUtils;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.conf.Configuration;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.crypto.key.KeyProvider;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.security.token.Token;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.slf4j.Logger;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.slf4j.LoggerFactory;<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>/**<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.104"></a>
+<span class="sourceLineNo">105</span> */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>@InterfaceAudience.Private<a name="line.106"></a>
+<span class="sourceLineNo">107</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> private static final Logger LOG =<a name="line.108"></a>
+<span class="sourceLineNo">109</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span> }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span> private static final String SERVER_NAME = "0";<a name="line.117"></a>
-<span class="sourceLineNo">118</span> private static final String PROTOCOL = "hdfs";<a name="line.118"></a>
-<span class="sourceLineNo">119</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.119"></a>
-<span class="sourceLineNo">120</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> private static final String NAME_DELIMITER = " ";<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span> private interface SaslAdaptor {<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.127"></a>
+<span class="sourceLineNo">114</span> private static final String SERVER_NAME = "0";<a name="line.114"></a>
+<span class="sourceLineNo">115</span> private static final String PROTOCOL = "hdfs";<a name="line.115"></a>
+<span class="sourceLineNo">116</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.116"></a>
+<span class="sourceLineNo">117</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> private static final String NAME_DELIMITER = " ";<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span> private interface SaslAdaptor {<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> }<a name="line.127"></a>
<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> }<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.132"></a>
+<span class="sourceLineNo">129</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span> // helper class for convert protos.<a name="line.131"></a>
+<span class="sourceLineNo">132</span> private interface PBHelper {<a name="line.132"></a>
<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span> // helper class for convert protos.<a name="line.134"></a>
-<span class="sourceLineNo">135</span> private interface PBHelper {<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.137"></a>
+<span class="sourceLineNo">134</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.139"></a>
-<span class="sourceLineNo">140</span> }<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span> private static final PBHelper PB_HELPER;<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> private interface TransparentCryptoHelper {<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.146"></a>
-<span class="sourceLineNo">147</span> throws IOException;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span> private static SaslAdaptor createSaslAdaptor()<a name="line.152"></a>
-<span class="sourceLineNo">153</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.153"></a>
-<span class="sourceLineNo">154</span> Field saslPropsResolverField =<a name="line.154"></a>
-<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.155"></a>
-<span class="sourceLineNo">156</span> saslPropsResolverField.setAccessible(true);<a name="line.156"></a>
-<span class="sourceLineNo">157</span> Field trustedChannelResolverField =<a name="line.157"></a>
-<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.158"></a>
-<span class="sourceLineNo">159</span> trustedChannelResolverField.setAccessible(true);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> Field fallbackToSimpleAuthField =<a name="line.160"></a>
-<span class="sourceLineNo">161</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.161"></a>
-<span class="sourceLineNo">162</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.162"></a>
-<span class="sourceLineNo">163</span> return new SaslAdaptor() {<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> @Override<a name="line.165"></a>
-<span class="sourceLineNo">166</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span> try {<a name="line.167"></a>
-<span class="sourceLineNo">168</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.168"></a>
-<span class="sourceLineNo">169</span> } catch (IllegalAccessException e) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> throw new RuntimeException(e);<a name="line.170"></a>
-<span class="sourceLineNo">171</span> }<a name="line.171"></a>
-<span class="sourceLineNo">172</span> }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span> @Override<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> try {<a name="line.176"></a>
-<span class="sourceLineNo">177</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> } catch (IllegalAccessException e) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span> throw new RuntimeException(e);<a name="line.179"></a>
-<span class="sourceLineNo">180</span> }<a name="line.180"></a>
-<span class="sourceLineNo">181</span> }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span> @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span> try {<a name="line.185"></a>
-<span class="sourceLineNo">186</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.186"></a>
-<span class="sourceLineNo">187</span> } catch (IllegalAccessException e) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> throw new RuntimeException(e);<a name="line.188"></a>
-<span class="sourceLineNo">189</span> }<a name="line.189"></a>
-<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span> };<a name="line.191"></a>
-<span class="sourceLineNo">192</span> }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.194"></a>
-<span class="sourceLineNo">195</span> Class<?> helperClass;<a name="line.195"></a>
-<span class="sourceLineNo">196</span> try {<a name="line.196"></a>
-<span class="sourceLineNo">197</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.197"></a>
-<span class="sourceLineNo">198</span> } catch (ClassNotFoundException e) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.199"></a>
-<span class="sourceLineNo">200</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.200"></a>
-<span class="sourceLineNo">201</span> }<a name="line.201"></a>
-<span class="sourceLineNo">202</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> Method convertCipherOptionProtosMethod =<a name="line.203"></a>
-<span class="sourceLineNo">204</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.204"></a>
-<span class="sourceLineNo">205</span> return new PBHelper() {<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span> @SuppressWarnings("unchecked")<a name="line.207"></a>
-<span class="sourceLineNo">208</span> @Override<a name="line.208"></a>
-<span class="sourceLineNo">209</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span> try {<a name="line.210"></a>
-<span class="sourceLineNo">211</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span> throw new RuntimeException(e);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> }<a name="line.214"></a>
-<span class="sourceLineNo">215</span> }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> @SuppressWarnings("unchecked")<a name="line.217"></a>
-<span class="sourceLineNo">218</span> @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span> try {<a name="line.220"></a>
-<span class="sourceLineNo">221</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.221"></a>
-<span class="sourceLineNo">222</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span> throw new RuntimeException(e);<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span> }<a name="line.225"></a>
-<span class="sourceLineNo">226</span> };<a name="line.226"></a>
-<span class="sourceLineNo">227</span> }<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.229"></a>
-<span class="sourceLineNo">230</span> throws NoSuchMethodException {<a name="line.230"></a>
-<span class="sourceLineNo">231</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.231"></a>
-<span class="sourceLineNo">232</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.232"></a>
-<span class="sourceLineNo">233</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span> return new TransparentCryptoHelper() {<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span> @Override<a name="line.236"></a>
-<span class="sourceLineNo">237</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.237"></a>
-<span class="sourceLineNo">238</span> DFSClient client) throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span> try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> KeyVersion decryptedKey =<a name="line.240"></a>
-<span class="sourceLineNo">241</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.241"></a>
-<span class="sourceLineNo">242</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.242"></a>
-<span class="sourceLineNo">243</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.243"></a>
-<span class="sourceLineNo">244</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.244"></a>
-<span class="sourceLineNo">245</span> return encryptor;<a name="line.245"></a>
-<span class="sourceLineNo">246</span> } catch (InvocationTargetException e) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.247"></a>
-<span class="sourceLineNo">248</span> throw new RuntimeException(e.getTargetException());<a name="line.248"></a>
-<span class="sourceLineNo">249</span> } catch (GeneralSecurityException e) {<a name="line.249"></a>
-<span class="sourceLineNo">250</span> throw new IOException(e);<a name="line.250"></a>
-<span class="sourceLineNo">251</span> } catch (IllegalAccessException e) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> throw new RuntimeException(e);<a name="line.252"></a>
-<span class="sourceLineNo">253</span> }<a name="line.253"></a>
-<span class="sourceLineNo">254</span> }<a name="line.254"></a>
-<span class="sourceLineNo">255</span> };<a name="line.255"></a>
-<span class="sourceLineNo">256</span> }<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span> static {<a name="line.258"></a>
-<span class="sourceLineNo">259</span> try {<a name="line.259"></a>
-<span class="sourceLineNo">260</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.260"></a>
-<span class="sourceLineNo">261</span> PB_HELPER = createPBHelper();<a name="line.261"></a>
-<span class="sourceLineNo">262</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.262"></a>
-<span class="sourceLineNo">263</span> } catch (Exception e) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.264"></a>
-<span class="sourceLineNo">265</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.265"></a>
-<span class="sourceLineNo">266</span> + "HBASE-16110 for more information.";<a name="line.266"></a>
-<span class="sourceLineNo">267</span> LOG.error(msg, e);<a name="line.267"></a>
-<span class="sourceLineNo">268</span> throw new Error(msg, e);<a name="line.268"></a>
-<span class="sourceLineNo">269</span> }<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span> /**<a name="line.272"></a>
-<span class="sourceLineNo">273</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.273"></a>
-<span class="sourceLineNo">274</span> */<a name="line.274"></a>
-<span class="sourceLineNo">275</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span> private final char[] password;<a name="line.277"></a>
-<span class="sourceLineNo">278</span> private final String userName;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span> /**<a name="line.280"></a>
-<span class="sourceLineNo">281</span> * Creates a new SaslClientCallbackHandler.<a name="line.281"></a>
-<span class="sourceLineNo">282</span> * @param userName SASL user name<a name="line.282"></a>
-<span class="sourceLineNo">283</span> * @Param password SASL password<a name="line.283"></a>
-<span class="sourceLineNo">284</span> */<a name="line.284"></a>
-<span class="sourceLineNo">285</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span> this.password = password;<a name="line.286"></a>
-<span class="sourceLineNo">287</span> this.userName = userName;<a name="line.287"></a>
-<span class="sourceLineNo">288</span> }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span> @Override<a name="line.290"></a>
-<span class="sourceLineNo">291</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.291"></a>
-<span class="sourceLineNo">292</span> NameCallback nc = null;<a name="line.292"></a>
-<span class="sourceLineNo">293</span> PasswordCallback pc = null;<a name="line.293"></a>
-<span class="sourceLineNo">294</span> RealmCallback rc = null;<a name="line.294"></a>
-<span class="sourceLineNo">295</span> for (Callback callback : callbacks) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span> if (callback instanceof RealmChoiceCallback) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span> continue;<a name="line.297"></a>
-<span class="sourceLineNo">298</span> } else if (callback instanceof NameCallback) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span> nc = (NameCallback) callback;<a name="line.299"></a>
-<span class="sourceLineNo">300</span> } else if (callback instanceof PasswordCallback) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span> pc = (PasswordCallback) callback;<a name="line.301"></a>
-<span class="sourceLineNo">302</span> } else if (callback instanceof RealmCallback) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span> rc = (RealmCallback) callback;<a name="line.303"></a>
-<span class="sourceLineNo">304</span> } else {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span> }<a name="line.307"></a>
-<span class="sourceLineNo">308</span> if (nc != null) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span> nc.setName(userName);<a name="line.309"></a>
-<span class="sourceLineNo">310</span> }<a name="line.310"></a>
-<span class="sourceLineNo">311</span> if (pc != null) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> pc.setPassword(password);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span> if (rc != null) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span> rc.setText(rc.getDefaultText());<a name="line.315"></a>
-<span class="sourceLineNo">316</span> }<a name="line.316"></a>
-<span class="sourceLineNo">317</span> }<a name="line.317"></a>
-<span class="sourceLineNo">318</span> }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span> private final Configuration conf;<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span> private final Map<String, String> saslProps;<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span> private final SaslClient saslClient;<a name="line.326"></a>
+<span class="sourceLineNo">139</span> private static final PBHelper PB_HELPER;<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span> private interface TransparentCryptoHelper {<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.143"></a>
+<span class="sourceLineNo">144</span> throws IOException;<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span> private static SaslAdaptor createSaslAdaptor()<a name="line.149"></a>
+<span class="sourceLineNo">150</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Field saslPropsResolverField =<a name="line.151"></a>
+<span class="sourceLineNo">152</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.152"></a>
+<span class="sourceLineNo">153</span> saslPropsResolverField.setAccessible(true);<a name="line.153"></a>
+<span class="sourceLineNo">154</span> Field trustedChannelResolverField =<a name="line.154"></a>
+<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.155"></a>
+<span class="sourceLineNo">156</span> trustedChannelResolverField.setAccessible(true);<a name="line.156"></a>
+<span class="sourceLineNo">157</span> Field fallbackToSimpleAuthField =<a name="line.157"></a>
+<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.158"></a>
+<span class="sourceLineNo">159</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.159"></a>
+<span class="sourceLineNo">160</span> return new SaslAdaptor() {<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span> @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span> try {<a name="line.164"></a>
+<span class="sourceLineNo">165</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.165"></a>
+<span class="sourceLineNo">166</span> } catch (IllegalAccessException e) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span> throw new RuntimeException(e);<a name="line.167"></a>
+<span class="sourceLineNo">168</span> }<a name="line.168"></a>
+<span class="sourceLineNo">169</span> }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span> @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span> try {<a name="line.173"></a>
+<span class="sourceLineNo">174</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.174"></a>
+<span class="sourceLineNo">175</span> } catch (IllegalAccessException e) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span> throw new RuntimeException(e);<a name="line.176"></a>
+<span class="sourceLineNo">177</span> }<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span> @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span> try {<a name="line.182"></a>
+<span class="sourceLineNo">183</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.183"></a>
+<span class="sourceLineNo">184</span> } catch (IllegalAccessException e) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span> throw new RuntimeException(e);<a name="line.185"></a>
+<span class="sourceLineNo">186</span> }<a name="line.186"></a>
+<span class="sourceLineNo">187</span> }<a name="line.187"></a>
+<span class="sourceLineNo">188</span> };<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.191"></a>
+<span class="sourceLineNo">192</span> Class<?> helperClass;<a name="line.192"></a>
+<span class="sourceLineNo">193</span> try {<a name="line.193"></a>
+<span class="sourceLineNo">194</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.194"></a>
+<span class="sourceLineNo">195</span> } catch (ClassNotFoundException e) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.197"></a>
+<span class="sourceLineNo">198</span> }<a name="line.198"></a>
+<span class="sourceLineNo">199</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.199"></a>
+<span class="sourceLineNo">200</span> Method convertCipherOptionProtosMethod =<a name="line.200"></a>
+<span class="sourceLineNo">201</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.201"></a>
+<span class="sourceLineNo">202</span> return new PBHelper() {<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span> @SuppressWarnings("unchecked")<a name="line.204"></a>
+<span class="sourceLineNo">205</span> @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> try {<a name="line.207"></a>
+<span class="sourceLineNo">208</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.208"></a>
+<span class="sourceLineNo">209</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span> throw new RuntimeException(e);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> }<a name="line.211"></a>
+<span class="sourceLineNo">212</span> }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span> @SuppressWarnings("unchecked")<a name="line.214"></a>
+<span class="sourceLineNo">215</span> @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> try {<a name="line.217"></a>
+<span class="sourceLineNo">218</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span> throw new RuntimeException(e);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> };<a name="line.223"></a>
+<span class="sourceLineNo">224</span> }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span> private static TransparentCryptoHelper createTransparentCryptoHelper27()<a name="line.226"></a>
+<span class="sourceLineNo">227</span> throws NoSuchMethodException {<a name="line.227"></a>
+<span class="sourceLineNo">228</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.228"></a>
+<span class="sourceLineNo">229</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> return new TransparentCryptoHelper() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.234"></a>
+<span class="sourceLineNo">235</span> DFSClient client) throws IOException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span> try {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> KeyVersion decryptedKey =<a name="line.237"></a>
+<span class="sourceLineNo">238</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.238"></a>
+<span class="sourceLineNo">239</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.239"></a>
+<span class="sourceLineNo">240</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.241"></a>
+<span class="sourceLineNo">242</span> return encryptor;<a name="line.242"></a>
+<span class="sourceLineNo">243</span> } catch (InvocationTargetException e) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.244"></a>
+<span class="sourceLineNo">245</span> throw new RuntimeException(e.getTargetException());<a name="line.245"></a>
+<span class="sourceLineNo">246</span> } catch (GeneralSecurityException e) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> throw new IOException(e);<a name="line.247"></a>
+<span class="sourceLineNo">248</span> } catch (IllegalAccessException e) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span> throw new RuntimeException(e);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span> }<a name="line.251"></a>
+<span class="sourceLineNo">252</span> };<a name="line.252"></a>
+<span class="sourceLineNo">253</span> }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span> private static TransparentCryptoHelper createTransparentCryptoHelper28()<a name="line.255"></a>
+<span class="sourceLineNo">256</span> throws ClassNotFoundException, NoSuchMethodException {<a name="line.256"></a>
+<span class="sourceLineNo">257</span> Class<?> hdfsKMSUtilCls = Class.forName("org.apache.hadoop.hdfs.HdfsKMSUtil");<a name="line.257"></a>
+<span class="sourceLineNo">258</span> Method decryptEncryptedDataEncryptionKeyMethod = hdfsKMSUtilCls.getDeclaredMethod(<a name="line.258"></a>
+<span class="sourceLineNo">259</span> "decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class, KeyProvider.class);<a name="line.259"></a>
+<span class="sourceLineNo">260</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.260"></a>
+<span class="sourceLineNo">261</span> return new TransparentCryptoHelper() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span> @Override<a name="line.263"></a>
+<span class="sourceLineNo">264</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.264"></a>
+<span class="sourceLineNo">265</span> DFSClient client) throws IOException {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> try {<a name="line.266"></a>
+<span class="sourceLineNo">267</span> KeyVersion decryptedKey = (KeyVersion) decryptEncryptedDataEncryptionKeyMethod<a name="line.267"></a>
+<span class="sourceLineNo">268</span> .invoke(null, feInfo, client.getKeyProvider());<a name="line.268"></a>
+<span class="sourceLineNo">269</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.269"></a>
+<span class="sourceLineNo">270</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.270"></a>
+<span class="sourceLineNo">271</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.271"></a>
+<span class="sourceLineNo">272</span> return encryptor;<a name="line.272"></a>
+<span class="sourceLineNo">273</span> } catch (InvocationTargetException e) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.274"></a>
+<span class="sourceLineNo">275</span> throw new RuntimeException(e.getTargetException());<a name="line.275"></a>
+<span class="sourceLineNo">276</span> } catch (GeneralSecurityException e) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> throw new IOException(e);<a name="line.277"></a>
+<span class="sourceLineNo">278</span> } catch (IllegalAccessException e) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> throw new RuntimeException(e);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> }<a name="line.280"></a>
+<span class="sourceLineNo">281</span> }<a name="line.281"></a>
+<span class="sourceLineNo">282</span> };<a name="line.282"></a>
+<span class="sourceLineNo">283</span> }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.285"></a>
+<span class="sourceLineNo">286</span> throws NoSuchMethodException, ClassNotFoundException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> try {<a name="line.287"></a>
+<span class="sourceLineNo">288</span> return createTransparentCryptoHelper27();<a name="line.288"></a>
+<span class="sourceLineNo">289</span> } catch (NoSuchMethodException e) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> LOG.debug("No decryptEncryptedDataEncryptionKey method in DFSClient, should be hadoop 2.8+",<a name="line.290"></a>
+<span class="sourceLineNo">291</span> e);<a name="line.291"></a>
+<span class="sourceLineNo">292</span> }<a name="line.292"></a>
+<span class="sourceLineNo">293</span> return createTransparentCryptoHelper28();<a name="line.293"></a>
+<span class="sourceLineNo">294</span> }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span> static {<a name="line.296"></a>
+<span class="sourceLineNo">297</span> try {<a name="line.297"></a>
+<span class="sourceLineNo">298</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.298"></a>
+<span class="sourceLineNo">299</span> PB_HELPER = createPBHelper();<a name="line.299"></a>
+<span class="sourceLineNo">300</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.300"></a>
+<span class="sourceLineNo">301</span> } catch (Exception e) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.302"></a>
+<span class="sourceLineNo">303</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.303"></a>
+<span class="sourceLineNo">304</span> + "HBASE-16110 for more information.";<a name="line.304"></a>
+<span class="sourceLineNo">305</span> LOG.error(msg, e);<a name="line.305"></a>
+<span class="sourceLineNo">306</span> throw new Error(msg, e);<a name="line.306"></a>
+<span class="sourceLineNo">307</span> }<a name="line.307"></a>
+<span class="sourceLineNo">308</span> }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span> /**<a name="line.310"></a>
+<span class="sourceLineNo">311</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.311"></a>
+<span class="sourceLineNo">312</span> */<a name="line.312"></a>
+<span class="sourceLineNo">313</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span> private final char[] password;<a name="line.315"></a>
+<span class="sourceLineNo">316</span> private final String userName;<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span> /**<a name="line.318"></a>
+<span class="sourceLineNo">319</span> * Creates a new SaslClientCallbackHandler.<a name="line.319"></a>
+<span class="sourceLineNo">320</span> * @param userName SASL user name<a name="line.320"></a>
+<span class="sourceLineNo">321</span> * @Param password SASL password<a name="line.321"></a>
+<span class="sourceLineNo">322</span> */<a name="line.322"></a>
+<span class="sourceLineNo">323</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span> this.password = password;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> this.userName = userName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> }<a name="line.326"></a>
<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span> private final int timeoutMs;<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span> private final Promise<Void> promise;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span> private int step = 0;<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.334"></a>
-<span class="sourceLineNo">335</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.335"></a>
-<span class="sourceLineNo">336</span> this.conf = conf;<a name="line.336"></a>
-<span class="sourceLineNo">337</span> this.saslProps = saslProps;<a name="line.337"></a>
-<span class="sourceLineNo">338</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.338"></a>
-<span class="sourceLineNo">339</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.339"></a>
-<span class="sourceLineNo">340</span> this.timeoutMs = timeoutMs;<a name="line.340"></a>
-<span class="sourceLineNo">341</span> this.promise = promise;<a name="line.341"></a>
-<span class="sourceLineNo">342</span> }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.344"></a>
-<span class="sourceLineNo">345</span> sendSaslMessage(ctx, payload, null);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.349"></a>
-<span class="sourceLineNo">350</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.350"></a>
-<span class="sourceLineNo">351</span> // values for future expansion.<a name="line.351"></a>
-<span class="sourceLineNo">352</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span> return null;<a name="line.354"></a>
-<span class="sourceLineNo">355</span> }<a name="line.355"></a>
-<span class="sourceLineNo">356</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.357"></a>
-<span class="sourceLineNo">358</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.358"></a>
-<span class="sourceLineNo">359</span> }<a name="line.359"></a>
-<span class="sourceLineNo">360</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.360"></a>
-<span class="sourceLineNo">361</span> }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.363"></a>
-<span class="sourceLineNo">364</span> List<CipherOption> options) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.365"></a>
-<span class="sourceLineNo">366</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.366"></a>
-<span class="sourceLineNo">367</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> if (payload != null) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.369"></a>
-<span class="sourceLineNo">370</span> // and we want to keep that out of hbase-server.<a name="line.370"></a>
-<span class="sourceLineNo">371</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.371"></a>
-<span class="sourceLineNo">372</span> }<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (options != null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.376"></a>
-<span class="sourceLineNo">377</span> int size = proto.getSerializedSize();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.378"></a>
-<span class="sourceLineNo">379</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.379"></a>
-<span class="sourceLineNo">380</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> ctx.write(buf);<a name="line.381"></a>
-<span class="sourceLineNo">382</span> }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span> @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.385"></a>
-<span class="sourceLineNo">386</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.386"></a>
-<span class="sourceLineNo">387</span> sendSaslMessage(ctx, new byte[0]);<a name="line.387"></a>
-<span class="sourceLineNo">388</span> ctx.flush();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> step++;<a name="line.389"></a>
-<span class="sourceLineNo">390</span> }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span> @Override<a name="line.392"></a>
-<span class="sourceLineNo">393</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.393"></a>
-<span class="sourceLineNo">394</span> saslClient.dispose();<a name="line.394"></a>
-<span class="sourceLineNo">395</span> }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.399"></a>
-<span class="sourceLineNo">400</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span> throw new IOException(proto.getMessage());<a name="line.401"></a>
-<span class="sourceLineNo">402</span> }<a name="line.402"></a>
-<span class="sourceLineNo">403</span> }<a name="line.403"></a>
-<span class="sourceLineNo">404</span><a name="line.404"></a>
-<span class="sourceLineNo">405</span> private String getNegotiatedQop() {<a name="line.405"></a>
-<span class="sourceLineNo">406</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.406"></a>
-<span class="sourceLineNo">407</span> }<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span> private boolean isNegotiatedQopPrivacy() {<a name="line.409"></a>
-<span class="sourceLineNo">410</span> String qop = getNegotiatedQop();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> return qop != null && "auth-conf".equalsIgnoreCase(qop);<a name="line.411"></a>
-<span class="sourceLineNo">412</span> }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span> private boolean requestedQopContainsPrivacy() {<a name="line.414"></a>
-<span class="sourceLineNo">415</span> Set<String> requestedQop =<a name="line.415"></a>
-<span class="sourceLineNo">416</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.416"></a>
-<span class="sourceLineNo">417</span> return requestedQop.contains("auth-conf");<a name="line.417"></a>
-<span class="sourceLineNo">418</span> }<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span> private void checkSaslComplete() throws IOException {<a name="line.420"></a>
-<span class="sourceLineNo">421</span> if (!saslClient.isComplete()) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> throw new IOException("Failed to complete SASL handshake");<a name="line.422"></a>
-<span class="sourceLineNo">423</span> }<a name="line.423"></a>
-<span class="sourceLineNo">424</span> Set<String> requestedQop =<a name="line.424"></a>
-<span class="sourceLineNo">425</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.425"></a>
-<span class="sourceLineNo">426</span> String negotiatedQop = getNegotiatedQop();<a name="line.426"></a>
-<span class="sourceLineNo">427</span> LOG.debug(<a name="line.427"></a>
-<span class="sourceLineNo">428</span> "Verifying QOP, requested QOP = " + requestedQop + ", negotiated QOP = " + negotiatedQop);<a name="line.428"></a>
-<span class="sourceLineNo">429</span> if (!requestedQop.contains(negotiatedQop)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span> throw new IOException(String.format("SASL handshake completed, but "<a name="line.430"></a>
-<span class="sourceLineNo">431</span> + "channel does not have acceptable quality of protection, "<a name="line.431"></a>
-<span class="sourceLineNo">432</span> + "requested = %s, negotiated = %s",<a name="line.432"></a>
-<span class="sourceLineNo">433</span> requestedQop, negotiatedQop));<a name="line.433"></a>
-<span class="sourceLineNo">434</span> }<a name="line.434"></a>
-<span class="sourceLineNo">435</span> }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span> private boolean useWrap() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> String qop = (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> return qop != null && !"auth".equalsIgnoreCase(qop);<a name="line.439"></a>
-<span class="sourceLineNo">440</span> }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span> private CipherOption unwrap(CipherOption option, SaslClient saslClient) throws IOException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> byte[] inKey = option.getInKey();<a name="line.443"></a>
-<span class="sourceLineNo">444</span> if (inKey != null) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span> inKey = saslClient.unwrap(inKey, 0, inKey.length);<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> byte[] outKey = option.getOutKey();<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (outKey != null) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> outKey = saslClient.unwrap(outKey, 0, outKey.length);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> }<a name="line.450"></a>
-<span class="sourceLineNo">451</span> return new CipherOption(option.getCipherSuite(), inKey, option.getInIv(), outKey,<a name="line.451"></a>
-<span class="sourceLineNo">452</span> option.getOutIv());<a name="line.452"></a>
-<span class="sourceLineNo">453</span> }<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span> private CipherOption getCipherOption(DataTransferEncryptorMessageProto proto,<a name="line.455"></a>
-<span class="sourceLineNo">456</span> boolean isNegotiatedQopPrivacy, SaslClient saslClient) throws IOException {<a name="line.456"></a>
-<span class="sourceLineNo">457</span> List<CipherOption> cipherOptions =<a name="line.457"></a>
-<span class="sourceLineNo">458</span> PB_HELPER.convertCipherOptionProtos(proto.getCipherOptionList());<a name="line.458"></a>
-<span class="sourceLineNo">459</span> if (cipherOptions == null || cipherOptions.isEmpty()) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span> return null;<a name="line.460"></a>
+<span class="sourceLineNo">328</span> @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.329"></a>
+<span class="sourceLineNo">330</span> NameCallback nc = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span> PasswordCallback pc = null;<a name="line.331"></a>
+<span class="sourceLineNo">332</span> RealmCallback rc = null;<a name="line.332"></a>
+<span class="sourceLineNo">333</span> for (Callback callback : callbacks) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span> if (callback instanceof RealmChoiceCallback) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span> continue;<a name="line.335"></a>
+<span class="sourceLineNo">336</span> } else if (callback instanceof NameCallback) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span> nc = (NameCallback) callback;<a name="line.337"></a>
+<span class="sourceLineNo">338</span> } else if (callback instanceof PasswordCallback) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span> pc = (PasswordCallback) callback;<a name="line.339"></a>
+<span class="sourceLineNo">340</span> } else if (callback instanceof RealmCallback) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span> rc = (RealmCallback) callback;<a name="line.341"></a>
+<span class="sourceLineNo">342</span> } else {<a name="line.342"></a>
+<span class="sourceLineNo">343</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.343"></a>
+<span class="sourceLineNo">344</span> }<a name="line.344"></a>
+<span class="sourceLineNo">345</span> }<a name="line.345"></a>
+<span class="sourceLineNo">346</span> if (nc != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> nc.setName(userName);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span> if (pc != null) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span> pc.setPassword(password);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> }<a name="line.351"></a>
+<span class="sourceLineNo">352</span> if (rc != null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span> rc.setText(rc.getDefaultText());<a name="line.353"></a>
+<span class="sourceLineNo">354</span> }<a name="line.354"></a>
+<span class="sourceLineNo">355</span> }<a name="line.355"></a>
+<span class="sourceLineNo">356</span> }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span> private final Configuration conf;<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span> private final Map<String, String> saslProps;<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span> private final SaslClient saslClient;<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span> private final int timeoutMs;<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span> private final Promise<Void> promise;<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span> private int step = 0;<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.372"></a>
+<span class="sourceLineNo">373</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span> this.conf = conf;<a name="line.374"></a>
+<span class="sourceLineNo">375</span> this.saslProps = saslProps;<a name="line.375"></a>
+<span class="sourceLineNo">376</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.376"></a>
+<span class="sourceLineNo">377</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.377"></a>
+<span class="sourceLineNo">378</span> this.timeoutMs = timeoutMs;<a name="line.378"></a>
+<span class="sourceLineNo">379</span> this.promise = promise;<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> sendSaslMessage(ctx, payload, null);<a name="line.383"></a>
+<span class="sourceLineNo">384</span> }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.386"></a>
+<span class="sourceLineNo">387</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.387"></a>
+<span class="sourceLineNo">388</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.388"></a>
+<span class="sourceLineNo">389</span> // values for future expansion.<a name="line.389"></a>
+<span class="sourceLineNo">390</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.390"></a>
+<span class="sourceLineNo">391</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span> return null;<a name="line.392"></a>
+<span class="sourceLineNo">393</span> }<a name="line.393"></a>
+<span class="sourceLineNo">394</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.395"></a>
+<span class="sourceLineNo">396</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.396"></a>
+<span class="sourceLineNo">397</span> }<a name="line.397"></a>
+<span class="sourceLineNo">398</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.398"></a>
+<span class="sourceLineNo">399</span> }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.401"></a>
+<span class="sourceLineNo">402</span> List<CipherOption> options) throws IOException {<a name="line.402"></a>
+<span class="sourceLineNo">403</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.403"></a>
+<span class="sourceLineNo">404</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.404"></a>
+<span class="sourceLineNo">405</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.405"></a>
+<span class="sourceLineNo">406</span> if (payload != null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.407"></a>
+<span class="sourceLineNo">408</span> // and we want to keep that out of hbase-server.<a name="line.408"></a>
+<span class="sourceLineNo">409</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.409"></a>
+<span class="sourceLineNo">410</span> }<a name="line.410"></a>
+<span class="sourceLineNo">411</span> if (options != null) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.412"></a>
+<span class="sourceLineNo">413</span> }<a name="line.413"></a>
+<span class="sourceLineNo">414</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.414"></a>
+<span class="sourceLineNo">415</span> int size = proto.getSerializedSize();<a name="line.415"></a>
+<span class="sourceLineNo">416</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.416"></a>
+<span class="sourceLineNo">417</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.417"></a>
+<span class="sourceLineNo">418</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.418"></a>
+<span class="sourceLineNo">419</span> ctx.write(buf);<a name="line.419"></a>
+<span class="sourceLineNo">420</span> }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span> @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.424"></a>
+<span class="sourceLineNo">425</span> sendSaslMessage(ctx, new byte[0]);<a name="line.425"></a>
+<span class="sourceLineNo">426</span> ctx.flush();<a name="line.426"></a>
+<span class="sourceLineNo">427</span> step++;<a name="line.427"></a>
+<span class="sourceLineNo">428</span> }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span> @Override<a name="line.430"></a>
+<span class="sourceLineNo">431</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.431"></a>
+<span class="sourceLineNo">432</span> saslClient.dispose();<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.435"></a>
+<span class="sourceLineNo">436</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.437"></a>
+<span class="sourceLineNo">438</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span> throw new IOException(proto.getMessage());<a name="line.439"></a>
+<span class="sourceLineNo">440</span> }<a name="line.440"></a>
+<span class="sourceLineNo">441</span> }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span> private String getNegotiatedQop() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span> private bo
<TRUNCATED>
[30/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
index 31c6fd0..7e28d37 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1695">HRegionServer.CompactionChecker</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1697">HRegionServer.CompactionChecker</a>
extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></pre>
</li>
</ul>
@@ -233,7 +233,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
<ul class="blockList">
<li class="blockList">
<h4>instance</h4>
-<pre>private final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1696">instance</a></pre>
+<pre>private final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1698">instance</a></pre>
</li>
</ul>
<a name="majorCompactPriority">
@@ -242,7 +242,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
<ul class="blockList">
<li class="blockList">
<h4>majorCompactPriority</h4>
-<pre>private final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1697">majorCompactPriority</a></pre>
+<pre>private final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1699">majorCompactPriority</a></pre>
</li>
</ul>
<a name="DEFAULT_PRIORITY">
@@ -251,7 +251,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_PRIORITY</h4>
-<pre>private static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1698">DEFAULT_PRIORITY</a></pre>
+<pre>private static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1700">DEFAULT_PRIORITY</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.CompactionChecker.DEFAULT_PRIORITY">Constant Field Values</a></dd>
@@ -264,7 +264,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
<ul class="blockListLast">
<li class="blockList">
<h4>iteration</h4>
-<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1701">iteration</a></pre>
+<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1703">iteration</a></pre>
</li>
</ul>
</li>
@@ -281,7 +281,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
<ul class="blockListLast">
<li class="blockList">
<h4>CompactionChecker</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1703">CompactionChecker</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> h,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1705">CompactionChecker</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> h,
int sleepTime,
<a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a> stopper)</pre>
</li>
@@ -300,7 +300,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
<ul class="blockListLast">
<li class="blockList">
<h4>chore</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1717">chore</a>()</pre>
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1719">chore</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
<div class="block">The task to execute on each scheduled execution of the Chore</div>
<dl>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
index 6eda1d5..cab0193 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3389">HRegionServer.MovedRegionInfo</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3405">HRegionServer.MovedRegionInfo</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
</li>
</ul>
@@ -218,7 +218,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>serverName</h4>
-<pre>private final <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3390">serverName</a></pre>
+<pre>private final <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3406">serverName</a></pre>
</li>
</ul>
<a name="seqNum">
@@ -227,7 +227,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>seqNum</h4>
-<pre>private final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3391">seqNum</a></pre>
+<pre>private final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3407">seqNum</a></pre>
</li>
</ul>
<a name="ts">
@@ -236,7 +236,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>ts</h4>
-<pre>private final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3392">ts</a></pre>
+<pre>private final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3408">ts</a></pre>
</li>
</ul>
</li>
@@ -253,7 +253,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>MovedRegionInfo</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3394">MovedRegionInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3410">MovedRegionInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
long closeSeqNum)</pre>
</li>
</ul>
@@ -271,7 +271,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getServerName</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3400">getServerName</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3416">getServerName</a>()</pre>
</li>
</ul>
<a name="getSeqNum--">
@@ -280,7 +280,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getSeqNum</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3404">getSeqNum</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3420">getSeqNum</a>()</pre>
</li>
</ul>
<a name="getMoveTime--">
@@ -289,7 +289,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>getMoveTime</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3408">getMoveTime</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3424">getMoveTime</a>()</pre>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
index b2b3568..6cf54e0 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>protected static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3476">HRegionServer.MovedRegionsCleaner</a>
+<pre>protected static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3492">HRegionServer.MovedRegionsCleaner</a>
extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>
implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></pre>
<div class="block">Creates a Chore thread to clean the moved region cache.</div>
@@ -242,7 +242,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
<ul class="blockList">
<li class="blockList">
<h4>regionServer</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3477">regionServer</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3493">regionServer</a></pre>
</li>
</ul>
<a name="stoppable">
@@ -251,7 +251,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
<ul class="blockListLast">
<li class="blockList">
<h4>stoppable</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3478">stoppable</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3494">stoppable</a></pre>
</li>
</ul>
</li>
@@ -268,7 +268,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
<ul class="blockListLast">
<li class="blockList">
<h4>MovedRegionsCleaner</h4>
-<pre>private <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3480">MovedRegionsCleaner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer,
+<pre>private <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3496">MovedRegionsCleaner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer,
<a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a> stoppable)</pre>
</li>
</ul>
@@ -286,7 +286,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
<ul class="blockList">
<li class="blockList">
<h4>create</h4>
-<pre>static <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionsCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3488">create</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> rs)</pre>
+<pre>static <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionsCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3504">create</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> rs)</pre>
</li>
</ul>
<a name="chore--">
@@ -295,7 +295,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
<ul class="blockList">
<li class="blockList">
<h4>chore</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3499">chore</a>()</pre>
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3515">chore</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
<div class="block">The task to execute on each scheduled execution of the Chore</div>
<dl>
@@ -310,7 +310,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3504">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> why)</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3520">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> why)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">Stoppable</a></code></span></div>
<div class="block">Stop this service.
Implementers should favor logging errors over throwing RuntimeExceptions.</div>
@@ -328,7 +328,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
<ul class="blockListLast">
<li class="blockList">
<h4>isStopped</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3509">isStopped</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3525">isStopped</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></code></dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
index a9b1c72..92d3dc2 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1757">HRegionServer.PeriodicMemStoreFlusher</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1759">HRegionServer.PeriodicMemStoreFlusher</a>
extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></pre>
</li>
</ul>
@@ -228,7 +228,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
<ul class="blockList">
<li class="blockList">
<h4>server</h4>
-<pre>final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1758">server</a></pre>
+<pre>final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1760">server</a></pre>
</li>
</ul>
<a name="RANGE_OF_DELAY">
@@ -237,7 +237,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
<ul class="blockList">
<li class="blockList">
<h4>RANGE_OF_DELAY</h4>
-<pre>static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1759">RANGE_OF_DELAY</a></pre>
+<pre>static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1761">RANGE_OF_DELAY</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.PeriodicMemStoreFlusher.RANGE_OF_DELAY">Constant Field Values</a></dd>
@@ -250,7 +250,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
<ul class="blockListLast">
<li class="blockList">
<h4>MIN_DELAY_TIME</h4>
-<pre>static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1760">MIN_DELAY_TIME</a></pre>
+<pre>static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1762">MIN_DELAY_TIME</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.PeriodicMemStoreFlusher.MIN_DELAY_TIME">Constant Field Values</a></dd>
@@ -271,7 +271,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
<ul class="blockListLast">
<li class="blockList">
<h4>PeriodicMemStoreFlusher</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1761">PeriodicMemStoreFlusher</a>(int cacheFlushInterval,
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1763">PeriodicMemStoreFlusher</a>(int cacheFlushInterval,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> server)</pre>
</li>
</ul>
@@ -289,7 +289,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
<ul class="blockListLast">
<li class="blockList">
<h4>chore</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1767">chore</a>()</pre>
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1769">chore</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
<div class="block">The task to execute on each scheduled execution of the Chore</div>
<dl>
[16/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html
index 05e032c..40ef9f4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html
@@ -25,767 +25,805 @@
<span class="sourceLineNo">017</span> */<a name="line.17"></a>
<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.io.asyncfs;<a name="line.18"></a>
<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.21"></a>
+<span class="sourceLineNo">020</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.21"></a>
<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import com.google.protobuf.CodedOutputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.io.IOException;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.lang.reflect.Field;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.lang.reflect.InvocationTargetException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.lang.reflect.Method;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.net.InetAddress;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import java.net.InetSocketAddress;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import java.nio.ByteBuffer;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import java.security.GeneralSecurityException;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import java.util.Arrays;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import java.util.Collections;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import java.util.List;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import java.util.Map;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import java.util.Set;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import java.util.concurrent.TimeUnit;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>import javax.security.auth.callback.Callback;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import javax.security.auth.callback.CallbackHandler;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import javax.security.auth.callback.NameCallback;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import javax.security.auth.callback.PasswordCallback;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import javax.security.sasl.RealmCallback;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import javax.security.sasl.Sasl;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import javax.security.sasl.SaslClient;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import javax.security.sasl.SaslException;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.commons.codec.binary.Base64;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.commons.lang3.StringUtils;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.conf.Configuration;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.slf4j.Logger;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.slf4j.LoggerFactory;<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>import com.google.protobuf.ByteString;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.security.token.Token;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>/**<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@InterfaceAudience.Private<a name="line.109"></a>
-<span class="sourceLineNo">110</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.110"></a>
-<span class="sourceLineNo">111</span> private static final Logger LOG =<a name="line.111"></a>
-<span class="sourceLineNo">112</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.112"></a>
+<span class="sourceLineNo">023</span>import com.google.protobuf.ByteString;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import com.google.protobuf.CodedOutputStream;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.lang.reflect.Field;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.lang.reflect.InvocationTargetException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.lang.reflect.Method;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.net.InetAddress;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.net.InetSocketAddress;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.ByteBuffer;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.security.GeneralSecurityException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.Arrays;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.List;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Map;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.Set;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import java.util.concurrent.TimeUnit;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import javax.security.auth.callback.Callback;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import javax.security.auth.callback.CallbackHandler;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import javax.security.auth.callback.NameCallback;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import javax.security.auth.callback.PasswordCallback;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import javax.security.sasl.RealmCallback;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import javax.security.sasl.Sasl;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import javax.security.sasl.SaslClient;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import javax.security.sasl.SaslException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.commons.codec.binary.Base64;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.commons.lang3.StringUtils;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.conf.Configuration;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.crypto.key.KeyProvider;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.security.token.Token;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.slf4j.Logger;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.slf4j.LoggerFactory;<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>/**<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.104"></a>
+<span class="sourceLineNo">105</span> */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>@InterfaceAudience.Private<a name="line.106"></a>
+<span class="sourceLineNo">107</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> private static final Logger LOG =<a name="line.108"></a>
+<span class="sourceLineNo">109</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span> }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span> private static final String SERVER_NAME = "0";<a name="line.117"></a>
-<span class="sourceLineNo">118</span> private static final String PROTOCOL = "hdfs";<a name="line.118"></a>
-<span class="sourceLineNo">119</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.119"></a>
-<span class="sourceLineNo">120</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> private static final String NAME_DELIMITER = " ";<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span> private interface SaslAdaptor {<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.127"></a>
+<span class="sourceLineNo">114</span> private static final String SERVER_NAME = "0";<a name="line.114"></a>
+<span class="sourceLineNo">115</span> private static final String PROTOCOL = "hdfs";<a name="line.115"></a>
+<span class="sourceLineNo">116</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.116"></a>
+<span class="sourceLineNo">117</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> private static final String NAME_DELIMITER = " ";<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span> private interface SaslAdaptor {<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> }<a name="line.127"></a>
<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> }<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.132"></a>
+<span class="sourceLineNo">129</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span> // helper class for convert protos.<a name="line.131"></a>
+<span class="sourceLineNo">132</span> private interface PBHelper {<a name="line.132"></a>
<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span> // helper class for convert protos.<a name="line.134"></a>
-<span class="sourceLineNo">135</span> private interface PBHelper {<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.137"></a>
+<span class="sourceLineNo">134</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.139"></a>
-<span class="sourceLineNo">140</span> }<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span> private static final PBHelper PB_HELPER;<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> private interface TransparentCryptoHelper {<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.146"></a>
-<span class="sourceLineNo">147</span> throws IOException;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span> private static SaslAdaptor createSaslAdaptor()<a name="line.152"></a>
-<span class="sourceLineNo">153</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.153"></a>
-<span class="sourceLineNo">154</span> Field saslPropsResolverField =<a name="line.154"></a>
-<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.155"></a>
-<span class="sourceLineNo">156</span> saslPropsResolverField.setAccessible(true);<a name="line.156"></a>
-<span class="sourceLineNo">157</span> Field trustedChannelResolverField =<a name="line.157"></a>
-<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.158"></a>
-<span class="sourceLineNo">159</span> trustedChannelResolverField.setAccessible(true);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> Field fallbackToSimpleAuthField =<a name="line.160"></a>
-<span class="sourceLineNo">161</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.161"></a>
-<span class="sourceLineNo">162</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.162"></a>
-<span class="sourceLineNo">163</span> return new SaslAdaptor() {<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> @Override<a name="line.165"></a>
-<span class="sourceLineNo">166</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span> try {<a name="line.167"></a>
-<span class="sourceLineNo">168</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.168"></a>
-<span class="sourceLineNo">169</span> } catch (IllegalAccessException e) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> throw new RuntimeException(e);<a name="line.170"></a>
-<span class="sourceLineNo">171</span> }<a name="line.171"></a>
-<span class="sourceLineNo">172</span> }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span> @Override<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> try {<a name="line.176"></a>
-<span class="sourceLineNo">177</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> } catch (IllegalAccessException e) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span> throw new RuntimeException(e);<a name="line.179"></a>
-<span class="sourceLineNo">180</span> }<a name="line.180"></a>
-<span class="sourceLineNo">181</span> }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span> @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span> try {<a name="line.185"></a>
-<span class="sourceLineNo">186</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.186"></a>
-<span class="sourceLineNo">187</span> } catch (IllegalAccessException e) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> throw new RuntimeException(e);<a name="line.188"></a>
-<span class="sourceLineNo">189</span> }<a name="line.189"></a>
-<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span> };<a name="line.191"></a>
-<span class="sourceLineNo">192</span> }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.194"></a>
-<span class="sourceLineNo">195</span> Class<?> helperClass;<a name="line.195"></a>
-<span class="sourceLineNo">196</span> try {<a name="line.196"></a>
-<span class="sourceLineNo">197</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.197"></a>
-<span class="sourceLineNo">198</span> } catch (ClassNotFoundException e) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.199"></a>
-<span class="sourceLineNo">200</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.200"></a>
-<span class="sourceLineNo">201</span> }<a name="line.201"></a>
-<span class="sourceLineNo">202</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> Method convertCipherOptionProtosMethod =<a name="line.203"></a>
-<span class="sourceLineNo">204</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.204"></a>
-<span class="sourceLineNo">205</span> return new PBHelper() {<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span> @SuppressWarnings("unchecked")<a name="line.207"></a>
-<span class="sourceLineNo">208</span> @Override<a name="line.208"></a>
-<span class="sourceLineNo">209</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span> try {<a name="line.210"></a>
-<span class="sourceLineNo">211</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span> throw new RuntimeException(e);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> }<a name="line.214"></a>
-<span class="sourceLineNo">215</span> }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> @SuppressWarnings("unchecked")<a name="line.217"></a>
-<span class="sourceLineNo">218</span> @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span> try {<a name="line.220"></a>
-<span class="sourceLineNo">221</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.221"></a>
-<span class="sourceLineNo">222</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span> throw new RuntimeException(e);<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span> }<a name="line.225"></a>
-<span class="sourceLineNo">226</span> };<a name="line.226"></a>
-<span class="sourceLineNo">227</span> }<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.229"></a>
-<span class="sourceLineNo">230</span> throws NoSuchMethodException {<a name="line.230"></a>
-<span class="sourceLineNo">231</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.231"></a>
-<span class="sourceLineNo">232</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.232"></a>
-<span class="sourceLineNo">233</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span> return new TransparentCryptoHelper() {<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span> @Override<a name="line.236"></a>
-<span class="sourceLineNo">237</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.237"></a>
-<span class="sourceLineNo">238</span> DFSClient client) throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span> try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> KeyVersion decryptedKey =<a name="line.240"></a>
-<span class="sourceLineNo">241</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.241"></a>
-<span class="sourceLineNo">242</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.242"></a>
-<span class="sourceLineNo">243</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.243"></a>
-<span class="sourceLineNo">244</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.244"></a>
-<span class="sourceLineNo">245</span> return encryptor;<a name="line.245"></a>
-<span class="sourceLineNo">246</span> } catch (InvocationTargetException e) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.247"></a>
-<span class="sourceLineNo">248</span> throw new RuntimeException(e.getTargetException());<a name="line.248"></a>
-<span class="sourceLineNo">249</span> } catch (GeneralSecurityException e) {<a name="line.249"></a>
-<span class="sourceLineNo">250</span> throw new IOException(e);<a name="line.250"></a>
-<span class="sourceLineNo">251</span> } catch (IllegalAccessException e) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> throw new RuntimeException(e);<a name="line.252"></a>
-<span class="sourceLineNo">253</span> }<a name="line.253"></a>
-<span class="sourceLineNo">254</span> }<a name="line.254"></a>
-<span class="sourceLineNo">255</span> };<a name="line.255"></a>
-<span class="sourceLineNo">256</span> }<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span> static {<a name="line.258"></a>
-<span class="sourceLineNo">259</span> try {<a name="line.259"></a>
-<span class="sourceLineNo">260</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.260"></a>
-<span class="sourceLineNo">261</span> PB_HELPER = createPBHelper();<a name="line.261"></a>
-<span class="sourceLineNo">262</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.262"></a>
-<span class="sourceLineNo">263</span> } catch (Exception e) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.264"></a>
-<span class="sourceLineNo">265</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.265"></a>
-<span class="sourceLineNo">266</span> + "HBASE-16110 for more information.";<a name="line.266"></a>
-<span class="sourceLineNo">267</span> LOG.error(msg, e);<a name="line.267"></a>
-<span class="sourceLineNo">268</span> throw new Error(msg, e);<a name="line.268"></a>
-<span class="sourceLineNo">269</span> }<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span> /**<a name="line.272"></a>
-<span class="sourceLineNo">273</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.273"></a>
-<span class="sourceLineNo">274</span> */<a name="line.274"></a>
-<span class="sourceLineNo">275</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span> private final char[] password;<a name="line.277"></a>
-<span class="sourceLineNo">278</span> private final String userName;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span> /**<a name="line.280"></a>
-<span class="sourceLineNo">281</span> * Creates a new SaslClientCallbackHandler.<a name="line.281"></a>
-<span class="sourceLineNo">282</span> * @param userName SASL user name<a name="line.282"></a>
-<span class="sourceLineNo">283</span> * @Param password SASL password<a name="line.283"></a>
-<span class="sourceLineNo">284</span> */<a name="line.284"></a>
-<span class="sourceLineNo">285</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span> this.password = password;<a name="line.286"></a>
-<span class="sourceLineNo">287</span> this.userName = userName;<a name="line.287"></a>
-<span class="sourceLineNo">288</span> }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span> @Override<a name="line.290"></a>
-<span class="sourceLineNo">291</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.291"></a>
-<span class="sourceLineNo">292</span> NameCallback nc = null;<a name="line.292"></a>
-<span class="sourceLineNo">293</span> PasswordCallback pc = null;<a name="line.293"></a>
-<span class="sourceLineNo">294</span> RealmCallback rc = null;<a name="line.294"></a>
-<span class="sourceLineNo">295</span> for (Callback callback : callbacks) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span> if (callback instanceof RealmChoiceCallback) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span> continue;<a name="line.297"></a>
-<span class="sourceLineNo">298</span> } else if (callback instanceof NameCallback) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span> nc = (NameCallback) callback;<a name="line.299"></a>
-<span class="sourceLineNo">300</span> } else if (callback instanceof PasswordCallback) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span> pc = (PasswordCallback) callback;<a name="line.301"></a>
-<span class="sourceLineNo">302</span> } else if (callback instanceof RealmCallback) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span> rc = (RealmCallback) callback;<a name="line.303"></a>
-<span class="sourceLineNo">304</span> } else {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span> }<a name="line.307"></a>
-<span class="sourceLineNo">308</span> if (nc != null) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span> nc.setName(userName);<a name="line.309"></a>
-<span class="sourceLineNo">310</span> }<a name="line.310"></a>
-<span class="sourceLineNo">311</span> if (pc != null) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> pc.setPassword(password);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span> if (rc != null) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span> rc.setText(rc.getDefaultText());<a name="line.315"></a>
-<span class="sourceLineNo">316</span> }<a name="line.316"></a>
-<span class="sourceLineNo">317</span> }<a name="line.317"></a>
-<span class="sourceLineNo">318</span> }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span> private final Configuration conf;<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span> private final Map<String, String> saslProps;<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span> private final SaslClient saslClient;<a name="line.326"></a>
+<span class="sourceLineNo">139</span> private static final PBHelper PB_HELPER;<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span> private interface TransparentCryptoHelper {<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.143"></a>
+<span class="sourceLineNo">144</span> throws IOException;<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span> private static SaslAdaptor createSaslAdaptor()<a name="line.149"></a>
+<span class="sourceLineNo">150</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Field saslPropsResolverField =<a name="line.151"></a>
+<span class="sourceLineNo">152</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.152"></a>
+<span class="sourceLineNo">153</span> saslPropsResolverField.setAccessible(true);<a name="line.153"></a>
+<span class="sourceLineNo">154</span> Field trustedChannelResolverField =<a name="line.154"></a>
+<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.155"></a>
+<span class="sourceLineNo">156</span> trustedChannelResolverField.setAccessible(true);<a name="line.156"></a>
+<span class="sourceLineNo">157</span> Field fallbackToSimpleAuthField =<a name="line.157"></a>
+<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.158"></a>
+<span class="sourceLineNo">159</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.159"></a>
+<span class="sourceLineNo">160</span> return new SaslAdaptor() {<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span> @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span> try {<a name="line.164"></a>
+<span class="sourceLineNo">165</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.165"></a>
+<span class="sourceLineNo">166</span> } catch (IllegalAccessException e) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span> throw new RuntimeException(e);<a name="line.167"></a>
+<span class="sourceLineNo">168</span> }<a name="line.168"></a>
+<span class="sourceLineNo">169</span> }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span> @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span> try {<a name="line.173"></a>
+<span class="sourceLineNo">174</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.174"></a>
+<span class="sourceLineNo">175</span> } catch (IllegalAccessException e) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span> throw new RuntimeException(e);<a name="line.176"></a>
+<span class="sourceLineNo">177</span> }<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span> @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span> try {<a name="line.182"></a>
+<span class="sourceLineNo">183</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.183"></a>
+<span class="sourceLineNo">184</span> } catch (IllegalAccessException e) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span> throw new RuntimeException(e);<a name="line.185"></a>
+<span class="sourceLineNo">186</span> }<a name="line.186"></a>
+<span class="sourceLineNo">187</span> }<a name="line.187"></a>
+<span class="sourceLineNo">188</span> };<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.191"></a>
+<span class="sourceLineNo">192</span> Class<?> helperClass;<a name="line.192"></a>
+<span class="sourceLineNo">193</span> try {<a name="line.193"></a>
+<span class="sourceLineNo">194</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.194"></a>
+<span class="sourceLineNo">195</span> } catch (ClassNotFoundException e) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.197"></a>
+<span class="sourceLineNo">198</span> }<a name="line.198"></a>
+<span class="sourceLineNo">199</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.199"></a>
+<span class="sourceLineNo">200</span> Method convertCipherOptionProtosMethod =<a name="line.200"></a>
+<span class="sourceLineNo">201</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.201"></a>
+<span class="sourceLineNo">202</span> return new PBHelper() {<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span> @SuppressWarnings("unchecked")<a name="line.204"></a>
+<span class="sourceLineNo">205</span> @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> try {<a name="line.207"></a>
+<span class="sourceLineNo">208</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.208"></a>
+<span class="sourceLineNo">209</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span> throw new RuntimeException(e);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> }<a name="line.211"></a>
+<span class="sourceLineNo">212</span> }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span> @SuppressWarnings("unchecked")<a name="line.214"></a>
+<span class="sourceLineNo">215</span> @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> try {<a name="line.217"></a>
+<span class="sourceLineNo">218</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span> throw new RuntimeException(e);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> };<a name="line.223"></a>
+<span class="sourceLineNo">224</span> }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span> private static TransparentCryptoHelper createTransparentCryptoHelper27()<a name="line.226"></a>
+<span class="sourceLineNo">227</span> throws NoSuchMethodException {<a name="line.227"></a>
+<span class="sourceLineNo">228</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.228"></a>
+<span class="sourceLineNo">229</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> return new TransparentCryptoHelper() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.234"></a>
+<span class="sourceLineNo">235</span> DFSClient client) throws IOException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span> try {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> KeyVersion decryptedKey =<a name="line.237"></a>
+<span class="sourceLineNo">238</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.238"></a>
+<span class="sourceLineNo">239</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.239"></a>
+<span class="sourceLineNo">240</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.241"></a>
+<span class="sourceLineNo">242</span> return encryptor;<a name="line.242"></a>
+<span class="sourceLineNo">243</span> } catch (InvocationTargetException e) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.244"></a>
+<span class="sourceLineNo">245</span> throw new RuntimeException(e.getTargetException());<a name="line.245"></a>
+<span class="sourceLineNo">246</span> } catch (GeneralSecurityException e) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> throw new IOException(e);<a name="line.247"></a>
+<span class="sourceLineNo">248</span> } catch (IllegalAccessException e) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span> throw new RuntimeException(e);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span> }<a name="line.251"></a>
+<span class="sourceLineNo">252</span> };<a name="line.252"></a>
+<span class="sourceLineNo">253</span> }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span> private static TransparentCryptoHelper createTransparentCryptoHelper28()<a name="line.255"></a>
+<span class="sourceLineNo">256</span> throws ClassNotFoundException, NoSuchMethodException {<a name="line.256"></a>
+<span class="sourceLineNo">257</span> Class<?> hdfsKMSUtilCls = Class.forName("org.apache.hadoop.hdfs.HdfsKMSUtil");<a name="line.257"></a>
+<span class="sourceLineNo">258</span> Method decryptEncryptedDataEncryptionKeyMethod = hdfsKMSUtilCls.getDeclaredMethod(<a name="line.258"></a>
+<span class="sourceLineNo">259</span> "decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class, KeyProvider.class);<a name="line.259"></a>
+<span class="sourceLineNo">260</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.260"></a>
+<span class="sourceLineNo">261</span> return new TransparentCryptoHelper() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span> @Override<a name="line.263"></a>
+<span class="sourceLineNo">264</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.264"></a>
+<span class="sourceLineNo">265</span> DFSClient client) throws IOException {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> try {<a name="line.266"></a>
+<span class="sourceLineNo">267</span> KeyVersion decryptedKey = (KeyVersion) decryptEncryptedDataEncryptionKeyMethod<a name="line.267"></a>
+<span class="sourceLineNo">268</span> .invoke(null, feInfo, client.getKeyProvider());<a name="line.268"></a>
+<span class="sourceLineNo">269</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.269"></a>
+<span class="sourceLineNo">270</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.270"></a>
+<span class="sourceLineNo">271</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.271"></a>
+<span class="sourceLineNo">272</span> return encryptor;<a name="line.272"></a>
+<span class="sourceLineNo">273</span> } catch (InvocationTargetException e) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.274"></a>
+<span class="sourceLineNo">275</span> throw new RuntimeException(e.getTargetException());<a name="line.275"></a>
+<span class="sourceLineNo">276</span> } catch (GeneralSecurityException e) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> throw new IOException(e);<a name="line.277"></a>
+<span class="sourceLineNo">278</span> } catch (IllegalAccessException e) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> throw new RuntimeException(e);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> }<a name="line.280"></a>
+<span class="sourceLineNo">281</span> }<a name="line.281"></a>
+<span class="sourceLineNo">282</span> };<a name="line.282"></a>
+<span class="sourceLineNo">283</span> }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.285"></a>
+<span class="sourceLineNo">286</span> throws NoSuchMethodException, ClassNotFoundException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> try {<a name="line.287"></a>
+<span class="sourceLineNo">288</span> return createTransparentCryptoHelper27();<a name="line.288"></a>
+<span class="sourceLineNo">289</span> } catch (NoSuchMethodException e) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> LOG.debug("No decryptEncryptedDataEncryptionKey method in DFSClient, should be hadoop 2.8+",<a name="line.290"></a>
+<span class="sourceLineNo">291</span> e);<a name="line.291"></a>
+<span class="sourceLineNo">292</span> }<a name="line.292"></a>
+<span class="sourceLineNo">293</span> return createTransparentCryptoHelper28();<a name="line.293"></a>
+<span class="sourceLineNo">294</span> }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span> static {<a name="line.296"></a>
+<span class="sourceLineNo">297</span> try {<a name="line.297"></a>
+<span class="sourceLineNo">298</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.298"></a>
+<span class="sourceLineNo">299</span> PB_HELPER = createPBHelper();<a name="line.299"></a>
+<span class="sourceLineNo">300</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.300"></a>
+<span class="sourceLineNo">301</span> } catch (Exception e) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.302"></a>
+<span class="sourceLineNo">303</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.303"></a>
+<span class="sourceLineNo">304</span> + "HBASE-16110 for more information.";<a name="line.304"></a>
+<span class="sourceLineNo">305</span> LOG.error(msg, e);<a name="line.305"></a>
+<span class="sourceLineNo">306</span> throw new Error(msg, e);<a name="line.306"></a>
+<span class="sourceLineNo">307</span> }<a name="line.307"></a>
+<span class="sourceLineNo">308</span> }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span> /**<a name="line.310"></a>
+<span class="sourceLineNo">311</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.311"></a>
+<span class="sourceLineNo">312</span> */<a name="line.312"></a>
+<span class="sourceLineNo">313</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span> private final char[] password;<a name="line.315"></a>
+<span class="sourceLineNo">316</span> private final String userName;<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span> /**<a name="line.318"></a>
+<span class="sourceLineNo">319</span> * Creates a new SaslClientCallbackHandler.<a name="line.319"></a>
+<span class="sourceLineNo">320</span> * @param userName SASL user name<a name="line.320"></a>
+<span class="sourceLineNo">321</span> * @Param password SASL password<a name="line.321"></a>
+<span class="sourceLineNo">322</span> */<a name="line.322"></a>
+<span class="sourceLineNo">323</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span> this.password = password;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> this.userName = userName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> }<a name="line.326"></a>
<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span> private final int timeoutMs;<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span> private final Promise<Void> promise;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span> private int step = 0;<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.334"></a>
-<span class="sourceLineNo">335</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.335"></a>
-<span class="sourceLineNo">336</span> this.conf = conf;<a name="line.336"></a>
-<span class="sourceLineNo">337</span> this.saslProps = saslProps;<a name="line.337"></a>
-<span class="sourceLineNo">338</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.338"></a>
-<span class="sourceLineNo">339</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.339"></a>
-<span class="sourceLineNo">340</span> this.timeoutMs = timeoutMs;<a name="line.340"></a>
-<span class="sourceLineNo">341</span> this.promise = promise;<a name="line.341"></a>
-<span class="sourceLineNo">342</span> }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.344"></a>
-<span class="sourceLineNo">345</span> sendSaslMessage(ctx, payload, null);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.349"></a>
-<span class="sourceLineNo">350</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.350"></a>
-<span class="sourceLineNo">351</span> // values for future expansion.<a name="line.351"></a>
-<span class="sourceLineNo">352</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span> return null;<a name="line.354"></a>
-<span class="sourceLineNo">355</span> }<a name="line.355"></a>
-<span class="sourceLineNo">356</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.357"></a>
-<span class="sourceLineNo">358</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.358"></a>
-<span class="sourceLineNo">359</span> }<a name="line.359"></a>
-<span class="sourceLineNo">360</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.360"></a>
-<span class="sourceLineNo">361</span> }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.363"></a>
-<span class="sourceLineNo">364</span> List<CipherOption> options) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.365"></a>
-<span class="sourceLineNo">366</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.366"></a>
-<span class="sourceLineNo">367</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> if (payload != null) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.369"></a>
-<span class="sourceLineNo">370</span> // and we want to keep that out of hbase-server.<a name="line.370"></a>
-<span class="sourceLineNo">371</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.371"></a>
-<span class="sourceLineNo">372</span> }<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (options != null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.376"></a>
-<span class="sourceLineNo">377</span> int size = proto.getSerializedSize();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.378"></a>
-<span class="sourceLineNo">379</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.379"></a>
-<span class="sourceLineNo">380</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> ctx.write(buf);<a name="line.381"></a>
-<span class="sourceLineNo">382</span> }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span> @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.385"></a>
-<span class="sourceLineNo">386</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.386"></a>
-<span class="sourceLineNo">387</span> sendSaslMessage(ctx, new byte[0]);<a name="line.387"></a>
-<span class="sourceLineNo">388</span> ctx.flush();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> step++;<a name="line.389"></a>
-<span class="sourceLineNo">390</span> }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span> @Override<a name="line.392"></a>
-<span class="sourceLineNo">393</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.393"></a>
-<span class="sourceLineNo">394</span> saslClient.dispose();<a name="line.394"></a>
-<span class="sourceLineNo">395</span> }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.399"></a>
-<span class="sourceLineNo">400</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span> throw new IOException(proto.getMessage());<a name="line.401"></a>
-<span class="sourceLineNo">402</span> }<a name="line.402"></a>
-<span class="sourceLineNo">403</span> }<a name="line.403"></a>
-<span class="sourceLineNo">404</span><a name="line.404"></a>
-<span class="sourceLineNo">405</span> private String getNegotiatedQop() {<a name="line.405"></a>
-<span class="sourceLineNo">406</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.406"></a>
-<span class="sourceLineNo">407</span> }<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span> private boolean isNegotiatedQopPrivacy() {<a name="line.409"></a>
-<span class="sourceLineNo">410</span> String qop = getNegotiatedQop();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> return qop != null && "auth-conf".equalsIgnoreCase(qop);<a name="line.411"></a>
-<span class="sourceLineNo">412</span> }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span> private boolean requestedQopContainsPrivacy() {<a name="line.414"></a>
-<span class="sourceLineNo">415</span> Set<String> requestedQop =<a name="line.415"></a>
-<span class="sourceLineNo">416</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.416"></a>
-<span class="sourceLineNo">417</span> return requestedQop.contains("auth-conf");<a name="line.417"></a>
-<span class="sourceLineNo">418</span> }<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span> private void checkSaslComplete() throws IOException {<a name="line.420"></a>
-<span class="sourceLineNo">421</span> if (!saslClient.isComplete()) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> throw new IOException("Failed to complete SASL handshake");<a name="line.422"></a>
-<span class="sourceLineNo">423</span> }<a name="line.423"></a>
-<span class="sourceLineNo">424</span> Set<String> requestedQop =<a name="line.424"></a>
-<span class="sourceLineNo">425</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.425"></a>
-<span class="sourceLineNo">426</span> String negotiatedQop = getNegotiatedQop();<a name="line.426"></a>
-<span class="sourceLineNo">427</span> LOG.debug(<a name="line.427"></a>
-<span class="sourceLineNo">428</span> "Verifying QOP, requested QOP = " + requestedQop + ", negotiated QOP = " + negotiatedQop);<a name="line.428"></a>
-<span class="sourceLineNo">429</span> if (!requestedQop.contains(negotiatedQop)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span> throw new IOException(String.format("SASL handshake completed, but "<a name="line.430"></a>
-<span class="sourceLineNo">431</span> + "channel does not have acceptable quality of protection, "<a name="line.431"></a>
-<span class="sourceLineNo">432</span> + "requested = %s, negotiated = %s",<a name="line.432"></a>
-<span class="sourceLineNo">433</span> requestedQop, negotiatedQop));<a name="line.433"></a>
-<span class="sourceLineNo">434</span> }<a name="line.434"></a>
-<span class="sourceLineNo">435</span> }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span> private boolean useWrap() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> String qop = (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> return qop != null && !"auth".equalsIgnoreCase(qop);<a name="line.439"></a>
-<span class="sourceLineNo">440</span> }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span> private CipherOption unwrap(CipherOption option, SaslClient saslClient) throws IOException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> byte[] inKey = option.getInKey();<a name="line.443"></a>
-<span class="sourceLineNo">444</span> if (inKey != null) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span> inKey = saslClient.unwrap(inKey, 0, inKey.length);<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> byte[] outKey = option.getOutKey();<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (outKey != null) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> outKey = saslClient.unwrap(outKey, 0, outKey.length);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> }<a name="line.450"></a>
-<span class="sourceLineNo">451</span> return new CipherOption(option.getCipherSuite(), inKey, option.getInIv(), outKey,<a name="line.451"></a>
-<span class="sourceLineNo">452</span> option.getOutIv());<a name="line.452"></a>
-<span class="sourceLineNo">453</span> }<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span> private CipherOption getCipherOption(DataTransferEncryptorMessageProto proto,<a name="line.455"></a>
-<span class="sourceLineNo">456</span> boolean isNegotiatedQopPrivacy, SaslClient saslClient) throws IOException {<a name="line.456"></a>
-<span class="sourceLineNo">457</span> List<CipherOption> cipherOptions =<a name="line.457"></a>
-<span class="sourceLineNo">458</span> PB_HELPER.convertCipherOptionProtos(proto.getCipherOptionList());<a name="line.458"></a>
-<span class="sourceLineNo">459</span> if (cipherOptions == null || cipherOptions.isEmpty()) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span> return null;<a name="line.460"></a>
+<span class="sourceLineNo">328</span> @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.329"></a>
+<span class="sourceLineNo">330</span> NameCallback nc = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span> PasswordCallback pc = null;<a name="line.331"></a>
+<span class="sourceLineNo">332</span> RealmCallback rc = null;<a name="line.332"></a>
+<span class="sourceLineNo">333</span> for (Callback callback : callbacks) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span> if (callback instanceof RealmChoiceCallback) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span> continue;<a name="line.335"></a>
+<span class="sourceLineNo">336</span> } else if (callback instanceof NameCallback) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span> nc = (NameCallback) callback;<a name="line.337"></a>
+<span class="sourceLineNo">338</span> } else if (callback instanceof PasswordCallback) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span> pc = (PasswordCallback) callback;<a name="line.339"></a>
+<span class="sourceLineNo">340</span> } else if (callback instanceof RealmCallback) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span> rc = (RealmCallback) callback;<a name="line.341"></a>
+<span class="sourceLineNo">342</span> } else {<a name="line.342"></a>
+<span class="sourceLineNo">343</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.343"></a>
+<span class="sourceLineNo">344</span> }<a name="line.344"></a>
+<span class="sourceLineNo">345</span> }<a name="line.345"></a>
+<span class="sourceLineNo">346</span> if (nc != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> nc.setName(userName);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span> if (pc != null) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span> pc.setPassword(password);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> }<a name="line.351"></a>
+<span class="sourceLineNo">352</span> if (rc != null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span> rc.setText(rc.getDefaultText());<a name="line.353"></a>
+<span class="sourceLineNo">354</span> }<a name="line.354"></a>
+<span class="sourceLineNo">355</span> }<a name="line.355"></a>
+<span class="sourceLineNo">356</span> }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span> private final Configuration conf;<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span> private final Map<String, String> saslProps;<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span> private final SaslClient saslClient;<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span> private final int timeoutMs;<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span> private final Promise<Void> promise;<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span> private int step = 0;<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.372"></a>
+<span class="sourceLineNo">373</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span> this.conf = conf;<a name="line.374"></a>
+<span class="sourceLineNo">375</span> this.saslProps = saslProps;<a name="line.375"></a>
+<span class="sourceLineNo">376</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.376"></a>
+<span class="sourceLineNo">377</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.377"></a>
+<span class="sourceLineNo">378</span> this.timeoutMs = timeoutMs;<a name="line.378"></a>
+<span class="sourceLineNo">379</span> this.promise = promise;<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> sendSaslMessage(ctx, payload, null);<a name="line.383"></a>
+<span class="sourceLineNo">384</span> }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.386"></a>
+<span class="sourceLineNo">387</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.387"></a>
+<span class="sourceLineNo">388</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.388"></a>
+<span class="sourceLineNo">389</span> // values for future expansion.<a name="line.389"></a>
+<span class="sourceLineNo">390</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.390"></a>
+<span class="sourceLineNo">391</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span> return null;<a name="line.392"></a>
+<span class="sourceLineNo">393</span> }<a name="line.393"></a>
+<span class="sourceLineNo">394</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.395"></a>
+<span class="sourceLineNo">396</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.396"></a>
+<span class="sourceLineNo">397</span> }<a name="line.397"></a>
+<span class="sourceLineNo">398</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.398"></a>
+<span class="sourceLineNo">399</span> }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.401"></a>
+<span class="sourceLineNo">402</span> List<CipherOption> options) throws IOException {<a name="line.402"></a>
+<span class="sourceLineNo">403</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.403"></a>
+<span class="sourceLineNo">404</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.404"></a>
+<span class="sourceLineNo">405</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.405"></a>
+<span class="sourceLineNo">406</span> if (payload != null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.407"></a>
+<span class="sourceLineNo">408</span> // and we want to keep that out of hbase-server.<a name="line.408"></a>
+<span class="sourceLineNo">409</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.409"></a>
+<span class="sourceLineNo">410</span> }<a name="line.410"></a>
+<span class="sourceLineNo">411</span> if (options != null) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.412"></a>
+<span class="sourceLineNo">413</span> }<a name="line.413"></a>
+<span class="sourceLineNo">414</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.414"></a>
+<span class="sourceLineNo">415</span> int size = proto.getSerializedSize();<a name="line.415"></a>
+<span class="sourceLineNo">416</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.416"></a>
+<span class="sourceLineNo">417</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.417"></a>
+<span class="sourceLineNo">418</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.418"></a>
+<span class="sourceLineNo">419</span> ctx.write(buf);<a name="line.419"></a>
+<span class="sourceLineNo">420</span> }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span> @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.424"></a>
+<span class="sourceLineNo">425</span> sendSaslMessage(ctx, new byte[0]);<a name="line.425"></a>
+<span class="sourceLineNo">426</span> ctx.flush();<a name="line.426"></a>
+<span class="sourceLineNo">427</span> step++;<a name="line.427"></a>
+<span class="sourceLineNo">428</span> }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span> @Override<a name="line.430"></a>
+<span class="sourceLineNo">431</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.431"></a>
+<span class="sourceLineNo">432</span> saslClient.dispose();<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.435"></a>
+<span class="sourceLineNo">436</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.437"></a>
+<span class="sourceLineNo">438</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span> throw new IOException(proto.getMessage());<a name="line.439"></a>
+<span class="sourceLineNo">440</span> }<a name="line.440"></a>
+<span class="sourceLineNo">441</span> }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span> private String getNegotiatedQop() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span> private boolean isNegotiatedQopPrivacy() {<a name="line
<TRUNCATED>
[48/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index e7daee6..0134517 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -7,7 +7,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta name="Date-Revision-yyyymmdd" content="20180630" />
+ <meta name="Date-Revision-yyyymmdd" content="20180703" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Checkstyle Results</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -281,10 +281,10 @@
<th><img src="images/icon_warning_sml.gif" alt="" /> Warnings</th>
<th><img src="images/icon_error_sml.gif" alt="" /> Errors</th></tr>
<tr class="b">
-<td>3688</td>
+<td>3690</td>
<td>0</td>
<td>0</td>
-<td>15817</td></tr></table></div>
+<td>15801</td></tr></table></div>
<div class="section">
<h2><a name="Files"></a>Files</h2>
<table border="0" class="table table-striped">
@@ -1677,7 +1677,7 @@
<td><a href="#org.apache.hadoop.hbase.client.TestAdmin1.java">org/apache/hadoop/hbase/client/TestAdmin1.java</a></td>
<td>0</td>
<td>0</td>
-<td>38</td></tr>
+<td>36</td></tr>
<tr class="a">
<td><a href="#org.apache.hadoop.hbase.client.TestAdmin2.java">org/apache/hadoop/hbase/client/TestAdmin2.java</a></td>
<td>0</td>
@@ -3174,6666 +3174,6661 @@
<td>0</td>
<td>1</td></tr>
<tr class="b">
-<td><a href="#org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputSaslHelper.java">org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.java</a></td>
-<td>0</td>
-<td>0</td>
-<td>4</td></tr>
-<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.asyncfs.TestSaslFanOutOneBlockAsyncDFSOutput.java">org/apache/hadoop/hbase/io/asyncfs/TestSaslFanOutOneBlockAsyncDFSOutput.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.compress.Compression.java">org/apache/hadoop/hbase/io/compress/Compression.java</a></td>
<td>0</td>
<td>0</td>
<td>9</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.crypto.Cipher.java">org/apache/hadoop/hbase/io/crypto/Cipher.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.crypto.Decryptor.java">org/apache/hadoop/hbase/io/crypto/Decryptor.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.crypto.Encryption.java">org/apache/hadoop/hbase/io/crypto/Encryption.java</a></td>
<td>0</td>
<td>0</td>
<td>53</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.crypto.Encryptor.java">org/apache/hadoop/hbase/io/crypto/Encryptor.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.crypto.KeyProvider.java">org/apache/hadoop/hbase/io/crypto/KeyProvider.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.crypto.TestEncryption.java">org/apache/hadoop/hbase/io/crypto/TestEncryption.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.crypto.aes.CryptoAES.java">org/apache/hadoop/hbase/io/crypto/aes/CryptoAES.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.encoding.BufferedDataBlockEncoder.java">org/apache/hadoop/hbase/io/encoding/BufferedDataBlockEncoder.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.encoding.CopyKeyDataBlockEncoder.java">org/apache/hadoop/hbase/io/encoding/CopyKeyDataBlockEncoder.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.encoding.DataBlockEncoder.java">org/apache/hadoop/hbase/io/encoding/DataBlockEncoder.java</a></td>
<td>0</td>
<td>0</td>
<td>15</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.encoding.DataBlockEncoding.java">org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.encoding.EncodedDataBlock.java">org/apache/hadoop/hbase/io/encoding/EncodedDataBlock.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.encoding.HFileBlockDecodingContext.java">org/apache/hadoop/hbase/io/encoding/HFileBlockDecodingContext.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.encoding.HFileBlockDefaultEncodingContext.java">org/apache/hadoop/hbase/io/encoding/HFileBlockDefaultEncodingContext.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.encoding.HFileBlockEncodingContext.java">org/apache/hadoop/hbase/io/encoding/HFileBlockEncodingContext.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.encoding.RowIndexCodecV1.java">org/apache/hadoop/hbase/io/encoding/RowIndexCodecV1.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.encoding.TestDataBlockEncoders.java">org/apache/hadoop/hbase/io/encoding/TestDataBlockEncoders.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.encoding.TestEncodedSeekers.java">org/apache/hadoop/hbase/io/encoding/TestEncodedSeekers.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hadoopbackport.ThrottledInputStream.java">org/apache/hadoop/hbase/io/hadoopbackport/ThrottledInputStream.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.BlockCache.java">org/apache/hadoop/hbase/io/hfile/BlockCache.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.BlockCacheKey.java">org/apache/hadoop/hbase/io/hfile/BlockCacheKey.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.BlockCacheUtil.java">org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.java</a></td>
<td>0</td>
<td>0</td>
<td>28</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.BlockCachesIterator.java">org/apache/hadoop/hbase/io/hfile/BlockCachesIterator.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.BlockType.java">org/apache/hadoop/hbase/io/hfile/BlockType.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.CacheConfig.java">org/apache/hadoop/hbase/io/hfile/CacheConfig.java</a></td>
<td>0</td>
<td>0</td>
<td>8</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.CacheStats.java">org/apache/hadoop/hbase/io/hfile/CacheStats.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.CacheTestUtils.java">org/apache/hadoop/hbase/io/hfile/CacheTestUtils.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.Cacheable.java">org/apache/hadoop/hbase/io/hfile/Cacheable.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.CacheableDeserializer.java">org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.CacheableDeserializerIdManager.java">org/apache/hadoop/hbase/io/hfile/CacheableDeserializerIdManager.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.ChecksumUtil.java">org/apache/hadoop/hbase/io/hfile/ChecksumUtil.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.CombinedBlockCache.java">org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.CompoundBloomFilter.java">org/apache/hadoop/hbase/io/hfile/CompoundBloomFilter.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.CompoundBloomFilterBase.java">org/apache/hadoop/hbase/io/hfile/CompoundBloomFilterBase.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.CompoundBloomFilterWriter.java">org/apache/hadoop/hbase/io/hfile/CompoundBloomFilterWriter.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.CorruptHFileException.java">org/apache/hadoop/hbase/io/hfile/CorruptHFileException.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.FixedFileTrailer.java">org/apache/hadoop/hbase/io/hfile/FixedFileTrailer.java</a></td>
<td>0</td>
<td>0</td>
<td>14</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.HFile.java">org/apache/hadoop/hbase/io/hfile/HFile.java</a></td>
<td>0</td>
<td>0</td>
<td>36</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.HFileBlock.java">org/apache/hadoop/hbase/io/hfile/HFileBlock.java</a></td>
<td>0</td>
<td>0</td>
<td>25</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.HFileBlockIndex.java">org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.java</a></td>
<td>0</td>
<td>0</td>
<td>39</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.HFileContext.java">org/apache/hadoop/hbase/io/hfile/HFileContext.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.HFileDataBlockEncoder.java">org/apache/hadoop/hbase/io/hfile/HFileDataBlockEncoder.java</a></td>
<td>0</td>
<td>0</td>
<td>13</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.HFileDataBlockEncoderImpl.java">org/apache/hadoop/hbase/io/hfile/HFileDataBlockEncoderImpl.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.HFilePrettyPrinter.java">org/apache/hadoop/hbase/io/hfile/HFilePrettyPrinter.java</a></td>
<td>0</td>
<td>0</td>
<td>14</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.java">org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.java</a></td>
<td>0</td>
<td>0</td>
<td>52</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.HFileScanner.java">org/apache/hadoop/hbase/io/hfile/HFileScanner.java</a></td>
<td>0</td>
<td>0</td>
<td>23</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.HFileUtil.java">org/apache/hadoop/hbase/io/hfile/HFileUtil.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.HFileWriterImpl.java">org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.java</a></td>
<td>0</td>
<td>0</td>
<td>26</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.KVGenerator.java">org/apache/hadoop/hbase/io/hfile/KVGenerator.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.LruBlockCache.java">org/apache/hadoop/hbase/io/hfile/LruBlockCache.java</a></td>
<td>0</td>
<td>0</td>
<td>13</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.LruCachedBlock.java">org/apache/hadoop/hbase/io/hfile/LruCachedBlock.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.LruCachedBlockQueue.java">org/apache/hadoop/hbase/io/hfile/LruCachedBlockQueue.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.NanoTimer.java">org/apache/hadoop/hbase/io/hfile/NanoTimer.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.NoOpDataBlockEncoder.java">org/apache/hadoop/hbase/io/hfile/NoOpDataBlockEncoder.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.PrefetchExecutor.java">org/apache/hadoop/hbase/io/hfile/PrefetchExecutor.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.RandomKeyValueUtil.java">org/apache/hadoop/hbase/io/hfile/RandomKeyValueUtil.java</a></td>
<td>0</td>
<td>0</td>
<td>14</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestBlockCacheReporting.java">org/apache/hadoop/hbase/io/hfile/TestBlockCacheReporting.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestCacheConfig.java">org/apache/hadoop/hbase/io/hfile/TestCacheConfig.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestCacheOnWrite.java">org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestCachedBlockQueue.java">org/apache/hadoop/hbase/io/hfile/TestCachedBlockQueue.java</a></td>
<td>0</td>
<td>0</td>
<td>19</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestChecksum.java">org/apache/hadoop/hbase/io/hfile/TestChecksum.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestFixedFileTrailer.java">org/apache/hadoop/hbase/io/hfile/TestFixedFileTrailer.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestForceCacheImportantBlocks.java">org/apache/hadoop/hbase/io/hfile/TestForceCacheImportantBlocks.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestHFile.java">org/apache/hadoop/hbase/io/hfile/TestHFile.java</a></td>
<td>0</td>
<td>0</td>
<td>27</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestHFileBlock.java">org/apache/hadoop/hbase/io/hfile/TestHFileBlock.java</a></td>
<td>0</td>
<td>0</td>
<td>8</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestHFileBlockIndex.java">org/apache/hadoop/hbase/io/hfile/TestHFileBlockIndex.java</a></td>
<td>0</td>
<td>0</td>
<td>41</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestHFileBlockPositionalRead.java">org/apache/hadoop/hbase/io/hfile/TestHFileBlockPositionalRead.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestHFileDataBlockEncoder.java">org/apache/hadoop/hbase/io/hfile/TestHFileDataBlockEncoder.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestHFileWriterV3.java">org/apache/hadoop/hbase/io/hfile/TestHFileWriterV3.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestLruBlockCache.java">org/apache/hadoop/hbase/io/hfile/TestLruBlockCache.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestPrefetch.java">org/apache/hadoop/hbase/io/hfile/TestPrefetch.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestScannerFromBucketCache.java">org/apache/hadoop/hbase/io/hfile/TestScannerFromBucketCache.java</a></td>
<td>0</td>
<td>0</td>
<td>8</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.TestScannerSelectionUsingKeyRange.java">org/apache/hadoop/hbase/io/hfile/TestScannerSelectionUsingKeyRange.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocator.java">org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.java</a></td>
<td>0</td>
<td>0</td>
<td>33</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.java">org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java</a></td>
<td>0</td>
<td>0</td>
-<td>39</td></tr>
-<tr class="b">
+<td>38</td></tr>
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.BucketCacheStats.java">org/apache/hadoop/hbase/io/hfile/bucket/BucketCacheStats.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.ByteBufferIOEngine.java">org/apache/hadoop/hbase/io/hfile/bucket/ByteBufferIOEngine.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.CachedEntryQueue.java">org/apache/hadoop/hbase/io/hfile/bucket/CachedEntryQueue.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.FileIOEngine.java">org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.FileMmapEngine.java">org/apache/hadoop/hbase/io/hfile/bucket/FileMmapEngine.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.IOEngine.java">org/apache/hadoop/hbase/io/hfile/bucket/IOEngine.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.TestBucketCache.java">org/apache/hadoop/hbase/io/hfile/bucket/TestBucketCache.java</a></td>
<td>0</td>
<td>0</td>
<td>15</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.TestBucketWriterThread.java">org/apache/hadoop/hbase/io/hfile/bucket/TestBucketWriterThread.java</a></td>
<td>0</td>
<td>0</td>
<td>11</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.TestFileIOEngine.java">org/apache/hadoop/hbase/io/hfile/bucket/TestFileIOEngine.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.UniqueIndexMap.java">org/apache/hadoop/hbase/io/hfile/bucket/UniqueIndexMap.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.util.Dictionary.java">org/apache/hadoop/hbase/io/util/Dictionary.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.util.LRUDictionary.java">org/apache/hadoop/hbase/io/util/LRUDictionary.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.io.util.MemorySizeUtil.java">org/apache/hadoop/hbase/io/util/MemorySizeUtil.java</a></td>
<td>0</td>
<td>0</td>
<td>9</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.io.util.StreamUtils.java">org/apache/hadoop/hbase/io/util/StreamUtils.java</a></td>
<td>0</td>
<td>0</td>
<td>10</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.AbstractRpcClient.java">org/apache/hadoop/hbase/ipc/AbstractRpcClient.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.AbstractTestIPC.java">org/apache/hadoop/hbase/ipc/AbstractTestIPC.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.AdaptiveLifoCoDelCallQueue.java">org/apache/hadoop/hbase/ipc/AdaptiveLifoCoDelCallQueue.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.BlockingRpcCallback.java">org/apache/hadoop/hbase/ipc/BlockingRpcCallback.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.BlockingRpcClient.java">org/apache/hadoop/hbase/ipc/BlockingRpcClient.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.BlockingRpcConnection.java">org/apache/hadoop/hbase/ipc/BlockingRpcConnection.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.BufferCallBeforeInitHandler.java">org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.BufferChain.java">org/apache/hadoop/hbase/ipc/BufferChain.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.Call.java">org/apache/hadoop/hbase/ipc/Call.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.CallQueueInfo.java">org/apache/hadoop/hbase/ipc/CallQueueInfo.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.CallRunner.java">org/apache/hadoop/hbase/ipc/CallRunner.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.CellBlockBuilder.java">org/apache/hadoop/hbase/ipc/CellBlockBuilder.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils.java">org/apache/hadoop/hbase/ipc/CoprocessorRpcUtils.java</a></td>
<td>0</td>
<td>0</td>
<td>9</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.DefaultNettyEventLoopConfig.java">org/apache/hadoop/hbase/ipc/DefaultNettyEventLoopConfig.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.DelegatingHBaseRpcController.java">org/apache/hadoop/hbase/ipc/DelegatingHBaseRpcController.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.FailedServers.java">org/apache/hadoop/hbase/ipc/FailedServers.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.FifoRpcScheduler.java">org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.HBaseRpcController.java">org/apache/hadoop/hbase/ipc/HBaseRpcController.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.HBaseRpcControllerImpl.java">org/apache/hadoop/hbase/ipc/HBaseRpcControllerImpl.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.IPCUtil.java">org/apache/hadoop/hbase/ipc/IPCUtil.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.IntegrationTestRpcClient.java">org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.MetricsHBaseServer.java">org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.NettyRpcClient.java">org/apache/hadoop/hbase/ipc/NettyRpcClient.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.NettyRpcClientConfigHelper.java">org/apache/hadoop/hbase/ipc/NettyRpcClientConfigHelper.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.NettyRpcConnection.java">org/apache/hadoop/hbase/ipc/NettyRpcConnection.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.NettyRpcDuplexHandler.java">org/apache/hadoop/hbase/ipc/NettyRpcDuplexHandler.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.NettyRpcServer.java">org/apache/hadoop/hbase/ipc/NettyRpcServer.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.NettyRpcServerPreambleHandler.java">org/apache/hadoop/hbase/ipc/NettyRpcServerPreambleHandler.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.NettyRpcServerRequestDecoder.java">org/apache/hadoop/hbase/ipc/NettyRpcServerRequestDecoder.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.NettyRpcServerResponseEncoder.java">org/apache/hadoop/hbase/ipc/NettyRpcServerResponseEncoder.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.NettyServerCall.java">org/apache/hadoop/hbase/ipc/NettyServerCall.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.NettyServerRpcConnection.java">org/apache/hadoop/hbase/ipc/NettyServerRpcConnection.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.PriorityFunction.java">org/apache/hadoop/hbase/ipc/PriorityFunction.java</a></td>
<td>0</td>
<td>0</td>
<td>8</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.RWQueueRpcExecutor.java">org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.RemoteWithExtrasException.java">org/apache/hadoop/hbase/ipc/RemoteWithExtrasException.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.RpcCall.java">org/apache/hadoop/hbase/ipc/RpcCall.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.RpcCallContext.java">org/apache/hadoop/hbase/ipc/RpcCallContext.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.RpcClient.java">org/apache/hadoop/hbase/ipc/RpcClient.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.RpcClientFactory.java">org/apache/hadoop/hbase/ipc/RpcClientFactory.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.RpcConnection.java">org/apache/hadoop/hbase/ipc/RpcConnection.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.RpcControllerFactory.java">org/apache/hadoop/hbase/ipc/RpcControllerFactory.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.RpcExecutor.java">org/apache/hadoop/hbase/ipc/RpcExecutor.java</a></td>
<td>0</td>
<td>0</td>
<td>14</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.RpcScheduler.java">org/apache/hadoop/hbase/ipc/RpcScheduler.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.RpcSchedulerContext.java">org/apache/hadoop/hbase/ipc/RpcSchedulerContext.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.RpcServer.java">org/apache/hadoop/hbase/ipc/RpcServer.java</a></td>
<td>0</td>
<td>0</td>
<td>10</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.RpcServerFactory.java">org/apache/hadoop/hbase/ipc/RpcServerFactory.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.RpcServerInterface.java">org/apache/hadoop/hbase/ipc/RpcServerInterface.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.ServerCall.java">org/apache/hadoop/hbase/ipc/ServerCall.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.ServerRpcConnection.java">org/apache/hadoop/hbase/ipc/ServerRpcConnection.java</a></td>
<td>0</td>
<td>0</td>
<td>23</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.ServerRpcController.java">org/apache/hadoop/hbase/ipc/ServerRpcController.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.SimpleRpcScheduler.java">org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java</a></td>
<td>0</td>
<td>0</td>
<td>9</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.SimpleRpcServer.java">org/apache/hadoop/hbase/ipc/SimpleRpcServer.java</a></td>
<td>0</td>
<td>0</td>
<td>15</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.SimpleRpcServerResponder.java">org/apache/hadoop/hbase/ipc/SimpleRpcServerResponder.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.SimpleServerCall.java">org/apache/hadoop/hbase/ipc/SimpleServerCall.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.SimpleServerRpcConnection.java">org/apache/hadoop/hbase/ipc/SimpleServerRpcConnection.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.TestBufferChain.java">org/apache/hadoop/hbase/ipc/TestBufferChain.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.TestCellBlockBuilder.java">org/apache/hadoop/hbase/ipc/TestCellBlockBuilder.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.TestFifoRpcScheduler.java">org/apache/hadoop/hbase/ipc/TestFifoRpcScheduler.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.TestHBaseClient.java">org/apache/hadoop/hbase/ipc/TestHBaseClient.java</a></td>
<td>0</td>
<td>0</td>
<td>41</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.TestHBaseRpcControllerImpl.java">org/apache/hadoop/hbase/ipc/TestHBaseRpcControllerImpl.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.TestProtobufRpcServiceImpl.java">org/apache/hadoop/hbase/ipc/TestProtobufRpcServiceImpl.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.ipc.TestRpcMetrics.java">org/apache/hadoop/hbase/ipc/TestRpcMetrics.java</a></td>
<td>0</td>
<td>0</td>
<td>10</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.ipc.TestSimpleRpcScheduler.java">org/apache/hadoop/hbase/ipc/TestSimpleRpcScheduler.java</a></td>
<td>0</td>
<td>0</td>
<td>12</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.log.HBaseMarkers.java">org/apache/hadoop/hbase/log/HBaseMarkers.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapred.Driver.java">org/apache/hadoop/hbase/mapred/Driver.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapred.GroupingTableMap.java">org/apache/hadoop/hbase/mapred/GroupingTableMap.java</a></td>
<td>0</td>
<td>0</td>
<td>11</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapred.HRegionPartitioner.java">org/apache/hadoop/hbase/mapred/HRegionPartitioner.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapred.IdentityTableMap.java">org/apache/hadoop/hbase/mapred/IdentityTableMap.java</a></td>
<td>0</td>
<td>0</td>
<td>9</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapred.IdentityTableReduce.java">org/apache/hadoop/hbase/mapred/IdentityTableReduce.java</a></td>
<td>0</td>
<td>0</td>
<td>8</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapred.MultiTableSnapshotInputFormat.java">org/apache/hadoop/hbase/mapred/MultiTableSnapshotInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapred.RowCounter.java">org/apache/hadoop/hbase/mapred/RowCounter.java</a></td>
<td>0</td>
<td>0</td>
<td>8</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapred.TableInputFormat.java">org/apache/hadoop/hbase/mapred/TableInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapred.TableInputFormatBase.java">org/apache/hadoop/hbase/mapred/TableInputFormatBase.java</a></td>
<td>0</td>
<td>0</td>
<td>7</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapred.TableMap.java">org/apache/hadoop/hbase/mapred/TableMap.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapred.TableMapReduceUtil.java">org/apache/hadoop/hbase/mapred/TableMapReduceUtil.java</a></td>
<td>0</td>
<td>0</td>
<td>22</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapred.TableOutputFormat.java">org/apache/hadoop/hbase/mapred/TableOutputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapred.TableRecordReader.java">org/apache/hadoop/hbase/mapred/TableRecordReader.java</a></td>
<td>0</td>
<td>0</td>
<td>7</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapred.TableRecordReaderImpl.java">org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.java</a></td>
<td>0</td>
<td>0</td>
<td>8</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapred.TableReduce.java">org/apache/hadoop/hbase/mapred/TableReduce.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapred.TableSnapshotInputFormat.java">org/apache/hadoop/hbase/mapred/TableSnapshotInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>10</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapred.TableSplit.java">org/apache/hadoop/hbase/mapred/TableSplit.java</a></td>
<td>0</td>
<td>0</td>
<td>17</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapred.TestGroupingTableMap.java">org/apache/hadoop/hbase/mapred/TestGroupingTableMap.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapred.TestIdentityTableMap.java">org/apache/hadoop/hbase/mapred/TestIdentityTableMap.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapred.TestRowCounter.java">org/apache/hadoop/hbase/mapred/TestRowCounter.java</a></td>
<td>0</td>
<td>0</td>
<td>12</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapred.TestSplitTable.java">org/apache/hadoop/hbase/mapred/TestSplitTable.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapred.TestTableInputFormat.java">org/apache/hadoop/hbase/mapred/TestTableInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>22</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapred.TestTableMapReduce.java">org/apache/hadoop/hbase/mapred/TestTableMapReduce.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapred.TestTableMapReduceUtil.java">org/apache/hadoop/hbase/mapred/TestTableMapReduceUtil.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapred.TestTableSnapshotInputFormat.java">org/apache/hadoop/hbase/mapred/TestTableSnapshotInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.CellCounter.java">org/apache/hadoop/hbase/mapreduce/CellCounter.java</a></td>
<td>0</td>
<td>0</td>
<td>7</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.CellCreator.java">org/apache/hadoop/hbase/mapreduce/CellCreator.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.CellSerialization.java">org/apache/hadoop/hbase/mapreduce/CellSerialization.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.CellSortReducer.java">org/apache/hadoop/hbase/mapreduce/CellSortReducer.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.CopyTable.java">org/apache/hadoop/hbase/mapreduce/CopyTable.java</a></td>
<td>0</td>
<td>0</td>
<td>14</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.DefaultVisibilityExpressionResolver.java">org/apache/hadoop/hbase/mapreduce/DefaultVisibilityExpressionResolver.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.Driver.java">org/apache/hadoop/hbase/mapreduce/Driver.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.Export.java">org/apache/hadoop/hbase/mapreduce/Export.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.ExportUtils.java">org/apache/hadoop/hbase/mapreduce/ExportUtils.java</a></td>
<td>0</td>
<td>0</td>
<td>8</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.GroupingTableMapper.java">org/apache/hadoop/hbase/mapreduce/GroupingTableMapper.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.HFileInputFormat.java">org/apache/hadoop/hbase/mapreduce/HFileInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.HFileOutputFormat2.java">org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.java</a></td>
<td>0</td>
<td>0</td>
<td>18</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.HRegionPartitioner.java">org/apache/hadoop/hbase/mapreduce/HRegionPartitioner.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.HashTable.java">org/apache/hadoop/hbase/mapreduce/HashTable.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.IdentityTableMapper.java">org/apache/hadoop/hbase/mapreduce/IdentityTableMapper.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.IdentityTableReducer.java">org/apache/hadoop/hbase/mapreduce/IdentityTableReducer.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.Import.java">org/apache/hadoop/hbase/mapreduce/Import.java</a></td>
<td>0</td>
<td>0</td>
<td>15</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.ImportTsv.java">org/apache/hadoop/hbase/mapreduce/ImportTsv.java</a></td>
<td>0</td>
<td>0</td>
<td>22</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.IndexBuilder.java">org/apache/hadoop/hbase/mapreduce/IndexBuilder.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.IntegrationTestBulkLoad.java">org/apache/hadoop/hbase/mapreduce/IntegrationTestBulkLoad.java</a></td>
<td>0</td>
<td>0</td>
<td>11</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.IntegrationTestImportTsv.java">org/apache/hadoop/hbase/mapreduce/IntegrationTestImportTsv.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.IntegrationTestTableSnapshotInputFormat.java">org/apache/hadoop/hbase/mapreduce/IntegrationTestTableSnapshotInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.MapreduceTestingShim.java">org/apache/hadoop/hbase/mapreduce/MapreduceTestingShim.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.MultiTableHFileOutputFormat.java">org/apache/hadoop/hbase/mapreduce/MultiTableHFileOutputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.MultiTableInputFormat.java">org/apache/hadoop/hbase/mapreduce/MultiTableInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.MultiTableInputFormatBase.java">org/apache/hadoop/hbase/mapreduce/MultiTableInputFormatBase.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.MultiTableInputFormatTestBase.java">org/apache/hadoop/hbase/mapreduce/MultiTableInputFormatTestBase.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.MultiTableOutputFormat.java">org/apache/hadoop/hbase/mapreduce/MultiTableOutputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.MultiTableSnapshotInputFormat.java">org/apache/hadoop/hbase/mapreduce/MultiTableSnapshotInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.MultiTableSnapshotInputFormatImpl.java">org/apache/hadoop/hbase/mapreduce/MultiTableSnapshotInputFormatImpl.java</a></td>
<td>0</td>
<td>0</td>
<td>11</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.MultithreadedTableMapper.java">org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java</a></td>
<td>0</td>
<td>0</td>
<td>9</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.MutationSerialization.java">org/apache/hadoop/hbase/mapreduce/MutationSerialization.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.NMapInputFormat.java">org/apache/hadoop/hbase/mapreduce/NMapInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.PutCombiner.java">org/apache/hadoop/hbase/mapreduce/PutCombiner.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.PutSortReducer.java">org/apache/hadoop/hbase/mapreduce/PutSortReducer.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.ResultSerialization.java">org/apache/hadoop/hbase/mapreduce/ResultSerialization.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.RowCounter.java">org/apache/hadoop/hbase/mapreduce/RowCounter.java</a></td>
<td>0</td>
<td>0</td>
<td>7</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.RowCounter_Counters.properties">org/apache/hadoop/hbase/mapreduce/RowCounter_Counters.properties</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.SampleUploader.java">org/apache/hadoop/hbase/mapreduce/SampleUploader.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.SimpleTotalOrderPartitioner.java">org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.SyncTable.java">org/apache/hadoop/hbase/mapreduce/SyncTable.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TableInputFormat.java">org/apache/hadoop/hbase/mapreduce/TableInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TableInputFormatBase.java">org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java</a></td>
<td>0</td>
<td>0</td>
<td>20</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.java">org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java</a></td>
<td>0</td>
<td>0</td>
<td>66</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TableMapper.java">org/apache/hadoop/hbase/mapreduce/TableMapper.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TableOutputCommitter.java">org/apache/hadoop/hbase/mapreduce/TableOutputCommitter.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TableOutputFormat.java">org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>7</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TableRecordReader.java">org/apache/hadoop/hbase/mapreduce/TableRecordReader.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.java">org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java</a></td>
<td>0</td>
<td>0</td>
<td>12</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TableReducer.java">org/apache/hadoop/hbase/mapreduce/TableReducer.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TableSnapshotInputFormat.java">org/apache/hadoop/hbase/mapreduce/TableSnapshotInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>9</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TableSnapshotInputFormatImpl.java">org/apache/hadoop/hbase/mapreduce/TableSnapshotInputFormatImpl.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TableSnapshotInputFormatTestBase.java">org/apache/hadoop/hbase/mapreduce/TableSnapshotInputFormatTestBase.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TableSplit.java">org/apache/hadoop/hbase/mapreduce/TableSplit.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestCellCounter.java">org/apache/hadoop/hbase/mapreduce/TestCellCounter.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestCopyTable.java">org/apache/hadoop/hbase/mapreduce/TestCopyTable.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestGroupingTableMapper.java">org/apache/hadoop/hbase/mapreduce/TestGroupingTableMapper.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestHBaseMRTestingUtility.java">org/apache/hadoop/hbase/mapreduce/TestHBaseMRTestingUtility.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestHFileOutputFormat2.java">org/apache/hadoop/hbase/mapreduce/TestHFileOutputFormat2.java</a></td>
<td>0</td>
<td>0</td>
<td>40</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestHRegionPartitioner.java">org/apache/hadoop/hbase/mapreduce/TestHRegionPartitioner.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestHashTable.java">org/apache/hadoop/hbase/mapreduce/TestHashTable.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestImportExport.java">org/apache/hadoop/hbase/mapreduce/TestImportExport.java</a></td>
<td>0</td>
<td>0</td>
<td>39</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestImportTSVWithOperationAttributes.java">org/apache/hadoop/hbase/mapreduce/TestImportTSVWithOperationAttributes.java</a></td>
<td>0</td>
<td>0</td>
<td>9</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestImportTSVWithTTLs.java">org/apache/hadoop/hbase/mapreduce/TestImportTSVWithTTLs.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestImportTSVWithVisibilityLabels.java">org/apache/hadoop/hbase/mapreduce/TestImportTSVWithVisibilityLabels.java</a></td>
<td>0</td>
<td>0</td>
<td>27</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestImportTsv.java">org/apache/hadoop/hbase/mapreduce/TestImportTsv.java</a></td>
<td>0</td>
<td>0</td>
<td>20</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestImportTsvParser.java">org/apache/hadoop/hbase/mapreduce/TestImportTsvParser.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestMapReduceExamples.java">org/apache/hadoop/hbase/mapreduce/TestMapReduceExamples.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestMultiTableInputFormat.java">org/apache/hadoop/hbase/mapreduce/TestMultiTableInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestMultiTableInputFormatBase.java">org/apache/hadoop/hbase/mapreduce/TestMultiTableInputFormatBase.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestMultiTableSnapshotInputFormatImpl.java">org/apache/hadoop/hbase/mapreduce/TestMultiTableSnapshotInputFormatImpl.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestMultithreadedTableMapper.java">org/apache/hadoop/hbase/mapreduce/TestMultithreadedTableMapper.java</a></td>
<td>0</td>
<td>0</td>
<td>12</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestRegionSizeCalculator.java">org/apache/hadoop/hbase/mapreduce/TestRegionSizeCalculator.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestRowCounter.java">org/apache/hadoop/hbase/mapreduce/TestRowCounter.java</a></td>
<td>0</td>
<td>0</td>
<td>37</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestSimpleTotalOrderPartitioner.java">org/apache/hadoop/hbase/mapreduce/TestSimpleTotalOrderPartitioner.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestSyncTable.java">org/apache/hadoop/hbase/mapreduce/TestSyncTable.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestTableInputFormat.java">org/apache/hadoop/hbase/mapreduce/TestTableInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>29</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestTableInputFormatBase.java">org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestTableInputFormatScan1.java">org/apache/hadoop/hbase/mapreduce/TestTableInputFormatScan1.java</a></td>
<td>0</td>
<td>0</td>
<td>30</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestTableInputFormatScan2.java">org/apache/hadoop/hbase/mapreduce/TestTableInputFormatScan2.java</a></td>
<td>0</td>
<td>0</td>
<td>25</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestTableInputFormatScanBase.java">org/apache/hadoop/hbase/mapreduce/TestTableInputFormatScanBase.java</a></td>
<td>0</td>
<td>0</td>
<td>21</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestTableMapReduce.java">org/apache/hadoop/hbase/mapreduce/TestTableMapReduce.java</a></td>
<td>0</td>
<td>0</td>
<td>8</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestTableMapReduceBase.java">org/apache/hadoop/hbase/mapreduce/TestTableMapReduceBase.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestTableSplit.java">org/apache/hadoop/hbase/mapreduce/TestTableSplit.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestTimeRangeMapRed.java">org/apache/hadoop/hbase/mapreduce/TestTimeRangeMapRed.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestWALPlayer.java">org/apache/hadoop/hbase/mapreduce/TestWALPlayer.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TestWALRecordReader.java">org/apache/hadoop/hbase/mapreduce/TestWALRecordReader.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TextSortReducer.java">org/apache/hadoop/hbase/mapreduce/TextSortReducer.java</a></td>
<td>0</td>
<td>0</td>
<td>7</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TsvImporterCustomTestMapper.java">org/apache/hadoop/hbase/mapreduce/TsvImporterCustomTestMapper.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TsvImporterMapper.java">org/apache/hadoop/hbase/mapreduce/TsvImporterMapper.java</a></td>
<td>0</td>
<td>0</td>
<td>7</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.TsvImporterTextMapper.java">org/apache/hadoop/hbase/mapreduce/TsvImporterTextMapper.java</a></td>
<td>0</td>
<td>0</td>
<td>8</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.VisibilityExpressionResolver.java">org/apache/hadoop/hbase/mapreduce/VisibilityExpressionResolver.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.WALInputFormat.java">org/apache/hadoop/hbase/mapreduce/WALInputFormat.java</a></td>
<td>0</td>
<td>0</td>
<td>11</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.mapreduce.WALPlayer.java">org/apache/hadoop/hbase/mapreduce/WALPlayer.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.mapreduce.replication.VerifyReplication.java">org/apache/hadoop/hbase/mapreduce/replication/VerifyReplication.java</a></td>
<td>0</td>
<td>0</td>
<td>10</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.AbstractTestDLS.java">org/apache/hadoop/hbase/master/AbstractTestDLS.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.ActiveMasterManager.java">org/apache/hadoop/hbase/master/ActiveMasterManager.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.AssignmentVerificationReport.java">org/apache/hadoop/hbase/master/AssignmentVerificationReport.java</a></td>
<td>0</td>
<td>0</td>
<td>8</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.CatalogJanitor.java">org/apache/hadoop/hbase/master/CatalogJanitor.java</a></td>
<td>0</td>
<td>0</td>
<td>27</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.ClusterSchema.java">org/apache/hadoop/hbase/master/ClusterSchema.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.ClusterSchemaServiceImpl.java">org/apache/hadoop/hbase/master/ClusterSchemaServiceImpl.java</a></td>
<td>0</td>
<td>0</td>
<td>8</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.DeadServer.java">org/apache/hadoop/hbase/master/DeadServer.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.DrainingServerTracker.java">org/apache/hadoop/hbase/master/DrainingServerTracker.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.ExpiredMobFileCleanerChore.java">org/apache/hadoop/hbase/master/ExpiredMobFileCleanerChore.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.HMaster.java">org/apache/hadoop/hbase/master/HMaster.java</a></td>
<td>0</td>
<td>0</td>
<td>155</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.HMasterCommandLine.java">org/apache/hadoop/hbase/master/HMasterCommandLine.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.LoadBalancer.java">org/apache/hadoop/hbase/master/LoadBalancer.java</a></td>
<td>0</td>
<td>0</td>
<td>15</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.MasterCoprocessorHost.java">org/apache/hadoop/hbase/master/MasterCoprocessorHost.java</a></td>
<td>0</td>
<td>0</td>
<td>16</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.MasterFileSystem.java">org/apache/hadoop/hbase/master/MasterFileSystem.java</a></td>
<td>0</td>
<td>0</td>
<td>12</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.MasterMobCompactionThread.java">org/apache/hadoop/hbase/master/MasterMobCompactionThread.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.MasterRpcServices.java">org/apache/hadoop/hbase/master/MasterRpcServices.java</a></td>
<td>0</td>
<td>0</td>
<td>11</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.MasterServices.java">org/apache/hadoop/hbase/master/MasterServices.java</a></td>
<td>0</td>
<td>0</td>
<td>41</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.MasterStatusServlet.java">org/apache/hadoop/hbase/master/MasterStatusServlet.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.MasterWalManager.java">org/apache/hadoop/hbase/master/MasterWalManager.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.MetricsAssignmentManager.java">org/apache/hadoop/hbase/master/MetricsAssignmentManager.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.MetricsMaster.java">org/apache/hadoop/hbase/master/MetricsMaster.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.MetricsMasterWrapperImpl.java">org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.MirroringTableStateManager.java">org/apache/hadoop/hbase/master/MirroringTableStateManager.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.MobCompactionChore.java">org/apache/hadoop/hbase/master/MobCompactionChore.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.MockRegionServer.java">org/apache/hadoop/hbase/master/MockRegionServer.java</a></td>
<td>0</td>
<td>0</td>
<td>11</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.RackManager.java">org/apache/hadoop/hbase/master/RackManager.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.RegionPlacementMaintainer.java">org/apache/hadoop/hbase/master/RegionPlacementMaintainer.java</a></td>
<td>0</td>
<td>0</td>
<td>29</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.RegionState.java">org/apache/hadoop/hbase/master/RegionState.java</a></td>
<td>0</td>
<td>0</td>
<td>86</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.ServerListener.java">org/apache/hadoop/hbase/master/ServerListener.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.ServerManager.java">org/apache/hadoop/hbase/master/ServerManager.java</a></td>
<td>0</td>
<td>0</td>
<td>19</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.SnapshotOfRegionAssignmentFromMeta.java">org/apache/hadoop/hbase/master/SnapshotOfRegionAssignmentFromMeta.java</a></td>
<td>0</td>
<td>0</td>
<td>13</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.SnapshotSentinel.java">org/apache/hadoop/hbase/master/SnapshotSentinel.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.SplitLogManager.java">org/apache/hadoop/hbase/master/SplitLogManager.java</a></td>
<td>0</td>
<td>0</td>
<td>17</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.SplitOrMergeTracker.java">org/apache/hadoop/hbase/master/SplitOrMergeTracker.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.TableNamespaceManager.java">org/apache/hadoop/hbase/master/TableNamespaceManager.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.TableStateManager.java">org/apache/hadoop/hbase/master/TableStateManager.java</a></td>
<td>0</td>
<td>0</td>
<td>7</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.TestActiveMasterManager.java">org/apache/hadoop/hbase/master/TestActiveMasterManager.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.TestCatalogJanitor.java">org/apache/hadoop/hbase/master/TestCatalogJanitor.java</a></td>
<td>0</td>
<td>0</td>
<td>13</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.TestCatalogJanitorInMemoryStates.java">org/apache/hadoop/hbase/master/TestCatalogJanitorInMemoryStates.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.TestHMasterCommandLine.java">org/apache/hadoop/hbase/master/TestHMasterCommandLine.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.TestMaster.java">org/apache/hadoop/hbase/master/TestMaster.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.TestMasterFailoverBalancerPersistence.java">org/apache/hadoop/hbase/master/TestMasterFailoverBalancerPersistence.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.TestMasterFileSystem.java">org/apache/hadoop/hbase/master/TestMasterFileSystem.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.TestMasterFileSystemWithWALDir.java">org/apache/hadoop/hbase/master/TestMasterFileSystemWithWALDir.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.TestMasterMetrics.java">org/apache/hadoop/hbase/master/TestMasterMetrics.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.TestMasterMetricsWrapper.java">org/apache/hadoop/hbase/master/TestMasterMetricsWrapper.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.TestMasterNoCluster.java">org/apache/hadoop/hbase/master/TestMasterNoCluster.java</a></td>
<td>0</td>
<td>0</td>
<td>20</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.TestMasterOperationsForRegionReplicas.java">org/apache/hadoop/hbase/master/TestMasterOperationsForRegionReplicas.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.TestMasterStatusServlet.java">org/apache/hadoop/hbase/master/TestMasterStatusServlet.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.TestMasterTransitions.java">org/apache/hadoop/hbase/master/TestMasterTransitions.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.TestMirroringTableStateManager.java">org/apache/hadoop/hbase/master/TestMirroringTableStateManager.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.TestRegionPlacement.java">org/apache/hadoop/hbase/master/TestRegionPlacement.java</a></td>
<td>0</td>
<td>0</td>
<td>20</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.TestRegionPlacement2.java">org/apache/hadoop/hbase/master/TestRegionPlacement2.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.TestRollingRestart.java">org/apache/hadoop/hbase/master/TestRollingRestart.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.TestSplitLogManager.java">org/apache/hadoop/hbase/master/TestSplitLogManager.java</a></td>
<td>0</td>
<td>0</td>
<td>7</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.TestTableStateManager.java">org/apache/hadoop/hbase/master/TestTableStateManager.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.TestWarmupRegion.java">org/apache/hadoop/hbase/master/TestWarmupRegion.java</a></td>
<td>0</td>
<td>0</td>
<td>19</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.assignment.AssignProcedure.java">org/apache/hadoop/hbase/master/assignment/AssignProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.assignment.AssignmentManager.java">org/apache/hadoop/hbase/master/assignment/AssignmentManager.java</a></td>
<td>0</td>
<td>0</td>
<td>30</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.assignment.GCMergedRegionsProcedure.java">org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>16</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.assignment.GCRegionProcedure.java">org/apache/hadoop/hbase/master/assignment/GCRegionProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>32</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure.java">org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.assignment.MockMasterServices.java">org/apache/hadoop/hbase/master/assignment/MockMasterServices.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.assignment.RegionStateStore.java">org/apache/hadoop/hbase/master/assignment/RegionStateStore.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.assignment.RegionStates.java">org/apache/hadoop/hbase/master/assignment/RegionStates.java</a></td>
<td>0</td>
<td>0</td>
<td>25</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.assignment.RegionTransitionProcedure.java">org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>6</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.assignment.SplitTableRegionProcedure.java">org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>8</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.assignment.TestAssignmentManager.java">org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.assignment.TestAssignmentOnRSCrash.java">org/apache/hadoop/hbase/master/assignment/TestAssignmentOnRSCrash.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.assignment.TestRegionStates.java">org/apache/hadoop/hbase/master/assignment/TestRegionStates.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.assignment.TestSplitTableRegionProcedure.java">org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.assignment.TestUnexpectedStateException.java">org/apache/hadoop/hbase/master/assignment/TestUnexpectedStateException.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.assignment.UnassignProcedure.java">org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.assignment.Util.java">org/apache/hadoop/hbase/master/assignment/Util.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.balancer.BalancerChore.java">org/apache/hadoop/hbase/master/balancer/BalancerChore.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.balancer.BalancerTestBase.java">org/apache/hadoop/hbase/master/balancer/BalancerTestBase.java</a></td>
<td>0</td>
<td>0</td>
<td>75</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.java">org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java</a></td>
<td>0</td>
<td>0</td>
<td>60</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.balancer.ClusterLoadState.java">org/apache/hadoop/hbase/master/balancer/ClusterLoadState.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.balancer.ClusterStatusChore.java">org/apache/hadoop/hbase/master/balancer/ClusterStatusChore.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.balancer.FavoredStochasticBalancer.java">org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory.java">org/apache/hadoop/hbase/master/balancer/LoadBalancerFactory.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.balancer.LoadBalancerPerformanceEvaluation.java">org/apache/hadoop/hbase/master/balancer/LoadBalancerPerformanceEvaluation.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.balancer.RegionInfoComparator.java">org/apache/hadoop/hbase/master/balancer/RegionInfoComparator.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.balancer.RegionLocationFinder.java">org/apache/hadoop/hbase/master/balancer/RegionLocationFinder.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.balancer.ServerAndLoad.java">org/apache/hadoop/hbase/master/balancer/ServerAndLoad.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.balancer.SimpleLoadBalancer.java">org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.java</a></td>
<td>0</td>
<td>0</td>
<td>33</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.balancer.StochasticLoadBalancer.java">org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java</a></td>
<td>0</td>
<td>0</td>
<td>32</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.balancer.TestBaseLoadBalancer.java">org/apache/hadoop/hbase/master/balancer/TestBaseLoadBalancer.java</a></td>
<td>0</td>
<td>0</td>
<td>16</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.balancer.TestDefaultLoadBalancer.java">org/apache/hadoop/hbase/master/balancer/TestDefaultLoadBalancer.java</a></td>
<td>0</td>
<td>0</td>
<td>48</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.balancer.TestFavoredNodeTableImport.java">org/apache/hadoop/hbase/master/balancer/TestFavoredNodeTableImport.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.balancer.TestFavoredStochasticBalancerPickers.java">org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticBalancerPickers.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.balancer.TestRegionsOnMasterOptions.java">org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.java</a></td>
<td>0</td>
<td>0</td>
<td>13</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.balancer.TestServerAndLoad.java">org/apache/hadoop/hbase/master/balancer/TestServerAndLoad.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.balancer.TestStochasticLoadBalancer.java">org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java</a></td>
<td>0</td>
<td>0</td>
<td>33</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.cleaner.BaseFileCleanerDelegate.java">org/apache/hadoop/hbase/master/cleaner/BaseFileCleanerDelegate.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.cleaner.BaseLogCleanerDelegate.java">org/apache/hadoop/hbase/master/cleaner/BaseLogCleanerDelegate.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.cleaner.CleanerChore.java">org/apache/hadoop/hbase/master/cleaner/CleanerChore.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.cleaner.FileCleanerDelegate.java">org/apache/hadoop/hbase/master/cleaner/FileCleanerDelegate.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.cleaner.HFileLinkCleaner.java">org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.cleaner.TestCleanerChore.java">org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.cleaner.TestHFileCleaner.java">org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java</a></td>
<td>0</td>
<td>0</td>
<td>4</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.cleaner.TestHFileLinkCleaner.java">org/apache/hadoop/hbase/master/cleaner/TestHFileLinkCleaner.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.cleaner.TestSnapshotFromMaster.java">org/apache/hadoop/hbase/master/cleaner/TestSnapshotFromMaster.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner.java">org/apache/hadoop/hbase/master/cleaner/TimeToLiveHFileCleaner.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.cleaner.TimeToLiveLogCleaner.java">org/apache/hadoop/hbase/master/cleaner/TimeToLiveLogCleaner.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.locking.LockManager.java">org/apache/hadoop/hbase/master/locking/LockManager.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.locking.LockProcedure.java">org/apache/hadoop/hbase/master/locking/LockProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.normalizer.EmptyNormalizationPlan.java">org/apache/hadoop/hbase/master/normalizer/EmptyNormalizationPlan.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.java">org/apache/hadoop/hbase/master/normalizer/NormalizationPlan.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore.java">org/apache/hadoop/hbase/master/normalizer/RegionNormalizerChore.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory.java">org/apache/hadoop/hbase/master/normalizer/RegionNormalizerFactory.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.normalizer.TestSimpleRegionNormalizerOnCluster.java">org/apache/hadoop/hbase/master/normalizer/TestSimpleRegionNormalizerOnCluster.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.procedure.AbstractStateMachineNamespaceProcedure.java">org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.procedure.AbstractStateMachineRegionProcedure.java">org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.procedure.AbstractStateMachineTableProcedure.java">org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.procedure.CloneSnapshotProcedure.java">org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>9</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.java">org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>31</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.java">org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure.java">org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>34</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure.java">org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>2</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.procedure.DisableTableProcedure.java">org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>11</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.procedure.EnableTableProcedure.java">org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>72</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv.java">org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.java">org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.java</a></td>
<td>0</td>
<td>0</td>
-<td>7</td></tr>
-<tr class="b">
+<td>6</td></tr>
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.procedure.MasterProcedureSchedulerPerformanceEvaluation.java">org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.procedure.MasterProcedureTestingUtility.java">org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.java</a></td>
<td>0</td>
<td>0</td>
<td>5</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.java">org/apache/hadoop/hbase/master/procedure/MasterProcedureUtil.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.procedure.ModifyNamespaceProcedure.java">org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>21</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.procedure.ModifyTableProcedure.java">org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java</a></td>
<td>0</td>
<td>0</td>
<td>12</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.procedure.ProcedureDescriber.java">org/apache/hadoop/hbase/master/procedure/ProcedureDescriber.java</a></td>
<td>0</td>
<td>0</td>
<td>3</td></tr>
-<tr class="b">
+<tr class="a">
<td><a href="#org.apache.hadoop.hbase.master.procedure.ProcedurePrepareLatch.java">org/apache/hadoop/hbase/master/procedure/ProcedurePrepareLatch.java</a></td>
<td>0</td>
<td>0</td>
<td>1</td></tr>
-<tr class="a">
+<tr class="b">
<td><a href="#org.apache.hadoop.hbase.master.procedure.ProcedureSyncWait.java">org/apache/had
<TRUNCATED>
[29/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
index 5623ece..6f1a7b9 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":9,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":9,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":9,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":9,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109"
:10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":9,"i132":10,"i133":9,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10,"i148":10,"i149":10,"i150":10,"i151":10,"i152":9,"i153":10,"i154":9,"i155":10,"i156":10,"i157":10,"i158":10,"i159":10,"i160":10,"i161":10,"i162":10,"i163":10,"i164":10,"i165":10,"i166":10,"i167":10,"i168":10,"i169":10,"i170":10,"i171":10,"i172":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":9,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":9,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":9,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":9,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109"
:10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":9,"i133":10,"i134":9,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10,"i148":10,"i149":10,"i150":10,"i151":10,"i152":10,"i153":9,"i154":10,"i155":9,"i156":10,"i157":10,"i158":10,"i159":10,"i160":10,"i161":10,"i162":10,"i163":10,"i164":10,"i165":10,"i166":10,"i167":10,"i168":10,"i169":10,"i170":10,"i171":10,"i172":10,"i173":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
<hr>
<br>
<pre>@InterfaceAudience.LimitedPrivate(value="Tools")
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.225">HRegionServer</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.227">HRegionServer</a>
extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" title="class in org.apache.hadoop.hbase.util">HasThread</a>
implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/LastSequenceId.html" title="interface in org.apache.hadoop.hbase.regionserver">LastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a></pre>
<div class="block">HRegionServer makes a set of HRegions available to clients. It checks in with
@@ -1165,116 +1165,120 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALFileSystem--">getWALFileSystem</a></span>()</code> </td>
</tr>
<tr id="i108" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalGroupsReplicationStatus--">getWalGroupsReplicationStatus</a></span>()</code> </td>
+</tr>
+<tr id="i109" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/LogRoller.html" title="class in org.apache.hadoop.hbase.regionserver">LogRoller</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalRoller--">getWalRoller</a></span>()</code> </td>
</tr>
-<tr id="i109" class="rowColor">
+<tr id="i110" class="altColor">
<td class="colFirst"><code>org.apache.hadoop.fs.Path</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALRootDir--">getWALRootDir</a></span>()</code> </td>
</tr>
-<tr id="i110" class="altColor">
+<tr id="i111" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALs--">getWALs</a></span>()</code> </td>
</tr>
-<tr id="i111" class="rowColor">
+<tr id="i112" class="altColor">
<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.WriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock.WriteLock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWriteLock--">getWriteLock</a></span>()</code> </td>
</tr>
-<tr id="i112" class="altColor">
+<tr id="i113" class="rowColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWriteRequestCount--">getWriteRequestCount</a></span>()</code> </td>
</tr>
-<tr id="i113" class="rowColor">
+<tr id="i114" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getZooKeeper--">getZooKeeper</a></span>()</code>
<div class="block">Gets the ZooKeeper instance for this server.</div>
</td>
</tr>
-<tr id="i114" class="altColor">
+<tr id="i115" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">handleReportForDutyResponse</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse c)</code> </td>
</tr>
-<tr id="i115" class="rowColor">
+<tr id="i116" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeFileSystem--">initializeFileSystem</a></span>()</code> </td>
</tr>
-<tr id="i116" class="altColor">
+<tr id="i117" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeMemStoreChunkCreator--">initializeMemStoreChunkCreator</a></span>()</code> </td>
</tr>
-<tr id="i117" class="rowColor">
+<tr id="i118" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeThreads--">initializeThreads</a></span>()</code> </td>
</tr>
-<tr id="i118" class="altColor">
+<tr id="i119" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeZooKeeper--">initializeZooKeeper</a></span>()</code>
<div class="block">Bring up connection to zk ensemble and then wait until a master for this cluster and then after
that, wait until cluster 'up' flag has been set.</div>
</td>
</tr>
-<tr id="i119" class="rowColor">
+<tr id="i120" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isAborted--">isAborted</a></span>()</code>
<div class="block">Check if the server or client was aborted.</div>
</td>
</tr>
-<tr id="i120" class="altColor">
+<tr id="i121" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isClusterUp--">isClusterUp</a></span>()</code> </td>
</tr>
-<tr id="i121" class="rowColor">
+<tr id="i122" class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isHealthCheckerConfigured--">isHealthCheckerConfigured</a></span>()</code> </td>
</tr>
-<tr id="i122" class="altColor">
+<tr id="i123" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isHealthy--">isHealthy</a></span>()</code> </td>
</tr>
-<tr id="i123" class="rowColor">
+<tr id="i124" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isOnline--">isOnline</a></span>()</code>
<div class="block">Report the status of the server.</div>
</td>
</tr>
-<tr id="i124" class="altColor">
+<tr id="i125" class="rowColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isOnlineRegionsEmpty--">isOnlineRegionsEmpty</a></span>()</code> </td>
</tr>
-<tr id="i125" class="rowColor">
+<tr id="i126" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isShutDown--">isShutDown</a></span>()</code> </td>
</tr>
-<tr id="i126" class="altColor">
+<tr id="i127" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopped--">isStopped</a></span>()</code> </td>
</tr>
-<tr id="i127" class="rowColor">
+<tr id="i128" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopping--">isStopping</a></span>()</code> </td>
</tr>
-<tr id="i128" class="altColor">
+<tr id="i129" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#keepLooping--">keepLooping</a></span>()</code> </td>
</tr>
-<tr id="i129" class="rowColor">
+<tr id="i130" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#kill--">kill</a></span>()</code> </td>
</tr>
-<tr id="i130" class="altColor">
+<tr id="i131" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#login-org.apache.hadoop.hbase.security.UserProvider-java.lang.String-">login</a></span>(<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a> user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> host)</code> </td>
</tr>
-<tr id="i131" class="rowColor">
+<tr id="i132" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#main-java.lang.String:A-">main</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)</code> </td>
</tr>
-<tr id="i132" class="altColor">
+<tr id="i133" class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegionCleanerPeriod--">movedRegionCleanerPeriod</a></span>()</code> </td>
</tr>
-<tr id="i133" class="rowColor">
+<tr id="i134" class="altColor">
<td class="colFirst"><code>private static <T extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationService</a>><br>T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#newReplicationInstance-java.lang.String-java.lang.Class-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.HRegionServer-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.wal.WALProvider-">newReplicationInstance</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> classname,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> xface,
@@ -1285,34 +1289,34 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
org.apache.hadoop.fs.Path oldLogDir,
<a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider</a> walProvider)</code> </td>
</tr>
-<tr id="i134" class="altColor">
+<tr id="i135" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a></span>(org.apache.hadoop.conf.Configuration newConf)</code>
<div class="block">This method would be called by the <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf"><code>ConfigurationManager</code></a>
object when the <code>Configuration</code> object is reloaded from disk.</div>
</td>
</tr>
-<tr id="i135" class="rowColor">
+<tr id="i136" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.PostOpenDeployContext</a> context)</code>
<div class="block">Tasks to perform after region open to complete deploy of region on
regionserver</div>
</td>
</tr>
-<tr id="i136" class="altColor">
+<tr id="i137" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#preRegistrationInitialization--">preRegistrationInitialization</a></span>()</code>
<div class="block">All initialization needed before we go register with Master.<br>
Do bare minimum.</div>
</td>
</tr>
-<tr id="i137" class="rowColor">
+<tr id="i138" class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#putUpWebUI--">putUpWebUI</a></span>()</code>
<div class="block">Puts up the webui.</div>
</td>
</tr>
-<tr id="i138" class="altColor">
+<tr id="i139" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/locking/EntityLock.html" title="class in org.apache.hadoop.hbase.client.locking">EntityLock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionLock-java.util.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>> regionInfos,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> description,
@@ -1320,34 +1324,34 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<div class="block">Master based locks on namespaces/tables/regions.</div>
</td>
</tr>
-<tr id="i139" class="rowColor">
+<tr id="i140" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#registerConfigurationObservers--">registerConfigurationObservers</a></span>()</code> </td>
</tr>
-<tr id="i140" class="altColor">
+<tr id="i141" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#registerService-com.google.protobuf.Service-">registerService</a></span>(com.google.protobuf.Service instance)</code>
<div class="block">Registers a new protocol buffer <code>Service</code> subclass as a coprocessor endpoint to be
available for handling</div>
</td>
</tr>
-<tr id="i141" class="rowColor">
+<tr id="i142" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#remoteProcedureComplete-long-java.lang.Throwable-">remoteProcedureComplete</a></span>(long procId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a> error)</code> </td>
</tr>
-<tr id="i142" class="altColor">
+<tr id="i143" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeFromMovedRegions-java.lang.String-">removeFromMovedRegions</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> encodedName)</code> </td>
</tr>
-<tr id="i143" class="rowColor">
+<tr id="i144" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeRegion-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.ServerName-">removeRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> r,
<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> destination)</code>
<div class="block">Removes the given Region from the list of onlineRegions.</div>
</td>
</tr>
-<tr id="i144" class="altColor">
+<tr id="i145" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportFileArchivalForQuotas-org.apache.hadoop.hbase.TableName-java.util.Collection-">reportFileArchivalForQuotas</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>>> archivedFiles)</code>
@@ -1355,90 +1359,90 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
just moved to the archive directory.</div>
</td>
</tr>
-<tr id="i145" class="rowColor">
+<tr id="i146" class="altColor">
<td class="colFirst"><code>private org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportForDuty--">reportForDuty</a></span>()</code> </td>
</tr>
-<tr id="i146" class="altColor">
+<tr id="i147" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportProcedureDone-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportProcedureDoneRequest-">reportProcedureDone</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportProcedureDoneRequest request)</code> </td>
</tr>
-<tr id="i147" class="rowColor">
+<tr id="i148" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionSizesForQuotas-org.apache.hadoop.hbase.quotas.RegionSizeStore-">reportRegionSizesForQuotas</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStore.html" title="interface in org.apache.hadoop.hbase.quotas">RegionSizeStore</a> regionSizeStore)</code>
<div class="block">Reports the given map of Regions and their size on the filesystem to the active Master.</div>
</td>
</tr>
-<tr id="i148" class="altColor">
+<tr id="i149" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.RegionStateTransitionContext</a> context)</code>
<div class="block">Notify master that a handler requests to change a region state</div>
</td>
</tr>
-<tr id="i149" class="rowColor">
+<tr id="i150" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#run--">run</a></span>()</code>
<div class="block">The HRegionServer sticks in this loop until closed.</div>
</td>
</tr>
-<tr id="i150" class="altColor">
+<tr id="i151" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">sendShutdownInterrupt</a></span>()</code>
<div class="block">Called on stop/abort before closing the cluster connection and meta locator.</div>
</td>
</tr>
-<tr id="i151" class="rowColor">
+<tr id="i152" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupClusterConnection--">setupClusterConnection</a></span>()</code>
<div class="block">Setup our cluster connection if not already initialized.</div>
</td>
</tr>
-<tr id="i152" class="altColor">
+<tr id="i153" class="rowColor">
<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/util/NettyEventLoopGroupConfig.html" title="class in org.apache.hadoop.hbase.util">NettyEventLoopGroupConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupNetty-org.apache.hadoop.conf.Configuration-">setupNetty</a></span>(org.apache.hadoop.conf.Configuration conf)</code> </td>
</tr>
-<tr id="i153" class="rowColor">
+<tr id="i154" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupWALAndReplication--">setupWALAndReplication</a></span>()</code>
<div class="block">Setup WAL log and replication if enabled.</div>
</td>
</tr>
-<tr id="i154" class="altColor">
+<tr id="i155" class="rowColor">
<td class="colFirst"><code>private static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupWindows-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.conf.ConfigurationManager-">setupWindows</a></span>(org.apache.hadoop.conf.Configuration conf,
<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a> cm)</code>
<div class="block">If running on Windows, do windows-specific setup.</div>
</td>
</tr>
-<tr id="i155" class="rowColor">
+<tr id="i156" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#shutdownWAL-boolean-">shutdownWAL</a></span>(boolean close)</code> </td>
</tr>
-<tr id="i156" class="altColor">
+<tr id="i157" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sleep-long-">sleep</a></span>(long millis)</code> </td>
</tr>
-<tr id="i157" class="rowColor">
+<tr id="i158" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#startHeapMemoryManager--">startHeapMemoryManager</a></span>()</code> </td>
</tr>
-<tr id="i158" class="altColor">
+<tr id="i159" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#startReplicationService--">startReplicationService</a></span>()</code>
<div class="block">Start up replication source and sink handlers.</div>
</td>
</tr>
-<tr id="i159" class="rowColor">
+<tr id="i160" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#startServices--">startServices</a></span>()</code> </td>
</tr>
-<tr id="i160" class="altColor">
+<tr id="i161" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-">stop</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code>
<div class="block">Stop this service.</div>
</td>
</tr>
-<tr id="i161" class="rowColor">
+<tr id="i162" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-boolean-org.apache.hadoop.hbase.security.User-">stop</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg,
boolean force,
@@ -1446,61 +1450,61 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<div class="block">Stops the regionserver.</div>
</td>
</tr>
-<tr id="i162" class="altColor">
+<tr id="i163" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stopServiceThreads--">stopServiceThreads</a></span>()</code>
<div class="block">Wait on all threads to finish.</div>
</td>
</tr>
-<tr id="i163" class="rowColor">
+<tr id="i164" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#toString--">toString</a></span>()</code> </td>
</tr>
-<tr id="i164" class="altColor">
+<tr id="i165" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#triggerFlushInPrimaryRegion-org.apache.hadoop.hbase.regionserver.HRegion-">triggerFlushInPrimaryRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> region)</code>
<div class="block">Trigger a flush in the primary region replica if this region is a secondary replica.</div>
</td>
</tr>
-<tr id="i165" class="rowColor">
+<tr id="i166" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tryRegionServerReport-long-long-">tryRegionServerReport</a></span>(long reportStartTime,
long reportEndTime)</code> </td>
</tr>
-<tr id="i166" class="altColor">
+<tr id="i167" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#unassign-byte:A-">unassign</a></span>(byte[] regionName)</code>
<div class="block">Unassign the given region from the current regionserver and assign it randomly.</div>
</td>
</tr>
-<tr id="i167" class="rowColor">
+<tr id="i168" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateConfiguration--">updateConfiguration</a></span>()</code>
<div class="block">Reload the configuration from disk.</div>
</td>
</tr>
-<tr id="i168" class="altColor">
+<tr id="i169" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateRegionFavoredNodesMapping-java.lang.String-java.util.List-">updateRegionFavoredNodesMapping</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> encodedRegionName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ServerName> favoredNodes)</code>
<div class="block">Used to update the favored nodes mapping when required.</div>
</td>
</tr>
-<tr id="i169" class="rowColor">
+<tr id="i170" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForMasterActive--">waitForMasterActive</a></span>()</code> </td>
</tr>
-<tr id="i170" class="altColor">
+<tr id="i171" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForServerOnline--">waitForServerOnline</a></span>()</code> </td>
</tr>
-<tr id="i171" class="rowColor">
+<tr id="i172" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitOnAllRegionsToClose-boolean-">waitOnAllRegionsToClose</a></span>(boolean abort)</code>
<div class="block">Wait on regions close.</div>
</td>
</tr>
-<tr id="i172" class="altColor">
+<tr id="i173" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRollRequestFinished--">walRollRequestFinished</a></span>()</code>
<div class="block">For testing</div>
@@ -1541,7 +1545,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>INIT_PAUSE_TIME_MS</h4>
-<pre>private static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.228">INIT_PAUSE_TIME_MS</a></pre>
+<pre>private static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.230">INIT_PAUSE_TIME_MS</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.INIT_PAUSE_TIME_MS">Constant Field Values</a></dd>
@@ -1554,7 +1558,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
-<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.230">LOG</a></pre>
+<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.232">LOG</a></pre>
</li>
</ul>
<a name="TEST_SKIP_REPORTING_TRANSITION">
@@ -1563,7 +1567,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>TEST_SKIP_REPORTING_TRANSITION</h4>
-<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.237">TEST_SKIP_REPORTING_TRANSITION</a></pre>
+<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.239">TEST_SKIP_REPORTING_TRANSITION</a></pre>
<div class="block">For testing only! Set to true to skip notifying region assignment to master .</div>
</li>
</ul>
@@ -1573,7 +1577,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>regionsInTransitionInRS</h4>
-<pre>protected final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.242">regionsInTransitionInRS</a></pre>
+<pre>protected final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.244">regionsInTransitionInRS</a></pre>
</li>
</ul>
<a name="cacheFlusher">
@@ -1582,7 +1586,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>cacheFlusher</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreFlusher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.246">cacheFlusher</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreFlusher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.248">cacheFlusher</a></pre>
</li>
</ul>
<a name="hMemManager">
@@ -1591,7 +1595,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>hMemManager</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.248">hMemManager</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.250">hMemManager</a></pre>
</li>
</ul>
<a name="clusterConnection">
@@ -1600,7 +1604,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>clusterConnection</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.258">clusterConnection</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.260">clusterConnection</a></pre>
<div class="block">Cluster connection to be shared by services.
Initialized at server startup and closed when server shuts down.
Clients must never close it explicitly.
@@ -1615,7 +1619,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>metaTableLocator</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html" title="class in org.apache.hadoop.hbase.zookeeper">MetaTableLocator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.266">metaTableLocator</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html" title="class in org.apache.hadoop.hbase.zookeeper">MetaTableLocator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.268">metaTableLocator</a></pre>
</li>
</ul>
<a name="tableDescriptors">
@@ -1624,7 +1628,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>tableDescriptors</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.271">tableDescriptors</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.273">tableDescriptors</a></pre>
<div class="block">Go here to get table descriptors.</div>
</li>
</ul>
@@ -1634,7 +1638,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>replicationSourceHandler</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.274">replicationSourceHandler</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.276">replicationSourceHandler</a></pre>
</li>
</ul>
<a name="replicationSinkHandler">
@@ -1643,7 +1647,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>replicationSinkHandler</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSinkService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.275">replicationSinkHandler</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSinkService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.277">replicationSinkHandler</a></pre>
</li>
</ul>
<a name="compactSplitThread">
@@ -1652,7 +1656,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>compactSplitThread</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactSplit.html" title="class in org.apache.hadoop.hbase.regionserver">CompactSplit</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.278">compactSplitThread</a></pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactSplit.html" title="class in org.apache.hadoop.hbase.regionserver">CompactSplit</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.280">compactSplitThread</a></pre>
</li>
</ul>
<a name="onlineRegions">
@@ -1661,7 +1665,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>onlineRegions</h4>
-<pre>protected final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.284">onlineRegions</a></pre>
+<pre>protected final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.286">onlineRegions</a></pre>
<div class="block">Map of regions currently being served by this region server. Key is the
encoded region name. All access should be synchronized.</div>
</li>
@@ -1672,7 +1676,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>regionFavoredNodesMap</h4>
-<pre>protected final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>[]> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.295">regionFavoredNodesMap</a></pre>
+<pre>protected final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>[]> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.297">regionFavoredNodesMap</a></pre>
<div class="block">Map of encoded region names to the DataNode locations they should be hosted on
We store the value as InetSocketAddress since this is used only in HDFS
API (create() that takes favored nodes as hints for placing file blocks).
@@ -1688,7 +1692,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>leases</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.html" title="class in org.apache.hadoop.hbase.regionserver">Leases</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.299">leases</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.html" title="class in org.apache.hadoop.hbase.regionserver">Leases</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.301">leases</a></pre>
</li>
</ul>
<a name="executorService">
@@ -1697,7 +1701,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>executorService</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.302">executorService</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.304">executorService</a></pre>
</li>
</ul>
<a name="fsOk">
@@ -1706,7 +1710,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>fsOk</h4>
-<pre>protected volatile boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.305">fsOk</a></pre>
+<pre>protected volatile boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.307">fsOk</a></pre>
</li>
</ul>
<a name="fs">
@@ -1715,7 +1719,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>fs</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.306">fs</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.308">fs</a></pre>
</li>
</ul>
<a name="walFs">
@@ -1724,7 +1728,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>walFs</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.307">walFs</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.309">walFs</a></pre>
</li>
</ul>
<a name="stopped">
@@ -1733,7 +1737,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>stopped</h4>
-<pre>private volatile boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.312">stopped</a></pre>
+<pre>private volatile boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.314">stopped</a></pre>
</li>
</ul>
<a name="abortRequested">
@@ -1742,7 +1746,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>abortRequested</h4>
-<pre>private volatile boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.316">abortRequested</a></pre>
+<pre>private volatile boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.318">abortRequested</a></pre>
</li>
</ul>
<a name="rowlocks">
@@ -1751,7 +1755,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>rowlocks</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.318">rowlocks</a></pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.320">rowlocks</a></pre>
</li>
</ul>
<a name="stopping">
@@ -1760,7 +1764,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>stopping</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.322">stopping</a></pre>
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.324">stopping</a></pre>
</li>
</ul>
<a name="killed">
@@ -1769,7 +1773,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>killed</h4>
-<pre>volatile boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.324">killed</a></pre>
+<pre>volatile boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.326">killed</a></pre>
</li>
</ul>
<a name="shutDown">
@@ -1778,7 +1782,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>shutDown</h4>
-<pre>private volatile boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.326">shutDown</a></pre>
+<pre>private volatile boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.328">shutDown</a></pre>
</li>
</ul>
<a name="conf">
@@ -1787,7 +1791,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>conf</h4>
-<pre>protected final org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.328">conf</a></pre>
+<pre>protected final org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.330">conf</a></pre>
</li>
</ul>
<a name="rootDir">
@@ -1796,7 +1800,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>rootDir</h4>
-<pre>private org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.330">rootDir</a></pre>
+<pre>private org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.332">rootDir</a></pre>
</li>
</ul>
<a name="walRootDir">
@@ -1805,7 +1809,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>walRootDir</h4>
-<pre>private org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.331">walRootDir</a></pre>
+<pre>private org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.333">walRootDir</a></pre>
</li>
</ul>
<a name="lock">
@@ -1814,7 +1818,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>lock</h4>
-<pre>protected final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.333">lock</a></pre>
+<pre>protected final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.335">lock</a></pre>
</li>
</ul>
<a name="numRetries">
@@ -1823,7 +1827,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>numRetries</h4>
-<pre>final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.335">numRetries</a></pre>
+<pre>final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.337">numRetries</a></pre>
</li>
</ul>
<a name="threadWakeFrequency">
@@ -1832,7 +1836,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>threadWakeFrequency</h4>
-<pre>protected final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.336">threadWakeFrequency</a></pre>
+<pre>protected final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.338">threadWakeFrequency</a></pre>
</li>
</ul>
<a name="msgInterval">
@@ -1841,7 +1845,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>msgInterval</h4>
-<pre>protected final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.337">msgInterval</a></pre>
+<pre>protected final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.339">msgInterval</a></pre>
</li>
</ul>
<a name="numRegionsToReport">
@@ -1850,7 +1854,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>numRegionsToReport</h4>
-<pre>protected final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.339">numRegionsToReport</a></pre>
+<pre>protected final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.341">numRegionsToReport</a></pre>
</li>
</ul>
<a name="rssStub">
@@ -1859,7 +1863,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>rssStub</h4>
-<pre>private volatile org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStatusService.BlockingInterface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.342">rssStub</a></pre>
+<pre>private volatile org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStatusService.BlockingInterface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.344">rssStub</a></pre>
</li>
</ul>
<a name="lockStub">
@@ -1868,7 +1872,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>lockStub</h4>
-<pre>private volatile org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockService.BlockingInterface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.343">lockStub</a></pre>
+<pre>private volatile org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockService.BlockingInterface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.345">lockStub</a></pre>
</li>
</ul>
<a name="rpcClient">
@@ -1877,7 +1881,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>rpcClient</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.345">rpcClient</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.347">rpcClient</a></pre>
</li>
</ul>
<a name="rpcRetryingCallerFactory">
@@ -1886,7 +1890,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>rpcRetryingCallerFactory</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCallerFactory.html" title="class in org.apache.hadoop.hbase.client">RpcRetryingCallerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.347">rpcRetryingCallerFactory</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCallerFactory.html" title="class in org.apache.hadoop.hbase.client">RpcRetryingCallerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.349">rpcRetryingCallerFactory</a></pre>
</li>
</ul>
<a name="rpcControllerFactory">
@@ -1895,7 +1899,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>rpcControllerFactory</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcControllerFactory.html" title="class in org.apache.hadoop.hbase.ipc">RpcControllerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.348">rpcControllerFactory</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcControllerFactory.html" title="class in org.apache.hadoop.hbase.ipc">RpcControllerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.350">rpcControllerFactory</a></pre>
</li>
</ul>
<a name="uncaughtExceptionHandler">
@@ -1904,7 +1908,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>uncaughtExceptionHandler</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.UncaughtExceptionHandler.html?is-external=true" title="class or interface in java.lang">Thread.UncaughtExceptionHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.350">uncaughtExceptionHandler</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.UncaughtExceptionHandler.html?is-external=true" title="class or interface in java.lang">Thread.UncaughtExceptionHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.352">uncaughtExceptionHandler</a></pre>
</li>
</ul>
<a name="infoServer">
@@ -1913,7 +1917,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>infoServer</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/http/InfoServer.html" title="class in org.apache.hadoop.hbase.http">InfoServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.355">infoServer</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/http/InfoServer.html" title="class in org.apache.hadoop.hbase.http">InfoServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.357">infoServer</a></pre>
</li>
</ul>
<a name="pauseMonitor">
@@ -1922,7 +1926,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>pauseMonitor</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/util/JvmPauseMonitor.html" title="class in org.apache.hadoop.hbase.util">JvmPauseMonitor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.356">pauseMonitor</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/util/JvmPauseMonitor.html" title="class in org.apache.hadoop.hbase.util">JvmPauseMonitor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.358">pauseMonitor</a></pre>
</li>
</ul>
<a name="REGIONSERVER">
@@ -1931,7 +1935,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>REGIONSERVER</h4>
-<pre>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.359">REGIONSERVER</a></pre>
+<pre>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.361">REGIONSERVER</a></pre>
<div class="block">region server process name</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
@@ -1945,7 +1949,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>metricsRegionServer</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.361">metricsRegionServer</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.363">metricsRegionServer</a></pre>
</li>
</ul>
<a name="metricsTable">
@@ -1954,7 +1958,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>metricsTable</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.362">metricsTable</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.364">metricsTable</a></pre>
</li>
</ul>
<a name="spanReceiverHost">
@@ -1963,7 +1967,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>spanReceiverHost</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/trace/SpanReceiverHost.html" title="class in org.apache.hadoop.hbase.trace">SpanReceiverHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.363">spanReceiverHost</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/trace/SpanReceiverHost.html" title="class in org.apache.hadoop.hbase.trace">SpanReceiverHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.365">spanReceiverHost</a></pre>
</li>
</ul>
<a name="choreService">
@@ -1972,7 +1976,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>choreService</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/ChoreService.html" title="class in org.apache.hadoop.hbase">ChoreService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.368">choreService</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/ChoreService.html" title="class in org.apache.hadoop.hbase">ChoreService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.370">choreService</a></pre>
<div class="block">ChoreService used to schedule tasks that we want to run periodically</div>
</li>
</ul>
@@ -1982,7 +1986,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>compactionChecker</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.373">compactionChecker</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.375">compactionChecker</a></pre>
</li>
</ul>
<a name="periodicFlusher">
@@ -1991,7 +1995,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>periodicFlusher</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.378">periodicFlusher</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.380">periodicFlusher</a></pre>
</li>
</ul>
<a name="walFactory">
@@ -2000,7 +2004,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>walFactory</h4>
-<pre>protected volatile <a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.html" title="class in org.apache.hadoop.hbase.wal">WALFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.380">walFactory</a></pre>
+<pre>protected volatile <a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.html" title="class in org.apache.hadoop.hbase.wal">WALFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.382">walFactory</a></pre>
</li>
</ul>
<a name="walRoller">
@@ -2009,7 +2013,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>walRoller</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/LogRoller.html" title="class in org.apache.hadoop.hbase.regionserver">LogRoller</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.384">walRoller</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/LogRoller.html" title="class in org.apache.hadoop.hbase.regionserver">LogRoller</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.386">walRoller</a></pre>
</li>
</ul>
<a name="procedureResultReporter">
@@ -2018,7 +2022,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>procedureResultReporter</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/RemoteProcedureResultReporter.html" title="class in org.apache.hadoop.hbase.regionserver">RemoteProcedureResultReporter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.387">procedureResultReporter</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/RemoteProcedureResultReporter.html" title="class in org.apache.hadoop.hbase.regionserver">RemoteProcedureResultReporter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.389">procedureResultReporter</a></pre>
</li>
</ul>
<a name="online">
@@ -2027,7 +2031,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>online</h4>
-<pre>final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.390">online</a></pre>
+<pre>final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.392">online</a></pre>
</li>
</ul>
<a name="zooKeeper">
@@ -2036,7 +2040,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>zooKeeper</h4>
-<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.393">zooKeeper</a></pre>
+<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.395">zooKeeper</a></pre>
</li>
</ul>
<a name="masterAddressTracker">
@@ -2045,7 +2049,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>masterAddressTracker</h4>
-<pre>private final <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterAddressTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.396">masterAddressTracker</a></pre>
+<pre>private final <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterAddressTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.398">masterAddressTracker</a></pre>
</li>
</ul>
<a name="clusterStatusTracker">
@@ -2054,7 +2058,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>clusterStatusTracker</h4>
-<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ClusterStatusTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">ClusterStatusTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.399">clusterStatusTracker</a></pre>
+<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ClusterStatusTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">ClusterStatusTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.401">clusterStatusTracker</a></pre>
</li>
</ul>
<a name="splitLogWorker">
@@ -2063,7 +2067,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>splitLogWorker</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.html" title="class in org.apache.hadoop.hbase.regionserver">SplitLogWorker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.402">splitLogWorker</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.html" title="class in org.apache.hadoop.hbase.regionserver">SplitLogWorker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.404">splitLogWorker</a></pre>
</li>
</ul>
<a name="sleeper">
@@ -2072,7 +2076,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>sleeper</h4>
-<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/util/Sleeper.html" title="class in org.apache.hadoop.hbase.util">Sleeper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.405">sleeper</a></pre>
+<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/util/Sleeper.html" title="class in org.apache.hadoop.hbase.util">Sleeper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.407">sleeper</a></pre>
</li>
</ul>
<a name="operationTimeout">
@@ -2081,7 +2085,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>operationTimeout</h4>
-<pre>private final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.407">operationTimeout</a></pre>
+<pre>private final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.409">operationTimeout</a></pre>
</li>
</ul>
<a name="shortOperationTimeout">
@@ -2090,7 +2094,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>shortOperationTimeout</h4>
-<pre>private final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.408">shortOperationTimeout</a></pre>
+<pre>private final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.410">shortOperationTimeout</a></pre>
</li>
</ul>
<a name="regionServerAccounting">
@@ -2099,7 +2103,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>regionServerAccounting</h4>
-<pre>private final <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.410">regionServerAccounting</a></pre>
+<pre>private final <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.412">regionServerAccounting</a></pre>
</li>
</ul>
<a name="cacheConfig">
@@ -2108,7 +2112,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>cacheConfig</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.413">cacheConfig</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.415">cacheConfig</a></pre>
</li>
</ul>
<a name="mobCacheConfig">
@@ -2117,7 +2121,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>mobCacheConfig</h4>
-<pre>final <a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.415">mobCacheConfig</a></pre>
+<pre>final <a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.417">mobCacheConfig</a></pre>
</li>
</ul>
<a name="healthCheckChore">
@@ -2126,7 +2130,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>healthCheckChore</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/HealthCheckChore.html" title="class in org.apache.hadoop.hbase">HealthCheckChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.418">healthCheckChore</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/HealthCheckChore.html" title="class in org.apache.hadoop.hbase">HealthCheckChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.420">healthCheckChore</a></pre>
<div class="block">The health check chore.</div>
</li>
</ul>
@@ -2136,7 +2140,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>nonceManagerChore</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.421">nonceManagerChore</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.423">nonceManagerChore</a></pre>
<div class="block">The nonce manager chore.</div>
</li>
</ul>
@@ -2146,7 +2150,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>coprocessorServiceHandlers</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,com.google.protobuf.Service> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.423">coprocessorServiceHandlers</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,com.google.protobuf.Service> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.425">coprocessorServiceHandlers</a></pre>
</li>
</ul>
<a name="serverName">
@@ -2155,7 +2159,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
<ul class="blockList">
<li class="blockList">
<h4>serverName</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">S
<TRUNCATED>
[07/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlockCountsPerFile.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlockCountsPerFile.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlockCountsPerFile.html
index f118c08..cd9722f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlockCountsPerFile.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlockCountsPerFile.html
@@ -206,140 +206,175 @@
<span class="sourceLineNo">198</span> */<a name="line.198"></a>
<span class="sourceLineNo">199</span> public static int validateBlockAddition(Cacheable existing, Cacheable newBlock,<a name="line.199"></a>
<span class="sourceLineNo">200</span> BlockCacheKey cacheKey) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span> int comparison = compareCacheBlock(existing, newBlock, true);<a name="line.201"></a>
+<span class="sourceLineNo">201</span> int comparison = compareCacheBlock(existing, newBlock, false);<a name="line.201"></a>
<span class="sourceLineNo">202</span> if (comparison != 0) {<a name="line.202"></a>
-<span class="sourceLineNo">203</span> LOG.warn("Cached block contents differ, trying to just compare the block contents " +<a name="line.203"></a>
-<span class="sourceLineNo">204</span> "without the next block. CacheKey: " + cacheKey);<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span> // compare the contents, if they are not equal, we are in big trouble<a name="line.206"></a>
-<span class="sourceLineNo">207</span> int comparisonWithoutNextBlockMetadata = compareCacheBlock(existing, newBlock, false);<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span> if (comparisonWithoutNextBlockMetadata != 0) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span> throw new RuntimeException("Cached block contents differ, which should not have happened."<a name="line.210"></a>
-<span class="sourceLineNo">211</span> + "cacheKey:" + cacheKey);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> }<a name="line.212"></a>
-<span class="sourceLineNo">213</span> }<a name="line.213"></a>
-<span class="sourceLineNo">214</span> return comparison;<a name="line.214"></a>
-<span class="sourceLineNo">215</span> }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> /**<a name="line.217"></a>
-<span class="sourceLineNo">218</span> * Use one of these to keep a running account of cached blocks by file. Throw it away when done.<a name="line.218"></a>
-<span class="sourceLineNo">219</span> * This is different than metrics in that it is stats on current state of a cache.<a name="line.219"></a>
-<span class="sourceLineNo">220</span> * See getLoadedCachedBlocksByFile<a name="line.220"></a>
-<span class="sourceLineNo">221</span> */<a name="line.221"></a>
-<span class="sourceLineNo">222</span> @JsonIgnoreProperties({"cachedBlockStatsByFile"})<a name="line.222"></a>
-<span class="sourceLineNo">223</span> public static class CachedBlocksByFile {<a name="line.223"></a>
-<span class="sourceLineNo">224</span> private int count;<a name="line.224"></a>
-<span class="sourceLineNo">225</span> private int dataBlockCount;<a name="line.225"></a>
-<span class="sourceLineNo">226</span> private long size;<a name="line.226"></a>
-<span class="sourceLineNo">227</span> private long dataSize;<a name="line.227"></a>
-<span class="sourceLineNo">228</span> private final long now = System.nanoTime();<a name="line.228"></a>
-<span class="sourceLineNo">229</span> /**<a name="line.229"></a>
-<span class="sourceLineNo">230</span> * How many blocks to look at before we give up.<a name="line.230"></a>
-<span class="sourceLineNo">231</span> * There could be many millions of blocks. We don't want the<a name="line.231"></a>
-<span class="sourceLineNo">232</span> * ui to freeze while we run through 1B blocks... users will<a name="line.232"></a>
-<span class="sourceLineNo">233</span> * think hbase dead. UI displays warning in red when stats<a name="line.233"></a>
-<span class="sourceLineNo">234</span> * are incomplete.<a name="line.234"></a>
-<span class="sourceLineNo">235</span> */<a name="line.235"></a>
-<span class="sourceLineNo">236</span> private final int max;<a name="line.236"></a>
-<span class="sourceLineNo">237</span> public static final int DEFAULT_MAX = 1000000;<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span> CachedBlocksByFile() {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> this(null);<a name="line.240"></a>
-<span class="sourceLineNo">241</span> }<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span> CachedBlocksByFile(final Configuration c) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span> this.max = c == null? DEFAULT_MAX: c.getInt("hbase.ui.blockcache.by.file.max", DEFAULT_MAX);<a name="line.244"></a>
-<span class="sourceLineNo">245</span> }<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span> /**<a name="line.247"></a>
-<span class="sourceLineNo">248</span> * Map by filename. use concurent utils because we want our Map and contained blocks sorted.<a name="line.248"></a>
-<span class="sourceLineNo">249</span> */<a name="line.249"></a>
-<span class="sourceLineNo">250</span> private NavigableMap<String, NavigableSet<CachedBlock>> cachedBlockByFile = new ConcurrentSkipListMap<>();<a name="line.250"></a>
-<span class="sourceLineNo">251</span> FastLongHistogram hist = new FastLongHistogram();<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span> /**<a name="line.253"></a>
-<span class="sourceLineNo">254</span> * @param cb<a name="line.254"></a>
-<span class="sourceLineNo">255</span> * @return True if full.... if we won't be adding any more.<a name="line.255"></a>
-<span class="sourceLineNo">256</span> */<a name="line.256"></a>
-<span class="sourceLineNo">257</span> public boolean update(final CachedBlock cb) {<a name="line.257"></a>
-<span class="sourceLineNo">258</span> if (isFull()) return true;<a name="line.258"></a>
-<span class="sourceLineNo">259</span> NavigableSet<CachedBlock> set = this.cachedBlockByFile.get(cb.getFilename());<a name="line.259"></a>
-<span class="sourceLineNo">260</span> if (set == null) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span> set = new ConcurrentSkipListSet<>();<a name="line.261"></a>
-<span class="sourceLineNo">262</span> this.cachedBlockByFile.put(cb.getFilename(), set);<a name="line.262"></a>
-<span class="sourceLineNo">263</span> }<a name="line.263"></a>
-<span class="sourceLineNo">264</span> set.add(cb);<a name="line.264"></a>
-<span class="sourceLineNo">265</span> this.size += cb.getSize();<a name="line.265"></a>
-<span class="sourceLineNo">266</span> this.count++;<a name="line.266"></a>
-<span class="sourceLineNo">267</span> BlockType bt = cb.getBlockType();<a name="line.267"></a>
-<span class="sourceLineNo">268</span> if (bt != null && bt.isData()) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> this.dataBlockCount++;<a name="line.269"></a>
-<span class="sourceLineNo">270</span> this.dataSize += cb.getSize();<a name="line.270"></a>
-<span class="sourceLineNo">271</span> }<a name="line.271"></a>
-<span class="sourceLineNo">272</span> long age = (this.now - cb.getCachedTime())/NANOS_PER_SECOND;<a name="line.272"></a>
-<span class="sourceLineNo">273</span> this.hist.add(age, 1);<a name="line.273"></a>
-<span class="sourceLineNo">274</span> return false;<a name="line.274"></a>
-<span class="sourceLineNo">275</span> }<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span> /**<a name="line.277"></a>
-<span class="sourceLineNo">278</span> * @return True if full; i.e. there are more items in the cache but we only loaded up<a name="line.278"></a>
-<span class="sourceLineNo">279</span> * the maximum set in configuration <code>hbase.ui.blockcache.by.file.max</code><a name="line.279"></a>
-<span class="sourceLineNo">280</span> * (Default: DEFAULT_MAX).<a name="line.280"></a>
-<span class="sourceLineNo">281</span> */<a name="line.281"></a>
-<span class="sourceLineNo">282</span> public boolean isFull() {<a name="line.282"></a>
-<span class="sourceLineNo">283</span> return this.count >= this.max;<a name="line.283"></a>
-<span class="sourceLineNo">284</span> }<a name="line.284"></a>
-<span class="sourceLineNo">285</span><a name="line.285"></a>
-<span class="sourceLineNo">286</span> public NavigableMap<String, NavigableSet<CachedBlock>> getCachedBlockStatsByFile() {<a name="line.286"></a>
-<span class="sourceLineNo">287</span> return this.cachedBlockByFile;<a name="line.287"></a>
-<span class="sourceLineNo">288</span> }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span> /**<a name="line.290"></a>
-<span class="sourceLineNo">291</span> * @return count of blocks in the cache<a name="line.291"></a>
-<span class="sourceLineNo">292</span> */<a name="line.292"></a>
-<span class="sourceLineNo">293</span> public int getCount() {<a name="line.293"></a>
-<span class="sourceLineNo">294</span> return count;<a name="line.294"></a>
-<span class="sourceLineNo">295</span> }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span> public int getDataCount() {<a name="line.297"></a>
-<span class="sourceLineNo">298</span> return dataBlockCount;<a name="line.298"></a>
-<span class="sourceLineNo">299</span> }<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span> /**<a name="line.301"></a>
-<span class="sourceLineNo">302</span> * @return size of blocks in the cache<a name="line.302"></a>
-<span class="sourceLineNo">303</span> */<a name="line.303"></a>
-<span class="sourceLineNo">304</span> public long getSize() {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> return size;<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span> /**<a name="line.308"></a>
-<span class="sourceLineNo">309</span> * @return Size of data.<a name="line.309"></a>
-<span class="sourceLineNo">310</span> */<a name="line.310"></a>
-<span class="sourceLineNo">311</span> public long getDataSize() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> return dataSize;<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span> public AgeSnapshot getAgeInCacheSnapshot() {<a name="line.315"></a>
-<span class="sourceLineNo">316</span> return new AgeSnapshot(this.hist);<a name="line.316"></a>
-<span class="sourceLineNo">317</span> }<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span> @Override<a name="line.319"></a>
-<span class="sourceLineNo">320</span> public String toString() {<a name="line.320"></a>
-<span class="sourceLineNo">321</span> AgeSnapshot snapshot = getAgeInCacheSnapshot();<a name="line.321"></a>
-<span class="sourceLineNo">322</span> return "count=" + count + ", dataBlockCount=" + dataBlockCount + ", size=" + size +<a name="line.322"></a>
-<span class="sourceLineNo">323</span> ", dataSize=" + getDataSize() +<a name="line.323"></a>
-<span class="sourceLineNo">324</span> ", mean age=" + snapshot.getMean() +<a name="line.324"></a>
-<span class="sourceLineNo">325</span> ", min age=" + snapshot.getMin() +<a name="line.325"></a>
-<span class="sourceLineNo">326</span> ", max age=" + snapshot.getMax() +<a name="line.326"></a>
-<span class="sourceLineNo">327</span> ", 75th percentile age=" + snapshot.get75thPercentile() +<a name="line.327"></a>
-<span class="sourceLineNo">328</span> ", 95th percentile age=" + snapshot.get95thPercentile() +<a name="line.328"></a>
-<span class="sourceLineNo">329</span> ", 98th percentile age=" + snapshot.get98thPercentile() +<a name="line.329"></a>
-<span class="sourceLineNo">330</span> ", 99th percentile age=" + snapshot.get99thPercentile() +<a name="line.330"></a>
-<span class="sourceLineNo">331</span> ", 99.9th percentile age=" + snapshot.get99thPercentile();<a name="line.331"></a>
-<span class="sourceLineNo">332</span> }<a name="line.332"></a>
-<span class="sourceLineNo">333</span> }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>}<a name="line.334"></a>
+<span class="sourceLineNo">203</span> throw new RuntimeException("Cached block contents differ, which should not have happened."<a name="line.203"></a>
+<span class="sourceLineNo">204</span> + "cacheKey:" + cacheKey);<a name="line.204"></a>
+<span class="sourceLineNo">205</span> }<a name="line.205"></a>
+<span class="sourceLineNo">206</span> if ((existing instanceof HFileBlock) && (newBlock instanceof HFileBlock)) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> comparison = ((HFileBlock) existing).getNextBlockOnDiskSize()<a name="line.207"></a>
+<span class="sourceLineNo">208</span> - ((HFileBlock) newBlock).getNextBlockOnDiskSize();<a name="line.208"></a>
+<span class="sourceLineNo">209</span> }<a name="line.209"></a>
+<span class="sourceLineNo">210</span> return comparison;<a name="line.210"></a>
+<span class="sourceLineNo">211</span> }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span> /**<a name="line.213"></a>
+<span class="sourceLineNo">214</span> * Because of the region splitting, it's possible that the split key locate in the middle of a<a name="line.214"></a>
+<span class="sourceLineNo">215</span> * block. So it's possible that both the daughter regions load the same block from their parent<a name="line.215"></a>
+<span class="sourceLineNo">216</span> * HFile. When pread, we don't force the read to read all of the next block header. So when two<a name="line.216"></a>
+<span class="sourceLineNo">217</span> * threads try to cache the same block, it's possible that one thread read all of the next block<a name="line.217"></a>
+<span class="sourceLineNo">218</span> * header but the other one didn't. if the already cached block hasn't next block header but the<a name="line.218"></a>
+<span class="sourceLineNo">219</span> * new block to cache has, then we can replace the existing block with the new block for better<a name="line.219"></a>
+<span class="sourceLineNo">220</span> * performance.(HBASE-20447)<a name="line.220"></a>
+<span class="sourceLineNo">221</span> * @param blockCache BlockCache to check<a name="line.221"></a>
+<span class="sourceLineNo">222</span> * @param cacheKey the block cache key<a name="line.222"></a>
+<span class="sourceLineNo">223</span> * @param newBlock the new block which try to put into the block cache.<a name="line.223"></a>
+<span class="sourceLineNo">224</span> * @return true means need to replace existing block with new block for the same block cache key.<a name="line.224"></a>
+<span class="sourceLineNo">225</span> * false means just keep the existing block.<a name="line.225"></a>
+<span class="sourceLineNo">226</span> */<a name="line.226"></a>
+<span class="sourceLineNo">227</span> public static boolean shouldReplaceExistingCacheBlock(BlockCache blockCache,<a name="line.227"></a>
+<span class="sourceLineNo">228</span> BlockCacheKey cacheKey, Cacheable newBlock) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span> Cacheable existingBlock = blockCache.getBlock(cacheKey, false, false, false);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> try {<a name="line.230"></a>
+<span class="sourceLineNo">231</span> int comparison = BlockCacheUtil.validateBlockAddition(existingBlock, newBlock, cacheKey);<a name="line.231"></a>
+<span class="sourceLineNo">232</span> if (comparison < 0) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize, the new block has "<a name="line.233"></a>
+<span class="sourceLineNo">234</span> + "nextBlockOnDiskSize set. Caching new block.");<a name="line.234"></a>
+<span class="sourceLineNo">235</span> return true;<a name="line.235"></a>
+<span class="sourceLineNo">236</span> } else if (comparison > 0) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize, the existing block has "<a name="line.237"></a>
+<span class="sourceLineNo">238</span> + "nextBlockOnDiskSize set, Keeping cached block.");<a name="line.238"></a>
+<span class="sourceLineNo">239</span> return false;<a name="line.239"></a>
+<span class="sourceLineNo">240</span> } else {<a name="line.240"></a>
+<span class="sourceLineNo">241</span> LOG.warn("Caching an already cached block: {}. This is harmless and can happen in rare "<a name="line.241"></a>
+<span class="sourceLineNo">242</span> + "cases (see HBASE-8547)",<a name="line.242"></a>
+<span class="sourceLineNo">243</span> cacheKey);<a name="line.243"></a>
+<span class="sourceLineNo">244</span> return false;<a name="line.244"></a>
+<span class="sourceLineNo">245</span> }<a name="line.245"></a>
+<span class="sourceLineNo">246</span> } finally {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> // return the block since we need to decrement the count<a name="line.247"></a>
+<span class="sourceLineNo">248</span> blockCache.returnBlock(cacheKey, existingBlock);<a name="line.248"></a>
+<span class="sourceLineNo">249</span> }<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span> /**<a name="line.252"></a>
+<span class="sourceLineNo">253</span> * Use one of these to keep a running account of cached blocks by file. Throw it away when done.<a name="line.253"></a>
+<span class="sourceLineNo">254</span> * This is different than metrics in that it is stats on current state of a cache.<a name="line.254"></a>
+<span class="sourceLineNo">255</span> * See getLoadedCachedBlocksByFile<a name="line.255"></a>
+<span class="sourceLineNo">256</span> */<a name="line.256"></a>
+<span class="sourceLineNo">257</span> @JsonIgnoreProperties({"cachedBlockStatsByFile"})<a name="line.257"></a>
+<span class="sourceLineNo">258</span> public static class CachedBlocksByFile {<a name="line.258"></a>
+<span class="sourceLineNo">259</span> private int count;<a name="line.259"></a>
+<span class="sourceLineNo">260</span> private int dataBlockCount;<a name="line.260"></a>
+<span class="sourceLineNo">261</span> private long size;<a name="line.261"></a>
+<span class="sourceLineNo">262</span> private long dataSize;<a name="line.262"></a>
+<span class="sourceLineNo">263</span> private final long now = System.nanoTime();<a name="line.263"></a>
+<span class="sourceLineNo">264</span> /**<a name="line.264"></a>
+<span class="sourceLineNo">265</span> * How many blocks to look at before we give up.<a name="line.265"></a>
+<span class="sourceLineNo">266</span> * There could be many millions of blocks. We don't want the<a name="line.266"></a>
+<span class="sourceLineNo">267</span> * ui to freeze while we run through 1B blocks... users will<a name="line.267"></a>
+<span class="sourceLineNo">268</span> * think hbase dead. UI displays warning in red when stats<a name="line.268"></a>
+<span class="sourceLineNo">269</span> * are incomplete.<a name="line.269"></a>
+<span class="sourceLineNo">270</span> */<a name="line.270"></a>
+<span class="sourceLineNo">271</span> private final int max;<a name="line.271"></a>
+<span class="sourceLineNo">272</span> public static final int DEFAULT_MAX = 1000000;<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span> CachedBlocksByFile() {<a name="line.274"></a>
+<span class="sourceLineNo">275</span> this(null);<a name="line.275"></a>
+<span class="sourceLineNo">276</span> }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span> CachedBlocksByFile(final Configuration c) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> this.max = c == null? DEFAULT_MAX: c.getInt("hbase.ui.blockcache.by.file.max", DEFAULT_MAX);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span> /**<a name="line.282"></a>
+<span class="sourceLineNo">283</span> * Map by filename. use concurent utils because we want our Map and contained blocks sorted.<a name="line.283"></a>
+<span class="sourceLineNo">284</span> */<a name="line.284"></a>
+<span class="sourceLineNo">285</span> private NavigableMap<String, NavigableSet<CachedBlock>> cachedBlockByFile = new ConcurrentSkipListMap<>();<a name="line.285"></a>
+<span class="sourceLineNo">286</span> FastLongHistogram hist = new FastLongHistogram();<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span> /**<a name="line.288"></a>
+<span class="sourceLineNo">289</span> * @param cb<a name="line.289"></a>
+<span class="sourceLineNo">290</span> * @return True if full.... if we won't be adding any more.<a name="line.290"></a>
+<span class="sourceLineNo">291</span> */<a name="line.291"></a>
+<span class="sourceLineNo">292</span> public boolean update(final CachedBlock cb) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span> if (isFull()) return true;<a name="line.293"></a>
+<span class="sourceLineNo">294</span> NavigableSet<CachedBlock> set = this.cachedBlockByFile.get(cb.getFilename());<a name="line.294"></a>
+<span class="sourceLineNo">295</span> if (set == null) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span> set = new ConcurrentSkipListSet<>();<a name="line.296"></a>
+<span class="sourceLineNo">297</span> this.cachedBlockByFile.put(cb.getFilename(), set);<a name="line.297"></a>
+<span class="sourceLineNo">298</span> }<a name="line.298"></a>
+<span class="sourceLineNo">299</span> set.add(cb);<a name="line.299"></a>
+<span class="sourceLineNo">300</span> this.size += cb.getSize();<a name="line.300"></a>
+<span class="sourceLineNo">301</span> this.count++;<a name="line.301"></a>
+<span class="sourceLineNo">302</span> BlockType bt = cb.getBlockType();<a name="line.302"></a>
+<span class="sourceLineNo">303</span> if (bt != null && bt.isData()) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span> this.dataBlockCount++;<a name="line.304"></a>
+<span class="sourceLineNo">305</span> this.dataSize += cb.getSize();<a name="line.305"></a>
+<span class="sourceLineNo">306</span> }<a name="line.306"></a>
+<span class="sourceLineNo">307</span> long age = (this.now - cb.getCachedTime())/NANOS_PER_SECOND;<a name="line.307"></a>
+<span class="sourceLineNo">308</span> this.hist.add(age, 1);<a name="line.308"></a>
+<span class="sourceLineNo">309</span> return false;<a name="line.309"></a>
+<span class="sourceLineNo">310</span> }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span> /**<a name="line.312"></a>
+<span class="sourceLineNo">313</span> * @return True if full; i.e. there are more items in the cache but we only loaded up<a name="line.313"></a>
+<span class="sourceLineNo">314</span> * the maximum set in configuration <code>hbase.ui.blockcache.by.file.max</code><a name="line.314"></a>
+<span class="sourceLineNo">315</span> * (Default: DEFAULT_MAX).<a name="line.315"></a>
+<span class="sourceLineNo">316</span> */<a name="line.316"></a>
+<span class="sourceLineNo">317</span> public boolean isFull() {<a name="line.317"></a>
+<span class="sourceLineNo">318</span> return this.count >= this.max;<a name="line.318"></a>
+<span class="sourceLineNo">319</span> }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span> public NavigableMap<String, NavigableSet<CachedBlock>> getCachedBlockStatsByFile() {<a name="line.321"></a>
+<span class="sourceLineNo">322</span> return this.cachedBlockByFile;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> }<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span> /**<a name="line.325"></a>
+<span class="sourceLineNo">326</span> * @return count of blocks in the cache<a name="line.326"></a>
+<span class="sourceLineNo">327</span> */<a name="line.327"></a>
+<span class="sourceLineNo">328</span> public int getCount() {<a name="line.328"></a>
+<span class="sourceLineNo">329</span> return count;<a name="line.329"></a>
+<span class="sourceLineNo">330</span> }<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span> public int getDataCount() {<a name="line.332"></a>
+<span class="sourceLineNo">333</span> return dataBlockCount;<a name="line.333"></a>
+<span class="sourceLineNo">334</span> }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span> /**<a name="line.336"></a>
+<span class="sourceLineNo">337</span> * @return size of blocks in the cache<a name="line.337"></a>
+<span class="sourceLineNo">338</span> */<a name="line.338"></a>
+<span class="sourceLineNo">339</span> public long getSize() {<a name="line.339"></a>
+<span class="sourceLineNo">340</span> return size;<a name="line.340"></a>
+<span class="sourceLineNo">341</span> }<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span> /**<a name="line.343"></a>
+<span class="sourceLineNo">344</span> * @return Size of data.<a name="line.344"></a>
+<span class="sourceLineNo">345</span> */<a name="line.345"></a>
+<span class="sourceLineNo">346</span> public long getDataSize() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> return dataSize;<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span> public AgeSnapshot getAgeInCacheSnapshot() {<a name="line.350"></a>
+<span class="sourceLineNo">351</span> return new AgeSnapshot(this.hist);<a name="line.351"></a>
+<span class="sourceLineNo">352</span> }<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span> @Override<a name="line.354"></a>
+<span class="sourceLineNo">355</span> public String toString() {<a name="line.355"></a>
+<span class="sourceLineNo">356</span> AgeSnapshot snapshot = getAgeInCacheSnapshot();<a name="line.356"></a>
+<span class="sourceLineNo">357</span> return "count=" + count + ", dataBlockCount=" + dataBlockCount + ", size=" + size +<a name="line.357"></a>
+<span class="sourceLineNo">358</span> ", dataSize=" + getDataSize() +<a name="line.358"></a>
+<span class="sourceLineNo">359</span> ", mean age=" + snapshot.getMean() +<a name="line.359"></a>
+<span class="sourceLineNo">360</span> ", min age=" + snapshot.getMin() +<a name="line.360"></a>
+<span class="sourceLineNo">361</span> ", max age=" + snapshot.getMax() +<a name="line.361"></a>
+<span class="sourceLineNo">362</span> ", 75th percentile age=" + snapshot.get75thPercentile() +<a name="line.362"></a>
+<span class="sourceLineNo">363</span> ", 95th percentile age=" + snapshot.get95thPercentile() +<a name="line.363"></a>
+<span class="sourceLineNo">364</span> ", 98th percentile age=" + snapshot.get98thPercentile() +<a name="line.364"></a>
+<span class="sourceLineNo">365</span> ", 99th percentile age=" + snapshot.get99thPercentile() +<a name="line.365"></a>
+<span class="sourceLineNo">366</span> ", 99.9th percentile age=" + snapshot.get99thPercentile();<a name="line.366"></a>
+<span class="sourceLineNo">367</span> }<a name="line.367"></a>
+<span class="sourceLineNo">368</span> }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>}<a name="line.369"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html
index f118c08..cd9722f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html
@@ -206,140 +206,175 @@
<span class="sourceLineNo">198</span> */<a name="line.198"></a>
<span class="sourceLineNo">199</span> public static int validateBlockAddition(Cacheable existing, Cacheable newBlock,<a name="line.199"></a>
<span class="sourceLineNo">200</span> BlockCacheKey cacheKey) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span> int comparison = compareCacheBlock(existing, newBlock, true);<a name="line.201"></a>
+<span class="sourceLineNo">201</span> int comparison = compareCacheBlock(existing, newBlock, false);<a name="line.201"></a>
<span class="sourceLineNo">202</span> if (comparison != 0) {<a name="line.202"></a>
-<span class="sourceLineNo">203</span> LOG.warn("Cached block contents differ, trying to just compare the block contents " +<a name="line.203"></a>
-<span class="sourceLineNo">204</span> "without the next block. CacheKey: " + cacheKey);<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span> // compare the contents, if they are not equal, we are in big trouble<a name="line.206"></a>
-<span class="sourceLineNo">207</span> int comparisonWithoutNextBlockMetadata = compareCacheBlock(existing, newBlock, false);<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span> if (comparisonWithoutNextBlockMetadata != 0) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span> throw new RuntimeException("Cached block contents differ, which should not have happened."<a name="line.210"></a>
-<span class="sourceLineNo">211</span> + "cacheKey:" + cacheKey);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> }<a name="line.212"></a>
-<span class="sourceLineNo">213</span> }<a name="line.213"></a>
-<span class="sourceLineNo">214</span> return comparison;<a name="line.214"></a>
-<span class="sourceLineNo">215</span> }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> /**<a name="line.217"></a>
-<span class="sourceLineNo">218</span> * Use one of these to keep a running account of cached blocks by file. Throw it away when done.<a name="line.218"></a>
-<span class="sourceLineNo">219</span> * This is different than metrics in that it is stats on current state of a cache.<a name="line.219"></a>
-<span class="sourceLineNo">220</span> * See getLoadedCachedBlocksByFile<a name="line.220"></a>
-<span class="sourceLineNo">221</span> */<a name="line.221"></a>
-<span class="sourceLineNo">222</span> @JsonIgnoreProperties({"cachedBlockStatsByFile"})<a name="line.222"></a>
-<span class="sourceLineNo">223</span> public static class CachedBlocksByFile {<a name="line.223"></a>
-<span class="sourceLineNo">224</span> private int count;<a name="line.224"></a>
-<span class="sourceLineNo">225</span> private int dataBlockCount;<a name="line.225"></a>
-<span class="sourceLineNo">226</span> private long size;<a name="line.226"></a>
-<span class="sourceLineNo">227</span> private long dataSize;<a name="line.227"></a>
-<span class="sourceLineNo">228</span> private final long now = System.nanoTime();<a name="line.228"></a>
-<span class="sourceLineNo">229</span> /**<a name="line.229"></a>
-<span class="sourceLineNo">230</span> * How many blocks to look at before we give up.<a name="line.230"></a>
-<span class="sourceLineNo">231</span> * There could be many millions of blocks. We don't want the<a name="line.231"></a>
-<span class="sourceLineNo">232</span> * ui to freeze while we run through 1B blocks... users will<a name="line.232"></a>
-<span class="sourceLineNo">233</span> * think hbase dead. UI displays warning in red when stats<a name="line.233"></a>
-<span class="sourceLineNo">234</span> * are incomplete.<a name="line.234"></a>
-<span class="sourceLineNo">235</span> */<a name="line.235"></a>
-<span class="sourceLineNo">236</span> private final int max;<a name="line.236"></a>
-<span class="sourceLineNo">237</span> public static final int DEFAULT_MAX = 1000000;<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span> CachedBlocksByFile() {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> this(null);<a name="line.240"></a>
-<span class="sourceLineNo">241</span> }<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span> CachedBlocksByFile(final Configuration c) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span> this.max = c == null? DEFAULT_MAX: c.getInt("hbase.ui.blockcache.by.file.max", DEFAULT_MAX);<a name="line.244"></a>
-<span class="sourceLineNo">245</span> }<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span> /**<a name="line.247"></a>
-<span class="sourceLineNo">248</span> * Map by filename. use concurent utils because we want our Map and contained blocks sorted.<a name="line.248"></a>
-<span class="sourceLineNo">249</span> */<a name="line.249"></a>
-<span class="sourceLineNo">250</span> private NavigableMap<String, NavigableSet<CachedBlock>> cachedBlockByFile = new ConcurrentSkipListMap<>();<a name="line.250"></a>
-<span class="sourceLineNo">251</span> FastLongHistogram hist = new FastLongHistogram();<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span> /**<a name="line.253"></a>
-<span class="sourceLineNo">254</span> * @param cb<a name="line.254"></a>
-<span class="sourceLineNo">255</span> * @return True if full.... if we won't be adding any more.<a name="line.255"></a>
-<span class="sourceLineNo">256</span> */<a name="line.256"></a>
-<span class="sourceLineNo">257</span> public boolean update(final CachedBlock cb) {<a name="line.257"></a>
-<span class="sourceLineNo">258</span> if (isFull()) return true;<a name="line.258"></a>
-<span class="sourceLineNo">259</span> NavigableSet<CachedBlock> set = this.cachedBlockByFile.get(cb.getFilename());<a name="line.259"></a>
-<span class="sourceLineNo">260</span> if (set == null) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span> set = new ConcurrentSkipListSet<>();<a name="line.261"></a>
-<span class="sourceLineNo">262</span> this.cachedBlockByFile.put(cb.getFilename(), set);<a name="line.262"></a>
-<span class="sourceLineNo">263</span> }<a name="line.263"></a>
-<span class="sourceLineNo">264</span> set.add(cb);<a name="line.264"></a>
-<span class="sourceLineNo">265</span> this.size += cb.getSize();<a name="line.265"></a>
-<span class="sourceLineNo">266</span> this.count++;<a name="line.266"></a>
-<span class="sourceLineNo">267</span> BlockType bt = cb.getBlockType();<a name="line.267"></a>
-<span class="sourceLineNo">268</span> if (bt != null && bt.isData()) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> this.dataBlockCount++;<a name="line.269"></a>
-<span class="sourceLineNo">270</span> this.dataSize += cb.getSize();<a name="line.270"></a>
-<span class="sourceLineNo">271</span> }<a name="line.271"></a>
-<span class="sourceLineNo">272</span> long age = (this.now - cb.getCachedTime())/NANOS_PER_SECOND;<a name="line.272"></a>
-<span class="sourceLineNo">273</span> this.hist.add(age, 1);<a name="line.273"></a>
-<span class="sourceLineNo">274</span> return false;<a name="line.274"></a>
-<span class="sourceLineNo">275</span> }<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span> /**<a name="line.277"></a>
-<span class="sourceLineNo">278</span> * @return True if full; i.e. there are more items in the cache but we only loaded up<a name="line.278"></a>
-<span class="sourceLineNo">279</span> * the maximum set in configuration <code>hbase.ui.blockcache.by.file.max</code><a name="line.279"></a>
-<span class="sourceLineNo">280</span> * (Default: DEFAULT_MAX).<a name="line.280"></a>
-<span class="sourceLineNo">281</span> */<a name="line.281"></a>
-<span class="sourceLineNo">282</span> public boolean isFull() {<a name="line.282"></a>
-<span class="sourceLineNo">283</span> return this.count >= this.max;<a name="line.283"></a>
-<span class="sourceLineNo">284</span> }<a name="line.284"></a>
-<span class="sourceLineNo">285</span><a name="line.285"></a>
-<span class="sourceLineNo">286</span> public NavigableMap<String, NavigableSet<CachedBlock>> getCachedBlockStatsByFile() {<a name="line.286"></a>
-<span class="sourceLineNo">287</span> return this.cachedBlockByFile;<a name="line.287"></a>
-<span class="sourceLineNo">288</span> }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span> /**<a name="line.290"></a>
-<span class="sourceLineNo">291</span> * @return count of blocks in the cache<a name="line.291"></a>
-<span class="sourceLineNo">292</span> */<a name="line.292"></a>
-<span class="sourceLineNo">293</span> public int getCount() {<a name="line.293"></a>
-<span class="sourceLineNo">294</span> return count;<a name="line.294"></a>
-<span class="sourceLineNo">295</span> }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span> public int getDataCount() {<a name="line.297"></a>
-<span class="sourceLineNo">298</span> return dataBlockCount;<a name="line.298"></a>
-<span class="sourceLineNo">299</span> }<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span> /**<a name="line.301"></a>
-<span class="sourceLineNo">302</span> * @return size of blocks in the cache<a name="line.302"></a>
-<span class="sourceLineNo">303</span> */<a name="line.303"></a>
-<span class="sourceLineNo">304</span> public long getSize() {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> return size;<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span> /**<a name="line.308"></a>
-<span class="sourceLineNo">309</span> * @return Size of data.<a name="line.309"></a>
-<span class="sourceLineNo">310</span> */<a name="line.310"></a>
-<span class="sourceLineNo">311</span> public long getDataSize() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> return dataSize;<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span> public AgeSnapshot getAgeInCacheSnapshot() {<a name="line.315"></a>
-<span class="sourceLineNo">316</span> return new AgeSnapshot(this.hist);<a name="line.316"></a>
-<span class="sourceLineNo">317</span> }<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span> @Override<a name="line.319"></a>
-<span class="sourceLineNo">320</span> public String toString() {<a name="line.320"></a>
-<span class="sourceLineNo">321</span> AgeSnapshot snapshot = getAgeInCacheSnapshot();<a name="line.321"></a>
-<span class="sourceLineNo">322</span> return "count=" + count + ", dataBlockCount=" + dataBlockCount + ", size=" + size +<a name="line.322"></a>
-<span class="sourceLineNo">323</span> ", dataSize=" + getDataSize() +<a name="line.323"></a>
-<span class="sourceLineNo">324</span> ", mean age=" + snapshot.getMean() +<a name="line.324"></a>
-<span class="sourceLineNo">325</span> ", min age=" + snapshot.getMin() +<a name="line.325"></a>
-<span class="sourceLineNo">326</span> ", max age=" + snapshot.getMax() +<a name="line.326"></a>
-<span class="sourceLineNo">327</span> ", 75th percentile age=" + snapshot.get75thPercentile() +<a name="line.327"></a>
-<span class="sourceLineNo">328</span> ", 95th percentile age=" + snapshot.get95thPercentile() +<a name="line.328"></a>
-<span class="sourceLineNo">329</span> ", 98th percentile age=" + snapshot.get98thPercentile() +<a name="line.329"></a>
-<span class="sourceLineNo">330</span> ", 99th percentile age=" + snapshot.get99thPercentile() +<a name="line.330"></a>
-<span class="sourceLineNo">331</span> ", 99.9th percentile age=" + snapshot.get99thPercentile();<a name="line.331"></a>
-<span class="sourceLineNo">332</span> }<a name="line.332"></a>
-<span class="sourceLineNo">333</span> }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>}<a name="line.334"></a>
+<span class="sourceLineNo">203</span> throw new RuntimeException("Cached block contents differ, which should not have happened."<a name="line.203"></a>
+<span class="sourceLineNo">204</span> + "cacheKey:" + cacheKey);<a name="line.204"></a>
+<span class="sourceLineNo">205</span> }<a name="line.205"></a>
+<span class="sourceLineNo">206</span> if ((existing instanceof HFileBlock) && (newBlock instanceof HFileBlock)) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> comparison = ((HFileBlock) existing).getNextBlockOnDiskSize()<a name="line.207"></a>
+<span class="sourceLineNo">208</span> - ((HFileBlock) newBlock).getNextBlockOnDiskSize();<a name="line.208"></a>
+<span class="sourceLineNo">209</span> }<a name="line.209"></a>
+<span class="sourceLineNo">210</span> return comparison;<a name="line.210"></a>
+<span class="sourceLineNo">211</span> }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span> /**<a name="line.213"></a>
+<span class="sourceLineNo">214</span> * Because of the region splitting, it's possible that the split key locate in the middle of a<a name="line.214"></a>
+<span class="sourceLineNo">215</span> * block. So it's possible that both the daughter regions load the same block from their parent<a name="line.215"></a>
+<span class="sourceLineNo">216</span> * HFile. When pread, we don't force the read to read all of the next block header. So when two<a name="line.216"></a>
+<span class="sourceLineNo">217</span> * threads try to cache the same block, it's possible that one thread read all of the next block<a name="line.217"></a>
+<span class="sourceLineNo">218</span> * header but the other one didn't. if the already cached block hasn't next block header but the<a name="line.218"></a>
+<span class="sourceLineNo">219</span> * new block to cache has, then we can replace the existing block with the new block for better<a name="line.219"></a>
+<span class="sourceLineNo">220</span> * performance.(HBASE-20447)<a name="line.220"></a>
+<span class="sourceLineNo">221</span> * @param blockCache BlockCache to check<a name="line.221"></a>
+<span class="sourceLineNo">222</span> * @param cacheKey the block cache key<a name="line.222"></a>
+<span class="sourceLineNo">223</span> * @param newBlock the new block which try to put into the block cache.<a name="line.223"></a>
+<span class="sourceLineNo">224</span> * @return true means need to replace existing block with new block for the same block cache key.<a name="line.224"></a>
+<span class="sourceLineNo">225</span> * false means just keep the existing block.<a name="line.225"></a>
+<span class="sourceLineNo">226</span> */<a name="line.226"></a>
+<span class="sourceLineNo">227</span> public static boolean shouldReplaceExistingCacheBlock(BlockCache blockCache,<a name="line.227"></a>
+<span class="sourceLineNo">228</span> BlockCacheKey cacheKey, Cacheable newBlock) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span> Cacheable existingBlock = blockCache.getBlock(cacheKey, false, false, false);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> try {<a name="line.230"></a>
+<span class="sourceLineNo">231</span> int comparison = BlockCacheUtil.validateBlockAddition(existingBlock, newBlock, cacheKey);<a name="line.231"></a>
+<span class="sourceLineNo">232</span> if (comparison < 0) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize, the new block has "<a name="line.233"></a>
+<span class="sourceLineNo">234</span> + "nextBlockOnDiskSize set. Caching new block.");<a name="line.234"></a>
+<span class="sourceLineNo">235</span> return true;<a name="line.235"></a>
+<span class="sourceLineNo">236</span> } else if (comparison > 0) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize, the existing block has "<a name="line.237"></a>
+<span class="sourceLineNo">238</span> + "nextBlockOnDiskSize set, Keeping cached block.");<a name="line.238"></a>
+<span class="sourceLineNo">239</span> return false;<a name="line.239"></a>
+<span class="sourceLineNo">240</span> } else {<a name="line.240"></a>
+<span class="sourceLineNo">241</span> LOG.warn("Caching an already cached block: {}. This is harmless and can happen in rare "<a name="line.241"></a>
+<span class="sourceLineNo">242</span> + "cases (see HBASE-8547)",<a name="line.242"></a>
+<span class="sourceLineNo">243</span> cacheKey);<a name="line.243"></a>
+<span class="sourceLineNo">244</span> return false;<a name="line.244"></a>
+<span class="sourceLineNo">245</span> }<a name="line.245"></a>
+<span class="sourceLineNo">246</span> } finally {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> // return the block since we need to decrement the count<a name="line.247"></a>
+<span class="sourceLineNo">248</span> blockCache.returnBlock(cacheKey, existingBlock);<a name="line.248"></a>
+<span class="sourceLineNo">249</span> }<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span> /**<a name="line.252"></a>
+<span class="sourceLineNo">253</span> * Use one of these to keep a running account of cached blocks by file. Throw it away when done.<a name="line.253"></a>
+<span class="sourceLineNo">254</span> * This is different than metrics in that it is stats on current state of a cache.<a name="line.254"></a>
+<span class="sourceLineNo">255</span> * See getLoadedCachedBlocksByFile<a name="line.255"></a>
+<span class="sourceLineNo">256</span> */<a name="line.256"></a>
+<span class="sourceLineNo">257</span> @JsonIgnoreProperties({"cachedBlockStatsByFile"})<a name="line.257"></a>
+<span class="sourceLineNo">258</span> public static class CachedBlocksByFile {<a name="line.258"></a>
+<span class="sourceLineNo">259</span> private int count;<a name="line.259"></a>
+<span class="sourceLineNo">260</span> private int dataBlockCount;<a name="line.260"></a>
+<span class="sourceLineNo">261</span> private long size;<a name="line.261"></a>
+<span class="sourceLineNo">262</span> private long dataSize;<a name="line.262"></a>
+<span class="sourceLineNo">263</span> private final long now = System.nanoTime();<a name="line.263"></a>
+<span class="sourceLineNo">264</span> /**<a name="line.264"></a>
+<span class="sourceLineNo">265</span> * How many blocks to look at before we give up.<a name="line.265"></a>
+<span class="sourceLineNo">266</span> * There could be many millions of blocks. We don't want the<a name="line.266"></a>
+<span class="sourceLineNo">267</span> * ui to freeze while we run through 1B blocks... users will<a name="line.267"></a>
+<span class="sourceLineNo">268</span> * think hbase dead. UI displays warning in red when stats<a name="line.268"></a>
+<span class="sourceLineNo">269</span> * are incomplete.<a name="line.269"></a>
+<span class="sourceLineNo">270</span> */<a name="line.270"></a>
+<span class="sourceLineNo">271</span> private final int max;<a name="line.271"></a>
+<span class="sourceLineNo">272</span> public static final int DEFAULT_MAX = 1000000;<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span> CachedBlocksByFile() {<a name="line.274"></a>
+<span class="sourceLineNo">275</span> this(null);<a name="line.275"></a>
+<span class="sourceLineNo">276</span> }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span> CachedBlocksByFile(final Configuration c) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> this.max = c == null? DEFAULT_MAX: c.getInt("hbase.ui.blockcache.by.file.max", DEFAULT_MAX);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span> /**<a name="line.282"></a>
+<span class="sourceLineNo">283</span> * Map by filename. use concurent utils because we want our Map and contained blocks sorted.<a name="line.283"></a>
+<span class="sourceLineNo">284</span> */<a name="line.284"></a>
+<span class="sourceLineNo">285</span> private NavigableMap<String, NavigableSet<CachedBlock>> cachedBlockByFile = new ConcurrentSkipListMap<>();<a name="line.285"></a>
+<span class="sourceLineNo">286</span> FastLongHistogram hist = new FastLongHistogram();<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span> /**<a name="line.288"></a>
+<span class="sourceLineNo">289</span> * @param cb<a name="line.289"></a>
+<span class="sourceLineNo">290</span> * @return True if full.... if we won't be adding any more.<a name="line.290"></a>
+<span class="sourceLineNo">291</span> */<a name="line.291"></a>
+<span class="sourceLineNo">292</span> public boolean update(final CachedBlock cb) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span> if (isFull()) return true;<a name="line.293"></a>
+<span class="sourceLineNo">294</span> NavigableSet<CachedBlock> set = this.cachedBlockByFile.get(cb.getFilename());<a name="line.294"></a>
+<span class="sourceLineNo">295</span> if (set == null) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span> set = new ConcurrentSkipListSet<>();<a name="line.296"></a>
+<span class="sourceLineNo">297</span> this.cachedBlockByFile.put(cb.getFilename(), set);<a name="line.297"></a>
+<span class="sourceLineNo">298</span> }<a name="line.298"></a>
+<span class="sourceLineNo">299</span> set.add(cb);<a name="line.299"></a>
+<span class="sourceLineNo">300</span> this.size += cb.getSize();<a name="line.300"></a>
+<span class="sourceLineNo">301</span> this.count++;<a name="line.301"></a>
+<span class="sourceLineNo">302</span> BlockType bt = cb.getBlockType();<a name="line.302"></a>
+<span class="sourceLineNo">303</span> if (bt != null && bt.isData()) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span> this.dataBlockCount++;<a name="line.304"></a>
+<span class="sourceLineNo">305</span> this.dataSize += cb.getSize();<a name="line.305"></a>
+<span class="sourceLineNo">306</span> }<a name="line.306"></a>
+<span class="sourceLineNo">307</span> long age = (this.now - cb.getCachedTime())/NANOS_PER_SECOND;<a name="line.307"></a>
+<span class="sourceLineNo">308</span> this.hist.add(age, 1);<a name="line.308"></a>
+<span class="sourceLineNo">309</span> return false;<a name="line.309"></a>
+<span class="sourceLineNo">310</span> }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span> /**<a name="line.312"></a>
+<span class="sourceLineNo">313</span> * @return True if full; i.e. there are more items in the cache but we only loaded up<a name="line.313"></a>
+<span class="sourceLineNo">314</span> * the maximum set in configuration <code>hbase.ui.blockcache.by.file.max</code><a name="line.314"></a>
+<span class="sourceLineNo">315</span> * (Default: DEFAULT_MAX).<a name="line.315"></a>
+<span class="sourceLineNo">316</span> */<a name="line.316"></a>
+<span class="sourceLineNo">317</span> public boolean isFull() {<a name="line.317"></a>
+<span class="sourceLineNo">318</span> return this.count >= this.max;<a name="line.318"></a>
+<span class="sourceLineNo">319</span> }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span> public NavigableMap<String, NavigableSet<CachedBlock>> getCachedBlockStatsByFile() {<a name="line.321"></a>
+<span class="sourceLineNo">322</span> return this.cachedBlockByFile;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> }<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span> /**<a name="line.325"></a>
+<span class="sourceLineNo">326</span> * @return count of blocks in the cache<a name="line.326"></a>
+<span class="sourceLineNo">327</span> */<a name="line.327"></a>
+<span class="sourceLineNo">328</span> public int getCount() {<a name="line.328"></a>
+<span class="sourceLineNo">329</span> return count;<a name="line.329"></a>
+<span class="sourceLineNo">330</span> }<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span> public int getDataCount() {<a name="line.332"></a>
+<span class="sourceLineNo">333</span> return dataBlockCount;<a name="line.333"></a>
+<span class="sourceLineNo">334</span> }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span> /**<a name="line.336"></a>
+<span class="sourceLineNo">337</span> * @return size of blocks in the cache<a name="line.337"></a>
+<span class="sourceLineNo">338</span> */<a name="line.338"></a>
+<span class="sourceLineNo">339</span> public long getSize() {<a name="line.339"></a>
+<span class="sourceLineNo">340</span> return size;<a name="line.340"></a>
+<span class="sourceLineNo">341</span> }<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span> /**<a name="line.343"></a>
+<span class="sourceLineNo">344</span> * @return Size of data.<a name="line.344"></a>
+<span class="sourceLineNo">345</span> */<a name="line.345"></a>
+<span class="sourceLineNo">346</span> public long getDataSize() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> return dataSize;<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span> public AgeSnapshot getAgeInCacheSnapshot() {<a name="line.350"></a>
+<span class="sourceLineNo">351</span> return new AgeSnapshot(this.hist);<a name="line.351"></a>
+<span class="sourceLineNo">352</span> }<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span> @Override<a name="line.354"></a>
+<span class="sourceLineNo">355</span> public String toString() {<a name="line.355"></a>
+<span class="sourceLineNo">356</span> AgeSnapshot snapshot = getAgeInCacheSnapshot();<a name="line.356"></a>
+<span class="sourceLineNo">357</span> return "count=" + count + ", dataBlockCount=" + dataBlockCount + ", size=" + size +<a name="line.357"></a>
+<span class="sourceLineNo">358</span> ", dataSize=" + getDataSize() +<a name="line.358"></a>
+<span class="sourceLineNo">359</span> ", mean age=" + snapshot.getMean() +<a name="line.359"></a>
+<span class="sourceLineNo">360</span> ", min age=" + snapshot.getMin() +<a name="line.360"></a>
+<span class="sourceLineNo">361</span> ", max age=" + snapshot.getMax() +<a name="line.361"></a>
+<span class="sourceLineNo">362</span> ", 75th percentile age=" + snapshot.get75thPercentile() +<a name="line.362"></a>
+<span class="sourceLineNo">363</span> ", 95th percentile age=" + snapshot.get95thPercentile() +<a name="line.363"></a>
+<span class="sourceLineNo">364</span> ", 98th percentile age=" + snapshot.get98thPercentile() +<a name="line.364"></a>
+<span class="sourceLineNo">365</span> ", 99th percentile age=" + snapshot.get99thPercentile() +<a name="line.365"></a>
+<span class="sourceLineNo">366</span> ", 99.9th percentile age=" + snapshot.get99thPercentile();<a name="line.366"></a>
+<span class="sourceLineNo">367</span> }<a name="line.367"></a>
+<span class="sourceLineNo">368</span> }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>}<a name="line.369"></a>
[02/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html
index 67f4551..017124c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html
@@ -387,817 +387,804 @@
<span class="sourceLineNo">379</span> }<a name="line.379"></a>
<span class="sourceLineNo">380</span><a name="line.380"></a>
<span class="sourceLineNo">381</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.381"></a>
-<span class="sourceLineNo">382</span> if (cb != null) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span> int comparison = BlockCacheUtil.validateBlockAddition(cb.getBuffer(), buf, cacheKey);<a name="line.383"></a>
-<span class="sourceLineNo">384</span> if (comparison != 0) {<a name="line.384"></a>
-<span class="sourceLineNo">385</span> if (comparison < 0) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize. Keeping cached block.");<a name="line.386"></a>
-<span class="sourceLineNo">387</span> return;<a name="line.387"></a>
-<span class="sourceLineNo">388</span> } else {<a name="line.388"></a>
-<span class="sourceLineNo">389</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize. Caching new block.");<a name="line.389"></a>
-<span class="sourceLineNo">390</span> }<a name="line.390"></a>
-<span class="sourceLineNo">391</span> } else {<a name="line.391"></a>
-<span class="sourceLineNo">392</span> String msg = "Cached an already cached block: " + cacheKey + " cb:" + cb.getCacheKey();<a name="line.392"></a>
-<span class="sourceLineNo">393</span> msg += ". This is harmless and can happen in rare cases (see HBASE-8547)";<a name="line.393"></a>
-<span class="sourceLineNo">394</span> LOG.debug(msg);<a name="line.394"></a>
-<span class="sourceLineNo">395</span> return;<a name="line.395"></a>
-<span class="sourceLineNo">396</span> }<a name="line.396"></a>
-<span class="sourceLineNo">397</span> }<a name="line.397"></a>
-<span class="sourceLineNo">398</span> long currentSize = size.get();<a name="line.398"></a>
-<span class="sourceLineNo">399</span> long currentAcceptableSize = acceptableSize();<a name="line.399"></a>
-<span class="sourceLineNo">400</span> long hardLimitSize = (long) (hardCapacityLimitFactor * currentAcceptableSize);<a name="line.400"></a>
-<span class="sourceLineNo">401</span> if (currentSize >= hardLimitSize) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span> stats.failInsert();<a name="line.402"></a>
-<span class="sourceLineNo">403</span> if (LOG.isTraceEnabled()) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span> LOG.trace("LruBlockCache current size " + StringUtils.byteDesc(currentSize)<a name="line.404"></a>
-<span class="sourceLineNo">405</span> + " has exceeded acceptable size " + StringUtils.byteDesc(currentAcceptableSize) + "."<a name="line.405"></a>
-<span class="sourceLineNo">406</span> + " The hard limit size is " + StringUtils.byteDesc(hardLimitSize)<a name="line.406"></a>
-<span class="sourceLineNo">407</span> + ", failed to put cacheKey:" + cacheKey + " into LruBlockCache.");<a name="line.407"></a>
-<span class="sourceLineNo">408</span> }<a name="line.408"></a>
-<span class="sourceLineNo">409</span> if (!evictionInProgress) {<a name="line.409"></a>
-<span class="sourceLineNo">410</span> runEviction();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> }<a name="line.411"></a>
-<span class="sourceLineNo">412</span> return;<a name="line.412"></a>
-<span class="sourceLineNo">413</span> }<a name="line.413"></a>
-<span class="sourceLineNo">414</span> cb = new LruCachedBlock(cacheKey, buf, count.incrementAndGet(), inMemory);<a name="line.414"></a>
-<span class="sourceLineNo">415</span> long newSize = updateSizeMetrics(cb, false);<a name="line.415"></a>
-<span class="sourceLineNo">416</span> map.put(cacheKey, cb);<a name="line.416"></a>
-<span class="sourceLineNo">417</span> long val = elements.incrementAndGet();<a name="line.417"></a>
-<span class="sourceLineNo">418</span> if (buf.getBlockType().isData()) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span> dataBlockElements.increment();<a name="line.419"></a>
-<span class="sourceLineNo">420</span> }<a name="line.420"></a>
-<span class="sourceLineNo">421</span> if (LOG.isTraceEnabled()) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> long size = map.size();<a name="line.422"></a>
-<span class="sourceLineNo">423</span> assertCounterSanity(size, val);<a name="line.423"></a>
-<span class="sourceLineNo">424</span> }<a name="line.424"></a>
-<span class="sourceLineNo">425</span> if (newSize > currentAcceptableSize && !evictionInProgress) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span> runEviction();<a name="line.426"></a>
-<span class="sourceLineNo">427</span> }<a name="line.427"></a>
-<span class="sourceLineNo">428</span> }<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span> /**<a name="line.430"></a>
-<span class="sourceLineNo">431</span> * Sanity-checking for parity between actual block cache content and metrics.<a name="line.431"></a>
-<span class="sourceLineNo">432</span> * Intended only for use with TRACE level logging and -ea JVM.<a name="line.432"></a>
-<span class="sourceLineNo">433</span> */<a name="line.433"></a>
-<span class="sourceLineNo">434</span> private static void assertCounterSanity(long mapSize, long counterVal) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span> if (counterVal < 0) {<a name="line.435"></a>
-<span class="sourceLineNo">436</span> LOG.trace("counterVal overflow. Assertions unreliable. counterVal=" + counterVal +<a name="line.436"></a>
-<span class="sourceLineNo">437</span> ", mapSize=" + mapSize);<a name="line.437"></a>
-<span class="sourceLineNo">438</span> return;<a name="line.438"></a>
-<span class="sourceLineNo">439</span> }<a name="line.439"></a>
-<span class="sourceLineNo">440</span> if (mapSize < Integer.MAX_VALUE) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span> double pct_diff = Math.abs((((double) counterVal) / ((double) mapSize)) - 1.);<a name="line.441"></a>
-<span class="sourceLineNo">442</span> if (pct_diff > 0.05) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> LOG.trace("delta between reported and actual size > 5%. counterVal=" + counterVal +<a name="line.443"></a>
-<span class="sourceLineNo">444</span> ", mapSize=" + mapSize);<a name="line.444"></a>
-<span class="sourceLineNo">445</span> }<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> }<a name="line.447"></a>
-<span class="sourceLineNo">448</span><a name="line.448"></a>
-<span class="sourceLineNo">449</span> /**<a name="line.449"></a>
-<span class="sourceLineNo">450</span> * Cache the block with the specified name and buffer.<a name="line.450"></a>
-<span class="sourceLineNo">451</span> * <p><a name="line.451"></a>
-<span class="sourceLineNo">452</span> *<a name="line.452"></a>
-<span class="sourceLineNo">453</span> * @param cacheKey block's cache key<a name="line.453"></a>
-<span class="sourceLineNo">454</span> * @param buf block buffer<a name="line.454"></a>
-<span class="sourceLineNo">455</span> */<a name="line.455"></a>
-<span class="sourceLineNo">456</span> @Override<a name="line.456"></a>
-<span class="sourceLineNo">457</span> public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf) {<a name="line.457"></a>
-<span class="sourceLineNo">458</span> cacheBlock(cacheKey, buf, false);<a name="line.458"></a>
-<span class="sourceLineNo">459</span> }<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span> /**<a name="line.461"></a>
-<span class="sourceLineNo">462</span> * Helper function that updates the local size counter and also updates any<a name="line.462"></a>
-<span class="sourceLineNo">463</span> * per-cf or per-blocktype metrics it can discern from given<a name="line.463"></a>
-<span class="sourceLineNo">464</span> * {@link LruCachedBlock}<a name="line.464"></a>
-<span class="sourceLineNo">465</span> */<a name="line.465"></a>
-<span class="sourceLineNo">466</span> private long updateSizeMetrics(LruCachedBlock cb, boolean evict) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span> long heapsize = cb.heapSize();<a name="line.467"></a>
-<span class="sourceLineNo">468</span> BlockType bt = cb.getBuffer().getBlockType();<a name="line.468"></a>
-<span class="sourceLineNo">469</span> if (evict) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span> heapsize *= -1;<a name="line.470"></a>
-<span class="sourceLineNo">471</span> }<a name="line.471"></a>
-<span class="sourceLineNo">472</span> if (bt != null && bt.isData()) {<a name="line.472"></a>
-<span class="sourceLineNo">473</span> dataBlockSize.add(heapsize);<a name="line.473"></a>
-<span class="sourceLineNo">474</span> }<a name="line.474"></a>
-<span class="sourceLineNo">475</span> return size.addAndGet(heapsize);<a name="line.475"></a>
-<span class="sourceLineNo">476</span> }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span> /**<a name="line.478"></a>
-<span class="sourceLineNo">479</span> * Get the buffer of the block with the specified name.<a name="line.479"></a>
-<span class="sourceLineNo">480</span> *<a name="line.480"></a>
-<span class="sourceLineNo">481</span> * @param cacheKey block's cache key<a name="line.481"></a>
-<span class="sourceLineNo">482</span> * @param caching true if the caller caches blocks on cache misses<a name="line.482"></a>
-<span class="sourceLineNo">483</span> * @param repeat Whether this is a repeat lookup for the same block<a name="line.483"></a>
-<span class="sourceLineNo">484</span> * (used to avoid double counting cache misses when doing double-check<a name="line.484"></a>
-<span class="sourceLineNo">485</span> * locking)<a name="line.485"></a>
-<span class="sourceLineNo">486</span> * @param updateCacheMetrics Whether to update cache metrics or not<a name="line.486"></a>
-<span class="sourceLineNo">487</span> *<a name="line.487"></a>
-<span class="sourceLineNo">488</span> * @return buffer of specified cache key, or null if not in cache<a name="line.488"></a>
-<span class="sourceLineNo">489</span> */<a name="line.489"></a>
-<span class="sourceLineNo">490</span> @Override<a name="line.490"></a>
-<span class="sourceLineNo">491</span> public Cacheable getBlock(BlockCacheKey cacheKey, boolean caching, boolean repeat,<a name="line.491"></a>
-<span class="sourceLineNo">492</span> boolean updateCacheMetrics) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.493"></a>
-<span class="sourceLineNo">494</span> if (cb == null) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span> if (!repeat && updateCacheMetrics) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span> stats.miss(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.496"></a>
-<span class="sourceLineNo">497</span> }<a name="line.497"></a>
-<span class="sourceLineNo">498</span> // If there is another block cache then try and read there.<a name="line.498"></a>
-<span class="sourceLineNo">499</span> // However if this is a retry ( second time in double checked locking )<a name="line.499"></a>
-<span class="sourceLineNo">500</span> // And it's already a miss then the l2 will also be a miss.<a name="line.500"></a>
-<span class="sourceLineNo">501</span> if (victimHandler != null && !repeat) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span> Cacheable result = victimHandler.getBlock(cacheKey, caching, repeat, updateCacheMetrics);<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span> // Promote this to L1.<a name="line.504"></a>
-<span class="sourceLineNo">505</span> if (result != null && caching) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span> if (result instanceof HFileBlock && ((HFileBlock) result).usesSharedMemory()) {<a name="line.506"></a>
-<span class="sourceLineNo">507</span> result = ((HFileBlock) result).deepClone();<a name="line.507"></a>
-<span class="sourceLineNo">508</span> }<a name="line.508"></a>
-<span class="sourceLineNo">509</span> cacheBlock(cacheKey, result, /* inMemory = */ false);<a name="line.509"></a>
-<span class="sourceLineNo">510</span> }<a name="line.510"></a>
-<span class="sourceLineNo">511</span> return result;<a name="line.511"></a>
-<span class="sourceLineNo">512</span> }<a name="line.512"></a>
-<span class="sourceLineNo">513</span> return null;<a name="line.513"></a>
-<span class="sourceLineNo">514</span> }<a name="line.514"></a>
-<span class="sourceLineNo">515</span> if (updateCacheMetrics) stats.hit(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.515"></a>
-<span class="sourceLineNo">516</span> cb.access(count.incrementAndGet());<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return cb.getBuffer();<a name="line.517"></a>
-<span class="sourceLineNo">518</span> }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> /**<a name="line.520"></a>
-<span class="sourceLineNo">521</span> * Whether the cache contains block with specified cacheKey<a name="line.521"></a>
-<span class="sourceLineNo">522</span> *<a name="line.522"></a>
-<span class="sourceLineNo">523</span> * @return true if contains the block<a name="line.523"></a>
-<span class="sourceLineNo">524</span> */<a name="line.524"></a>
-<span class="sourceLineNo">525</span> public boolean containsBlock(BlockCacheKey cacheKey) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span> return map.containsKey(cacheKey);<a name="line.526"></a>
-<span class="sourceLineNo">527</span> }<a name="line.527"></a>
-<span class="sourceLineNo">528</span><a name="line.528"></a>
-<span class="sourceLineNo">529</span> @Override<a name="line.529"></a>
-<span class="sourceLineNo">530</span> public boolean evictBlock(BlockCacheKey cacheKey) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.531"></a>
-<span class="sourceLineNo">532</span> return cb != null && evictBlock(cb, false) > 0;<a name="line.532"></a>
-<span class="sourceLineNo">533</span> }<a name="line.533"></a>
-<span class="sourceLineNo">534</span><a name="line.534"></a>
-<span class="sourceLineNo">535</span> /**<a name="line.535"></a>
-<span class="sourceLineNo">536</span> * Evicts all blocks for a specific HFile. This is an<a name="line.536"></a>
-<span class="sourceLineNo">537</span> * expensive operation implemented as a linear-time search through all blocks<a name="line.537"></a>
-<span class="sourceLineNo">538</span> * in the cache. Ideally this should be a search in a log-access-time map.<a name="line.538"></a>
-<span class="sourceLineNo">539</span> *<a name="line.539"></a>
-<span class="sourceLineNo">540</span> * <p><a name="line.540"></a>
-<span class="sourceLineNo">541</span> * This is used for evict-on-close to remove all blocks of a specific HFile.<a name="line.541"></a>
-<span class="sourceLineNo">542</span> *<a name="line.542"></a>
-<span class="sourceLineNo">543</span> * @return the number of blocks evicted<a name="line.543"></a>
-<span class="sourceLineNo">544</span> */<a name="line.544"></a>
-<span class="sourceLineNo">545</span> @Override<a name="line.545"></a>
-<span class="sourceLineNo">546</span> public int evictBlocksByHfileName(String hfileName) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span> int numEvicted = 0;<a name="line.547"></a>
-<span class="sourceLineNo">548</span> for (BlockCacheKey key : map.keySet()) {<a name="line.548"></a>
-<span class="sourceLineNo">549</span> if (key.getHfileName().equals(hfileName)) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span> if (evictBlock(key))<a name="line.550"></a>
-<span class="sourceLineNo">551</span> ++numEvicted;<a name="line.551"></a>
-<span class="sourceLineNo">552</span> }<a name="line.552"></a>
-<span class="sourceLineNo">553</span> }<a name="line.553"></a>
-<span class="sourceLineNo">554</span> if (victimHandler != null) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span> numEvicted += victimHandler.evictBlocksByHfileName(hfileName);<a name="line.555"></a>
-<span class="sourceLineNo">556</span> }<a name="line.556"></a>
-<span class="sourceLineNo">557</span> return numEvicted;<a name="line.557"></a>
-<span class="sourceLineNo">558</span> }<a name="line.558"></a>
-<span class="sourceLineNo">559</span><a name="line.559"></a>
-<span class="sourceLineNo">560</span> /**<a name="line.560"></a>
-<span class="sourceLineNo">561</span> * Evict the block, and it will be cached by the victim handler if exists &amp;&amp;<a name="line.561"></a>
-<span class="sourceLineNo">562</span> * block may be read again later<a name="line.562"></a>
-<span class="sourceLineNo">563</span> *<a name="line.563"></a>
-<span class="sourceLineNo">564</span> * @param evictedByEvictionProcess true if the given block is evicted by<a name="line.564"></a>
-<span class="sourceLineNo">565</span> * EvictionThread<a name="line.565"></a>
-<span class="sourceLineNo">566</span> * @return the heap size of evicted block<a name="line.566"></a>
-<span class="sourceLineNo">567</span> */<a name="line.567"></a>
-<span class="sourceLineNo">568</span> protected long evictBlock(LruCachedBlock block, boolean evictedByEvictionProcess) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span> boolean found = map.remove(block.getCacheKey()) != null;<a name="line.569"></a>
-<span class="sourceLineNo">570</span> if (!found) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span> return 0;<a name="line.571"></a>
-<span class="sourceLineNo">572</span> }<a name="line.572"></a>
-<span class="sourceLineNo">573</span> updateSizeMetrics(block, true);<a name="line.573"></a>
-<span class="sourceLineNo">574</span> long val = elements.decrementAndGet();<a name="line.574"></a>
-<span class="sourceLineNo">575</span> if (LOG.isTraceEnabled()) {<a name="line.575"></a>
-<span class="sourceLineNo">576</span> long size = map.size();<a name="line.576"></a>
-<span class="sourceLineNo">577</span> assertCounterSanity(size, val);<a name="line.577"></a>
-<span class="sourceLineNo">578</span> }<a name="line.578"></a>
-<span class="sourceLineNo">579</span> if (block.getBuffer().getBlockType().isData()) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span> dataBlockElements.decrement();<a name="line.580"></a>
-<span class="sourceLineNo">581</span> }<a name="line.581"></a>
-<span class="sourceLineNo">582</span> if (evictedByEvictionProcess) {<a name="line.582"></a>
-<span class="sourceLineNo">583</span> // When the eviction of the block happened because of invalidation of HFiles, no need to<a name="line.583"></a>
-<span class="sourceLineNo">584</span> // update the stats counter.<a name="line.584"></a>
-<span class="sourceLineNo">585</span> stats.evicted(block.getCachedTime(), block.getCacheKey().isPrimary());<a name="line.585"></a>
-<span class="sourceLineNo">586</span> if (victimHandler != null) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span> victimHandler.cacheBlock(block.getCacheKey(), block.getBuffer());<a name="line.587"></a>
-<span class="sourceLineNo">588</span> }<a name="line.588"></a>
-<span class="sourceLineNo">589</span> }<a name="line.589"></a>
-<span class="sourceLineNo">590</span> return block.heapSize();<a name="line.590"></a>
-<span class="sourceLineNo">591</span> }<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span> /**<a name="line.593"></a>
-<span class="sourceLineNo">594</span> * Multi-threaded call to run the eviction process.<a name="line.594"></a>
-<span class="sourceLineNo">595</span> */<a name="line.595"></a>
-<span class="sourceLineNo">596</span> private void runEviction() {<a name="line.596"></a>
-<span class="sourceLineNo">597</span> if (evictionThread == null) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span> evict();<a name="line.598"></a>
-<span class="sourceLineNo">599</span> } else {<a name="line.599"></a>
-<span class="sourceLineNo">600</span> evictionThread.evict();<a name="line.600"></a>
-<span class="sourceLineNo">601</span> }<a name="line.601"></a>
-<span class="sourceLineNo">602</span> }<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span> @VisibleForTesting<a name="line.604"></a>
-<span class="sourceLineNo">605</span> boolean isEvictionInProgress() {<a name="line.605"></a>
-<span class="sourceLineNo">606</span> return evictionInProgress;<a name="line.606"></a>
-<span class="sourceLineNo">607</span> }<a name="line.607"></a>
+<span class="sourceLineNo">382</span> if (cb != null && !BlockCacheUtil.shouldReplaceExistingCacheBlock(this, cacheKey, buf)) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> return;<a name="line.383"></a>
+<span class="sourceLineNo">384</span> }<a name="line.384"></a>
+<span class="sourceLineNo">385</span> long currentSize = size.get();<a name="line.385"></a>
+<span class="sourceLineNo">386</span> long currentAcceptableSize = acceptableSize();<a name="line.386"></a>
+<span class="sourceLineNo">387</span> long hardLimitSize = (long) (hardCapacityLimitFactor * currentAcceptableSize);<a name="line.387"></a>
+<span class="sourceLineNo">388</span> if (currentSize >= hardLimitSize) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span> stats.failInsert();<a name="line.389"></a>
+<span class="sourceLineNo">390</span> if (LOG.isTraceEnabled()) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> LOG.trace("LruBlockCache current size " + StringUtils.byteDesc(currentSize)<a name="line.391"></a>
+<span class="sourceLineNo">392</span> + " has exceeded acceptable size " + StringUtils.byteDesc(currentAcceptableSize) + "."<a name="line.392"></a>
+<span class="sourceLineNo">393</span> + " The hard limit size is " + StringUtils.byteDesc(hardLimitSize)<a name="line.393"></a>
+<span class="sourceLineNo">394</span> + ", failed to put cacheKey:" + cacheKey + " into LruBlockCache.");<a name="line.394"></a>
+<span class="sourceLineNo">395</span> }<a name="line.395"></a>
+<span class="sourceLineNo">396</span> if (!evictionInProgress) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span> runEviction();<a name="line.397"></a>
+<span class="sourceLineNo">398</span> }<a name="line.398"></a>
+<span class="sourceLineNo">399</span> return;<a name="line.399"></a>
+<span class="sourceLineNo">400</span> }<a name="line.400"></a>
+<span class="sourceLineNo">401</span> cb = new LruCachedBlock(cacheKey, buf, count.incrementAndGet(), inMemory);<a name="line.401"></a>
+<span class="sourceLineNo">402</span> long newSize = updateSizeMetrics(cb, false);<a name="line.402"></a>
+<span class="sourceLineNo">403</span> map.put(cacheKey, cb);<a name="line.403"></a>
+<span class="sourceLineNo">404</span> long val = elements.incrementAndGet();<a name="line.404"></a>
+<span class="sourceLineNo">405</span> if (buf.getBlockType().isData()) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span> dataBlockElements.increment();<a name="line.406"></a>
+<span class="sourceLineNo">407</span> }<a name="line.407"></a>
+<span class="sourceLineNo">408</span> if (LOG.isTraceEnabled()) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span> long size = map.size();<a name="line.409"></a>
+<span class="sourceLineNo">410</span> assertCounterSanity(size, val);<a name="line.410"></a>
+<span class="sourceLineNo">411</span> }<a name="line.411"></a>
+<span class="sourceLineNo">412</span> if (newSize > currentAcceptableSize && !evictionInProgress) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span> runEviction();<a name="line.413"></a>
+<span class="sourceLineNo">414</span> }<a name="line.414"></a>
+<span class="sourceLineNo">415</span> }<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span> /**<a name="line.417"></a>
+<span class="sourceLineNo">418</span> * Sanity-checking for parity between actual block cache content and metrics.<a name="line.418"></a>
+<span class="sourceLineNo">419</span> * Intended only for use with TRACE level logging and -ea JVM.<a name="line.419"></a>
+<span class="sourceLineNo">420</span> */<a name="line.420"></a>
+<span class="sourceLineNo">421</span> private static void assertCounterSanity(long mapSize, long counterVal) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span> if (counterVal < 0) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span> LOG.trace("counterVal overflow. Assertions unreliable. counterVal=" + counterVal +<a name="line.423"></a>
+<span class="sourceLineNo">424</span> ", mapSize=" + mapSize);<a name="line.424"></a>
+<span class="sourceLineNo">425</span> return;<a name="line.425"></a>
+<span class="sourceLineNo">426</span> }<a name="line.426"></a>
+<span class="sourceLineNo">427</span> if (mapSize < Integer.MAX_VALUE) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span> double pct_diff = Math.abs((((double) counterVal) / ((double) mapSize)) - 1.);<a name="line.428"></a>
+<span class="sourceLineNo">429</span> if (pct_diff > 0.05) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span> LOG.trace("delta between reported and actual size > 5%. counterVal=" + counterVal +<a name="line.430"></a>
+<span class="sourceLineNo">431</span> ", mapSize=" + mapSize);<a name="line.431"></a>
+<span class="sourceLineNo">432</span> }<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span> }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span> /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span> * Cache the block with the specified name and buffer.<a name="line.437"></a>
+<span class="sourceLineNo">438</span> * <p><a name="line.438"></a>
+<span class="sourceLineNo">439</span> *<a name="line.439"></a>
+<span class="sourceLineNo">440</span> * @param cacheKey block's cache key<a name="line.440"></a>
+<span class="sourceLineNo">441</span> * @param buf block buffer<a name="line.441"></a>
+<span class="sourceLineNo">442</span> */<a name="line.442"></a>
+<span class="sourceLineNo">443</span> @Override<a name="line.443"></a>
+<span class="sourceLineNo">444</span> public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span> cacheBlock(cacheKey, buf, false);<a name="line.445"></a>
+<span class="sourceLineNo">446</span> }<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span> /**<a name="line.448"></a>
+<span class="sourceLineNo">449</span> * Helper function that updates the local size counter and also updates any<a name="line.449"></a>
+<span class="sourceLineNo">450</span> * per-cf or per-blocktype metrics it can discern from given<a name="line.450"></a>
+<span class="sourceLineNo">451</span> * {@link LruCachedBlock}<a name="line.451"></a>
+<span class="sourceLineNo">452</span> */<a name="line.452"></a>
+<span class="sourceLineNo">453</span> private long updateSizeMetrics(LruCachedBlock cb, boolean evict) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span> long heapsize = cb.heapSize();<a name="line.454"></a>
+<span class="sourceLineNo">455</span> BlockType bt = cb.getBuffer().getBlockType();<a name="line.455"></a>
+<span class="sourceLineNo">456</span> if (evict) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span> heapsize *= -1;<a name="line.457"></a>
+<span class="sourceLineNo">458</span> }<a name="line.458"></a>
+<span class="sourceLineNo">459</span> if (bt != null && bt.isData()) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span> dataBlockSize.add(heapsize);<a name="line.460"></a>
+<span class="sourceLineNo">461</span> }<a name="line.461"></a>
+<span class="sourceLineNo">462</span> return size.addAndGet(heapsize);<a name="line.462"></a>
+<span class="sourceLineNo">463</span> }<a name="line.463"></a>
+<span class="sourceLineNo">464</span><a name="line.464"></a>
+<span class="sourceLineNo">465</span> /**<a name="line.465"></a>
+<span class="sourceLineNo">466</span> * Get the buffer of the block with the specified name.<a name="line.466"></a>
+<span class="sourceLineNo">467</span> *<a name="line.467"></a>
+<span class="sourceLineNo">468</span> * @param cacheKey block's cache key<a name="line.468"></a>
+<span class="sourceLineNo">469</span> * @param caching true if the caller caches blocks on cache misses<a name="line.469"></a>
+<span class="sourceLineNo">470</span> * @param repeat Whether this is a repeat lookup for the same block<a name="line.470"></a>
+<span class="sourceLineNo">471</span> * (used to avoid double counting cache misses when doing double-check<a name="line.471"></a>
+<span class="sourceLineNo">472</span> * locking)<a name="line.472"></a>
+<span class="sourceLineNo">473</span> * @param updateCacheMetrics Whether to update cache metrics or not<a name="line.473"></a>
+<span class="sourceLineNo">474</span> *<a name="line.474"></a>
+<span class="sourceLineNo">475</span> * @return buffer of specified cache key, or null if not in cache<a name="line.475"></a>
+<span class="sourceLineNo">476</span> */<a name="line.476"></a>
+<span class="sourceLineNo">477</span> @Override<a name="line.477"></a>
+<span class="sourceLineNo">478</span> public Cacheable getBlock(BlockCacheKey cacheKey, boolean caching, boolean repeat,<a name="line.478"></a>
+<span class="sourceLineNo">479</span> boolean updateCacheMetrics) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.480"></a>
+<span class="sourceLineNo">481</span> if (cb == null) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span> if (!repeat && updateCacheMetrics) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> stats.miss(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> // If there is another block cache then try and read there.<a name="line.485"></a>
+<span class="sourceLineNo">486</span> // However if this is a retry ( second time in double checked locking )<a name="line.486"></a>
+<span class="sourceLineNo">487</span> // And it's already a miss then the l2 will also be a miss.<a name="line.487"></a>
+<span class="sourceLineNo">488</span> if (victimHandler != null && !repeat) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> Cacheable result = victimHandler.getBlock(cacheKey, caching, repeat, updateCacheMetrics);<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span> // Promote this to L1.<a name="line.491"></a>
+<span class="sourceLineNo">492</span> if (result != null && caching) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span> if (result instanceof HFileBlock && ((HFileBlock) result).usesSharedMemory()) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span> result = ((HFileBlock) result).deepClone();<a name="line.494"></a>
+<span class="sourceLineNo">495</span> }<a name="line.495"></a>
+<span class="sourceLineNo">496</span> cacheBlock(cacheKey, result, /* inMemory = */ false);<a name="line.496"></a>
+<span class="sourceLineNo">497</span> }<a name="line.497"></a>
+<span class="sourceLineNo">498</span> return result;<a name="line.498"></a>
+<span class="sourceLineNo">499</span> }<a name="line.499"></a>
+<span class="sourceLineNo">500</span> return null;<a name="line.500"></a>
+<span class="sourceLineNo">501</span> }<a name="line.501"></a>
+<span class="sourceLineNo">502</span> if (updateCacheMetrics) stats.hit(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.502"></a>
+<span class="sourceLineNo">503</span> cb.access(count.incrementAndGet());<a name="line.503"></a>
+<span class="sourceLineNo">504</span> return cb.getBuffer();<a name="line.504"></a>
+<span class="sourceLineNo">505</span> }<a name="line.505"></a>
+<span class="sourceLineNo">506</span><a name="line.506"></a>
+<span class="sourceLineNo">507</span> /**<a name="line.507"></a>
+<span class="sourceLineNo">508</span> * Whether the cache contains block with specified cacheKey<a name="line.508"></a>
+<span class="sourceLineNo">509</span> *<a name="line.509"></a>
+<span class="sourceLineNo">510</span> * @return true if contains the block<a name="line.510"></a>
+<span class="sourceLineNo">511</span> */<a name="line.511"></a>
+<span class="sourceLineNo">512</span> public boolean containsBlock(BlockCacheKey cacheKey) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span> return map.containsKey(cacheKey);<a name="line.513"></a>
+<span class="sourceLineNo">514</span> }<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span> @Override<a name="line.516"></a>
+<span class="sourceLineNo">517</span> public boolean evictBlock(BlockCacheKey cacheKey) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.518"></a>
+<span class="sourceLineNo">519</span> return cb != null && evictBlock(cb, false) > 0;<a name="line.519"></a>
+<span class="sourceLineNo">520</span> }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span> /**<a name="line.522"></a>
+<span class="sourceLineNo">523</span> * Evicts all blocks for a specific HFile. This is an<a name="line.523"></a>
+<span class="sourceLineNo">524</span> * expensive operation implemented as a linear-time search through all blocks<a name="line.524"></a>
+<span class="sourceLineNo">525</span> * in the cache. Ideally this should be a search in a log-access-time map.<a name="line.525"></a>
+<span class="sourceLineNo">526</span> *<a name="line.526"></a>
+<span class="sourceLineNo">527</span> * <p><a name="line.527"></a>
+<span class="sourceLineNo">528</span> * This is used for evict-on-close to remove all blocks of a specific HFile.<a name="line.528"></a>
+<span class="sourceLineNo">529</span> *<a name="line.529"></a>
+<span class="sourceLineNo">530</span> * @return the number of blocks evicted<a name="line.530"></a>
+<span class="sourceLineNo">531</span> */<a name="line.531"></a>
+<span class="sourceLineNo">532</span> @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span> public int evictBlocksByHfileName(String hfileName) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span> int numEvicted = 0;<a name="line.534"></a>
+<span class="sourceLineNo">535</span> for (BlockCacheKey key : map.keySet()) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span> if (key.getHfileName().equals(hfileName)) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span> if (evictBlock(key))<a name="line.537"></a>
+<span class="sourceLineNo">538</span> ++numEvicted;<a name="line.538"></a>
+<span class="sourceLineNo">539</span> }<a name="line.539"></a>
+<span class="sourceLineNo">540</span> }<a name="line.540"></a>
+<span class="sourceLineNo">541</span> if (victimHandler != null) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span> numEvicted += victimHandler.evictBlocksByHfileName(hfileName);<a name="line.542"></a>
+<span class="sourceLineNo">543</span> }<a name="line.543"></a>
+<span class="sourceLineNo">544</span> return numEvicted;<a name="line.544"></a>
+<span class="sourceLineNo">545</span> }<a name="line.545"></a>
+<span class="sourceLineNo">546</span><a name="line.546"></a>
+<span class="sourceLineNo">547</span> /**<a name="line.547"></a>
+<span class="sourceLineNo">548</span> * Evict the block, and it will be cached by the victim handler if exists &amp;&amp;<a name="line.548"></a>
+<span class="sourceLineNo">549</span> * block may be read again later<a name="line.549"></a>
+<span class="sourceLineNo">550</span> *<a name="line.550"></a>
+<span class="sourceLineNo">551</span> * @param evictedByEvictionProcess true if the given block is evicted by<a name="line.551"></a>
+<span class="sourceLineNo">552</span> * EvictionThread<a name="line.552"></a>
+<span class="sourceLineNo">553</span> * @return the heap size of evicted block<a name="line.553"></a>
+<span class="sourceLineNo">554</span> */<a name="line.554"></a>
+<span class="sourceLineNo">555</span> protected long evictBlock(LruCachedBlock block, boolean evictedByEvictionProcess) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span> boolean found = map.remove(block.getCacheKey()) != null;<a name="line.556"></a>
+<span class="sourceLineNo">557</span> if (!found) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span> return 0;<a name="line.558"></a>
+<span class="sourceLineNo">559</span> }<a name="line.559"></a>
+<span class="sourceLineNo">560</span> updateSizeMetrics(block, true);<a name="line.560"></a>
+<span class="sourceLineNo">561</span> long val = elements.decrementAndGet();<a name="line.561"></a>
+<span class="sourceLineNo">562</span> if (LOG.isTraceEnabled()) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span> long size = map.size();<a name="line.563"></a>
+<span class="sourceLineNo">564</span> assertCounterSanity(size, val);<a name="line.564"></a>
+<span class="sourceLineNo">565</span> }<a name="line.565"></a>
+<span class="sourceLineNo">566</span> if (block.getBuffer().getBlockType().isData()) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span> dataBlockElements.decrement();<a name="line.567"></a>
+<span class="sourceLineNo">568</span> }<a name="line.568"></a>
+<span class="sourceLineNo">569</span> if (evictedByEvictionProcess) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span> // When the eviction of the block happened because of invalidation of HFiles, no need to<a name="line.570"></a>
+<span class="sourceLineNo">571</span> // update the stats counter.<a name="line.571"></a>
+<span class="sourceLineNo">572</span> stats.evicted(block.getCachedTime(), block.getCacheKey().isPrimary());<a name="line.572"></a>
+<span class="sourceLineNo">573</span> if (victimHandler != null) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span> victimHandler.cacheBlock(block.getCacheKey(), block.getBuffer());<a name="line.574"></a>
+<span class="sourceLineNo">575</span> }<a name="line.575"></a>
+<span class="sourceLineNo">576</span> }<a name="line.576"></a>
+<span class="sourceLineNo">577</span> return block.heapSize();<a name="line.577"></a>
+<span class="sourceLineNo">578</span> }<a name="line.578"></a>
+<span class="sourceLineNo">579</span><a name="line.579"></a>
+<span class="sourceLineNo">580</span> /**<a name="line.580"></a>
+<span class="sourceLineNo">581</span> * Multi-threaded call to run the eviction process.<a name="line.581"></a>
+<span class="sourceLineNo">582</span> */<a name="line.582"></a>
+<span class="sourceLineNo">583</span> private void runEviction() {<a name="line.583"></a>
+<span class="sourceLineNo">584</span> if (evictionThread == null) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span> evict();<a name="line.585"></a>
+<span class="sourceLineNo">586</span> } else {<a name="line.586"></a>
+<span class="sourceLineNo">587</span> evictionThread.evict();<a name="line.587"></a>
+<span class="sourceLineNo">588</span> }<a name="line.588"></a>
+<span class="sourceLineNo">589</span> }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span> @VisibleForTesting<a name="line.591"></a>
+<span class="sourceLineNo">592</span> boolean isEvictionInProgress() {<a name="line.592"></a>
+<span class="sourceLineNo">593</span> return evictionInProgress;<a name="line.593"></a>
+<span class="sourceLineNo">594</span> }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span> @VisibleForTesting<a name="line.596"></a>
+<span class="sourceLineNo">597</span> long getOverhead() {<a name="line.597"></a>
+<span class="sourceLineNo">598</span> return overhead;<a name="line.598"></a>
+<span class="sourceLineNo">599</span> }<a name="line.599"></a>
+<span class="sourceLineNo">600</span><a name="line.600"></a>
+<span class="sourceLineNo">601</span> /**<a name="line.601"></a>
+<span class="sourceLineNo">602</span> * Eviction method.<a name="line.602"></a>
+<span class="sourceLineNo">603</span> */<a name="line.603"></a>
+<span class="sourceLineNo">604</span> void evict() {<a name="line.604"></a>
+<span class="sourceLineNo">605</span><a name="line.605"></a>
+<span class="sourceLineNo">606</span> // Ensure only one eviction at a time<a name="line.606"></a>
+<span class="sourceLineNo">607</span> if(!evictionLock.tryLock()) return;<a name="line.607"></a>
<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span> @VisibleForTesting<a name="line.609"></a>
-<span class="sourceLineNo">610</span> long getOverhead() {<a name="line.610"></a>
-<span class="sourceLineNo">611</span> return overhead;<a name="line.611"></a>
-<span class="sourceLineNo">612</span> }<a name="line.612"></a>
+<span class="sourceLineNo">609</span> try {<a name="line.609"></a>
+<span class="sourceLineNo">610</span> evictionInProgress = true;<a name="line.610"></a>
+<span class="sourceLineNo">611</span> long currentSize = this.size.get();<a name="line.611"></a>
+<span class="sourceLineNo">612</span> long bytesToFree = currentSize - minSize();<a name="line.612"></a>
<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span> /**<a name="line.614"></a>
-<span class="sourceLineNo">615</span> * Eviction method.<a name="line.615"></a>
-<span class="sourceLineNo">616</span> */<a name="line.616"></a>
-<span class="sourceLineNo">617</span> void evict() {<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span> // Ensure only one eviction at a time<a name="line.619"></a>
-<span class="sourceLineNo">620</span> if(!evictionLock.tryLock()) return;<a name="line.620"></a>
+<span class="sourceLineNo">614</span> if (LOG.isTraceEnabled()) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span> LOG.trace("Block cache LRU eviction started; Attempting to free " +<a name="line.615"></a>
+<span class="sourceLineNo">616</span> StringUtils.byteDesc(bytesToFree) + " of total=" +<a name="line.616"></a>
+<span class="sourceLineNo">617</span> StringUtils.byteDesc(currentSize));<a name="line.617"></a>
+<span class="sourceLineNo">618</span> }<a name="line.618"></a>
+<span class="sourceLineNo">619</span><a name="line.619"></a>
+<span class="sourceLineNo">620</span> if (bytesToFree <= 0) return;<a name="line.620"></a>
<span class="sourceLineNo">621</span><a name="line.621"></a>
-<span class="sourceLineNo">622</span> try {<a name="line.622"></a>
-<span class="sourceLineNo">623</span> evictionInProgress = true;<a name="line.623"></a>
-<span class="sourceLineNo">624</span> long currentSize = this.size.get();<a name="line.624"></a>
-<span class="sourceLineNo">625</span> long bytesToFree = currentSize - minSize();<a name="line.625"></a>
+<span class="sourceLineNo">622</span> // Instantiate priority buckets<a name="line.622"></a>
+<span class="sourceLineNo">623</span> BlockBucket bucketSingle = new BlockBucket("single", bytesToFree, blockSize, singleSize());<a name="line.623"></a>
+<span class="sourceLineNo">624</span> BlockBucket bucketMulti = new BlockBucket("multi", bytesToFree, blockSize, multiSize());<a name="line.624"></a>
+<span class="sourceLineNo">625</span> BlockBucket bucketMemory = new BlockBucket("memory", bytesToFree, blockSize, memorySize());<a name="line.625"></a>
<span class="sourceLineNo">626</span><a name="line.626"></a>
-<span class="sourceLineNo">627</span> if (LOG.isTraceEnabled()) {<a name="line.627"></a>
-<span class="sourceLineNo">628</span> LOG.trace("Block cache LRU eviction started; Attempting to free " +<a name="line.628"></a>
-<span class="sourceLineNo">629</span> StringUtils.byteDesc(bytesToFree) + " of total=" +<a name="line.629"></a>
-<span class="sourceLineNo">630</span> StringUtils.byteDesc(currentSize));<a name="line.630"></a>
-<span class="sourceLineNo">631</span> }<a name="line.631"></a>
-<span class="sourceLineNo">632</span><a name="line.632"></a>
-<span class="sourceLineNo">633</span> if (bytesToFree <= 0) return;<a name="line.633"></a>
-<span class="sourceLineNo">634</span><a name="line.634"></a>
-<span class="sourceLineNo">635</span> // Instantiate priority buckets<a name="line.635"></a>
-<span class="sourceLineNo">636</span> BlockBucket bucketSingle = new BlockBucket("single", bytesToFree, blockSize, singleSize());<a name="line.636"></a>
-<span class="sourceLineNo">637</span> BlockBucket bucketMulti = new BlockBucket("multi", bytesToFree, blockSize, multiSize());<a name="line.637"></a>
-<span class="sourceLineNo">638</span> BlockBucket bucketMemory = new BlockBucket("memory", bytesToFree, blockSize, memorySize());<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span> // Scan entire map putting into appropriate buckets<a name="line.640"></a>
-<span class="sourceLineNo">641</span> for (LruCachedBlock cachedBlock : map.values()) {<a name="line.641"></a>
-<span class="sourceLineNo">642</span> switch (cachedBlock.getPriority()) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span> case SINGLE: {<a name="line.643"></a>
-<span class="sourceLineNo">644</span> bucketSingle.add(cachedBlock);<a name="line.644"></a>
-<span class="sourceLineNo">645</span> break;<a name="line.645"></a>
-<span class="sourceLineNo">646</span> }<a name="line.646"></a>
-<span class="sourceLineNo">647</span> case MULTI: {<a name="line.647"></a>
-<span class="sourceLineNo">648</span> bucketMulti.add(cachedBlock);<a name="line.648"></a>
-<span class="sourceLineNo">649</span> break;<a name="line.649"></a>
-<span class="sourceLineNo">650</span> }<a name="line.650"></a>
-<span class="sourceLineNo">651</span> case MEMORY: {<a name="line.651"></a>
-<span class="sourceLineNo">652</span> bucketMemory.add(cachedBlock);<a name="line.652"></a>
-<span class="sourceLineNo">653</span> break;<a name="line.653"></a>
-<span class="sourceLineNo">654</span> }<a name="line.654"></a>
-<span class="sourceLineNo">655</span> }<a name="line.655"></a>
-<span class="sourceLineNo">656</span> }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span> long bytesFreed = 0;<a name="line.658"></a>
-<span class="sourceLineNo">659</span> if (forceInMemory || memoryFactor > 0.999f) {<a name="line.659"></a>
-<span class="sourceLineNo">660</span> long s = bucketSingle.totalSize();<a name="line.660"></a>
-<span class="sourceLineNo">661</span> long m = bucketMulti.totalSize();<a name="line.661"></a>
-<span class="sourceLineNo">662</span> if (bytesToFree > (s + m)) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span> // this means we need to evict blocks in memory bucket to make room,<a name="line.663"></a>
-<span class="sourceLineNo">664</span> // so the single and multi buckets will be emptied<a name="line.664"></a>
-<span class="sourceLineNo">665</span> bytesFreed = bucketSingle.free(s);<a name="line.665"></a>
-<span class="sourceLineNo">666</span> bytesFreed += bucketMulti.free(m);<a name="line.666"></a>
-<span class="sourceLineNo">667</span> if (LOG.isTraceEnabled()) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.668"></a>
-<span class="sourceLineNo">669</span> " from single and multi buckets");<a name="line.669"></a>
-<span class="sourceLineNo">670</span> }<a name="line.670"></a>
-<span class="sourceLineNo">671</span> bytesFreed += bucketMemory.free(bytesToFree - bytesFreed);<a name="line.671"></a>
-<span class="sourceLineNo">672</span> if (LOG.isTraceEnabled()) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.673"></a>
-<span class="sourceLineNo">674</span> " total from all three buckets ");<a name="line.674"></a>
-<span class="sourceLineNo">675</span> }<a name="line.675"></a>
-<span class="sourceLineNo">676</span> } else {<a name="line.676"></a>
-<span class="sourceLineNo">677</span> // this means no need to evict block in memory bucket,<a name="line.677"></a>
-<span class="sourceLineNo">678</span> // and we try best to make the ratio between single-bucket and<a name="line.678"></a>
-<span class="sourceLineNo">679</span> // multi-bucket is 1:2<a name="line.679"></a>
-<span class="sourceLineNo">680</span> long bytesRemain = s + m - bytesToFree;<a name="line.680"></a>
-<span class="sourceLineNo">681</span> if (3 * s <= bytesRemain) {<a name="line.681"></a>
-<span class="sourceLineNo">682</span> // single-bucket is small enough that no eviction happens for it<a name="line.682"></a>
-<span class="sourceLineNo">683</span> // hence all eviction goes from multi-bucket<a name="line.683"></a>
-<span class="sourceLineNo">684</span> bytesFreed = bucketMulti.free(bytesToFree);<a name="line.684"></a>
-<span class="sourceLineNo">685</span> } else if (3 * m <= 2 * bytesRemain) {<a name="line.685"></a>
-<span class="sourceLineNo">686</span> // multi-bucket is small enough that no eviction happens for it<a name="line.686"></a>
-<span class="sourceLineNo">687</span> // hence all eviction goes from single-bucket<a name="line.687"></a>
-<span class="sourceLineNo">688</span> bytesFreed = bucketSingle.free(bytesToFree);<a name="line.688"></a>
-<span class="sourceLineNo">689</span> } else {<a name="line.689"></a>
-<span class="sourceLineNo">690</span> // both buckets need to evict some blocks<a name="line.690"></a>
-<span class="sourceLineNo">691</span> bytesFreed = bucketSingle.free(s - bytesRemain / 3);<a name="line.691"></a>
-<span class="sourceLineNo">692</span> if (bytesFreed < bytesToFree) {<a name="line.692"></a>
-<span class="sourceLineNo">693</span> bytesFreed += bucketMulti.free(bytesToFree - bytesFreed);<a name="line.693"></a>
-<span class="sourceLineNo">694</span> }<a name="line.694"></a>
-<span class="sourceLineNo">695</span> }<a name="line.695"></a>
-<span class="sourceLineNo">696</span> }<a name="line.696"></a>
-<span class="sourceLineNo">697</span> } else {<a name="line.697"></a>
-<span class="sourceLineNo">698</span> PriorityQueue<BlockBucket> bucketQueue = new PriorityQueue<>(3);<a name="line.698"></a>
-<span class="sourceLineNo">699</span><a name="line.699"></a>
-<span class="sourceLineNo">700</span> bucketQueue.add(bucketSingle);<a name="line.700"></a>
-<span class="sourceLineNo">701</span> bucketQueue.add(bucketMulti);<a name="line.701"></a>
-<span class="sourceLineNo">702</span> bucketQueue.add(bucketMemory);<a name="line.702"></a>
-<span class="sourceLineNo">703</span><a name="line.703"></a>
-<span class="sourceLineNo">704</span> int remainingBuckets = 3;<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span> BlockBucket bucket;<a name="line.706"></a>
-<span class="sourceLineNo">707</span> while ((bucket = bucketQueue.poll()) != null) {<a name="line.707"></a>
-<span class="sourceLineNo">708</span> long overflow = bucket.overflow();<a name="line.708"></a>
-<span class="sourceLineNo">709</span> if (overflow > 0) {<a name="line.709"></a>
-<span class="sourceLineNo">710</span> long bucketBytesToFree =<a name="line.710"></a>
-<span class="sourceLineNo">711</span> Math.min(overflow, (bytesToFree - bytesFreed) / remainingBuckets);<a name="line.711"></a>
-<span class="sourceLineNo">712</span> bytesFreed += bucket.free(bucketBytesToFree);<a name="line.712"></a>
-<span class="sourceLineNo">713</span> }<a name="line.713"></a>
-<span class="sourceLineNo">714</span> remainingBuckets--;<a name="line.714"></a>
-<span class="sourceLineNo">715</span> }<a name="line.715"></a>
-<span class="sourceLineNo">716</span> }<a name="line.716"></a>
-<span class="sourceLineNo">717</span> if (LOG.isTraceEnabled()) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span> long single = bucketSingle.totalSize();<a name="line.718"></a>
-<span class="sourceLineNo">719</span> long multi = bucketMulti.totalSize();<a name="line.719"></a>
-<span class="sourceLineNo">720</span> long memory = bucketMemory.totalSize();<a name="line.720"></a>
-<span class="sourceLineNo">721</span> LOG.trace("Block cache LRU eviction completed; " +<a name="line.721"></a>
-<span class="sourceLineNo">722</span> "freed=" + StringUtils.byteDesc(bytesFreed) + ", " +<a name="line.722"></a>
-<span class="sourceLineNo">723</span> "total=" + StringUtils.byteDesc(this.size.get()) + ", " +<a name="line.723"></a>
-<span class="sourceLineNo">724</span> "single=" + StringUtils.byteDesc(single) + ", " +<a name="line.724"></a>
-<span class="sourceLineNo">725</span> "multi=" + StringUtils.byteDesc(multi) + ", " +<a name="line.725"></a>
-<span class="sourceLineNo">726</span> "memory=" + StringUtils.byteDesc(memory));<a name="line.726"></a>
-<span class="sourceLineNo">727</span> }<a name="line.727"></a>
-<span class="sourceLineNo">728</span> } finally {<a name="line.728"></a>
-<span class="sourceLineNo">729</span> stats.evict();<a name="line.729"></a>
-<span class="sourceLineNo">730</span> evictionInProgress = false;<a name="line.730"></a>
-<span class="sourceLineNo">731</span> evictionLock.unlock();<a name="line.731"></a>
-<span class="sourceLineNo">732</span> }<a name="line.732"></a>
-<span class="sourceLineNo">733</span> }<a name="line.733"></a>
-<span class="sourceLineNo">734</span><a name="line.734"></a>
-<span class="sourceLineNo">735</span> @Override<a name="line.735"></a>
-<span class="sourceLineNo">736</span> public String toString() {<a name="line.736"></a>
-<span class="sourceLineNo">737</span> return MoreObjects.toStringHelper(this)<a name="line.737"></a>
-<span class="sourceLineNo">738</span> .add("blockCount", getBlockCount())<a name="line.738"></a>
-<span class="sourceLineNo">739</span> .add("currentSize", StringUtils.byteDesc(getCurrentSize()))<a name="line.739"></a>
-<span class="sourceLineNo">740</span> .add("freeSize", StringUtils.byteDesc(getFreeSize()))<a name="line.740"></a>
-<span class="sourceLineNo">741</span> .add("maxSize", StringUtils.byteDesc(getMaxSize()))<a name="line.741"></a>
-<span class="sourceLineNo">742</span> .add("heapSize", StringUtils.byteDesc(heapSize()))<a name="line.742"></a>
-<span class="sourceLineNo">743</span> .add("minSize", StringUtils.byteDesc(minSize()))<a name="line.743"></a>
-<span class="sourceLineNo">744</span> .add("minFactor", minFactor)<a name="line.744"></a>
-<span class="sourceLineNo">745</span> .add("multiSize", StringUtils.byteDesc(multiSize()))<a name="line.745"></a>
-<span class="sourceLineNo">746</span> .add("multiFactor", multiFactor)<a name="line.746"></a>
-<span class="sourceLineNo">747</span> .add("singleSize", StringUtils.byteDesc(singleSize()))<a name="line.747"></a>
-<span class="sourceLineNo">748</span> .add("singleFactor", singleFactor)<a name="line.748"></a>
-<span class="sourceLineNo">749</span> .toString();<a name="line.749"></a>
-<span class="sourceLineNo">750</span> }<a name="line.750"></a>
+<span class="sourceLineNo">627</span> // Scan entire map putting into appropriate buckets<a name="line.627"></a>
+<span class="sourceLineNo">628</span> for (LruCachedBlock cachedBlock : map.values()) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span> switch (cachedBlock.getPriority()) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span> case SINGLE: {<a name="line.630"></a>
+<span class="sourceLineNo">631</span> bucketSingle.add(cachedBlock);<a name="line.631"></a>
+<span class="sourceLineNo">632</span> break;<a name="line.632"></a>
+<span class="sourceLineNo">633</span> }<a name="line.633"></a>
+<span class="sourceLineNo">634</span> case MULTI: {<a name="line.634"></a>
+<span class="sourceLineNo">635</span> bucketMulti.add(cachedBlock);<a name="line.635"></a>
+<span class="sourceLineNo">636</span> break;<a name="line.636"></a>
+<span class="sourceLineNo">637</span> }<a name="line.637"></a>
+<span class="sourceLineNo">638</span> case MEMORY: {<a name="line.638"></a>
+<span class="sourceLineNo">639</span> bucketMemory.add(cachedBlock);<a name="line.639"></a>
+<span class="sourceLineNo">640</span> break;<a name="line.640"></a>
+<span class="sourceLineNo">641</span> }<a name="line.641"></a>
+<span class="sourceLineNo">642</span> }<a name="line.642"></a>
+<span class="sourceLineNo">643</span> }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span> long bytesFreed = 0;<a name="line.645"></a>
+<span class="sourceLineNo">646</span> if (forceInMemory || memoryFactor > 0.999f) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span> long s = bucketSingle.totalSize();<a name="line.647"></a>
+<span class="sourceLineNo">648</span> long m = bucketMulti.totalSize();<a name="line.648"></a>
+<span class="sourceLineNo">649</span> if (bytesToFree > (s + m)) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span> // this means we need to evict blocks in memory bucket to make room,<a name="line.650"></a>
+<span class="sourceLineNo">651</span> // so the single and multi buckets will be emptied<a name="line.651"></a>
+<span class="sourceLineNo">652</span> bytesFreed = bucketSingle.free(s);<a name="line.652"></a>
+<span class="sourceLineNo">653</span> bytesFreed += bucketMulti.free(m);<a name="line.653"></a>
+<span class="sourceLineNo">654</span> if (LOG.isTraceEnabled()) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.655"></a>
+<span class="sourceLineNo">656</span> " from single and multi buckets");<a name="line.656"></a>
+<span class="sourceLineNo">657</span> }<a name="line.657"></a>
+<span class="sourceLineNo">658</span> bytesFreed += bucketMemory.free(bytesToFree - bytesFreed);<a name="line.658"></a>
+<span class="sourceLineNo">659</span> if (LOG.isTraceEnabled()) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.660"></a>
+<span class="sourceLineNo">661</span> " total from all three buckets ");<a name="line.661"></a>
+<span class="sourceLineNo">662</span> }<a name="line.662"></a>
+<span class="sourceLineNo">663</span> } else {<a name="line.663"></a>
+<span class="sourceLineNo">664</span> // this means no need to evict block in memory bucket,<a name="line.664"></a>
+<span class="sourceLineNo">665</span> // and we try best to make the ratio between single-bucket and<a name="line.665"></a>
+<span class="sourceLineNo">666</span> // multi-bucket is 1:2<a name="line.666"></a>
+<span class="sourceLineNo">667</span> long bytesRemain = s + m - bytesToFree;<a name="line.667"></a>
+<span class="sourceLineNo">668</span> if (3 * s <= bytesRemain) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span> // single-bucket is small enough that no eviction happens for it<a name="line.669"></a>
+<span class="sourceLineNo">670</span> // hence all eviction goes from multi-bucket<a name="line.670"></a>
+<span class="sourceLineNo">671</span> bytesFreed = bucketMulti.free(bytesToFree);<a name="line.671"></a>
+<span class="sourceLineNo">672</span> } else if (3 * m <= 2 * bytesRemain) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span> // multi-bucket is small enough that no eviction happens for it<a name="line.673"></a>
+<span class="sourceLineNo">674</span> // hence all eviction goes from single-bucket<a name="line.674"></a>
+<span class="sourceLineNo">675</span> bytesFreed = bucketSingle.free(bytesToFree);<a name="line.675"></a>
+<span class="sourceLineNo">676</span> } else {<a name="line.676"></a>
+<span class="sourceLineNo">677</span> // both buckets need to evict some blocks<a name="line.677"></a>
+<span class="sourceLineNo">678</span> bytesFreed = bucketSingle.free(s - bytesRemain / 3);<a name="line.678"></a>
+<span class="sourceLineNo">679</span> if (bytesFreed < bytesToFree) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span> bytesFreed += bucketMulti.free(bytesToFree - bytesFreed);<a name="line.680"></a>
+<span class="sourceLineNo">681</span> }<a name="line.681"></a>
+<span class="sourceLineNo">682</span> }<a name="line.682"></a>
+<span class="sourceLineNo">683</span> }<a name="line.683"></a>
+<span class="sourceLineNo">684</span> } else {<a name="line.684"></a>
+<span class="sourceLineNo">685</span> PriorityQueue<BlockBucket> bucketQueue = new PriorityQueue<>(3);<a name="line.685"></a>
+<span class="sourceLineNo">686</span><a name="line.686"></a>
+<span class="sourceLineNo">687</span> bucketQueue.add(bucketSingle);<a name="line.687"></a>
+<span class="sourceLineNo">688</span> bucketQueue.add(bucketMulti);<a name="line.688"></a>
+<span class="sourceLineNo">689</span> bucketQueue.add(bucketMemory);<a name="line.689"></a>
+<span class="sourceLineNo">690</span><a name="line.690"></a>
+<span class="sourceLineNo">691</span> int remainingBuckets = 3;<a name="line.691"></a>
+<span class="sourceLineNo">692</span><a name="line.692"></a>
+<span class="sourceLineNo">693</span> BlockBucket bucket;<a name="line.693"></a>
+<span class="sourceLineNo">694</span> while ((bucket = bucketQueue.poll()) != null) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span> long overflow = bucket.overflow();<a name="line.695"></a>
+<span class="sourceLineNo">696</span> if (overflow > 0) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span> long bucketBytesToFree =<a name="line.697"></a>
+<span class="sourceLineNo">698</span> Math.min(overflow, (bytesToFree - bytesFreed) / remainingBuckets);<a name="line.698"></a>
+<span class="sourceLineNo">699</span> bytesFreed += bucket.free(bucketBytesToFree);<a name="line.699"></a>
+<span class="sourceLineNo">700</span> }<a name="line.700"></a>
+<span class="sourceLineNo">701</span> remainingBuckets--;<a name="line.701"></a>
+<span class="sourceLineNo">702</span> }<a name="line.702"></a>
+<span class="sourceLineNo">703</span> }<a name="line.703"></a>
+<span class="sourceLineNo">704</span> if (LOG.isTraceEnabled()) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span> long single = bucketSingle.totalSize();<a name="line.705"></a>
+<span class="sourceLineNo">706</span> long multi = bucketMulti.totalSize();<a name="line.706"></a>
+<span class="sourceLineNo">707</span> long memory = bucketMemory.totalSize();<a name="line.707"></a>
+<span class="sourceLineNo">708</span> LOG.trace("Block cache LRU eviction completed; " +<a name="line.708"></a>
+<span class="sourceLineNo">709</span> "freed=" + StringUtils.byteDesc(bytesFreed) + ", " +<a name="line.709"></a>
+<span class="sourceLineNo">710</span> "total=" + StringUtils.byteDesc(this.size.get()) + ", " +<a name="line.710"></a>
+<span class="sourceLineNo">711</span> "single=" + StringUtils.byteDesc(single) + ", " +<a name="line.711"></a>
+<span class="sourceLineNo">712</span> "multi=" + StringUtils.byteDesc(multi) + ", " +<a name="line.712"></a>
+<span class="sourceLineNo">713</span> "memory=" + StringUtils.byteDesc(memory));<a name="line.713"></a>
+<span class="sourceLineNo">714</span> }<a name="line.714"></a>
+<span class="sourceLineNo">715</span> } finally {<a name="line.715"></a>
+<span class="sourceLineNo">716</span> stats.evict();<a name="line.716"></a>
+<span class="sourceLineNo">717</span> evictionInProgress = false;<a name="line.717"></a>
+<span class="sourceLineNo">718</span> evictionLock.unlock();<a name="line.718"></a>
+<span class="sourceLineNo">719</span> }<a name="line.719"></a>
+<span class="sourceLineNo">720</span> }<a name="line.720"></a>
+<span class="sourceLineNo">721</span><a name="line.721"></a>
+<span class="sourceLineNo">722</span> @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span> public String toString() {<a name="line.723"></a>
+<span class="sourceLineNo">724</span> return MoreObjects.toStringHelper(this)<a name="line.724"></a>
+<span class="sourceLineNo">725</span> .add("blockCount", getBlockCount())<a name="line.725"></a>
+<span class="sourceLineNo">726</span> .add("currentSize", StringUtils.byteDesc(getCurrentSize()))<a name="line.726"></a>
+<span class="sourceLineNo">727</span> .add("freeSize", StringUtils.byteDesc(getFreeSize()))<a name="line.727"></a>
+<span class="sourceLineNo">728</span> .add("maxSize", StringUtils.byteDesc(getMaxSize()))<a name="line.728"></a>
+<span class="sourceLineNo">729</span> .add("heapSize", StringUtils.byteDesc(heapSize()))<a name="line.729"></a>
+<span class="sourceLineNo">730</span> .add("minSize", StringUtils.byteDesc(minSize()))<a name="line.730"></a>
+<span class="sourceLineNo">731</span> .add("minFactor", minFactor)<a name="line.731"></a>
+<span class="sourceLineNo">732</span> .add("multiSize", StringUtils.byteDesc(multiSize()))<a name="line.732"></a>
+<span class="sourceLineNo">733</span> .add("multiFactor", multiFactor)<a name="line.733"></a>
+<span class="sourceLineNo">734</span> .add("singleSize", StringUtils.byteDesc(singleSize()))<a name="line.734"></a>
+<span class="sourceLineNo">735</span> .add("singleFactor", singleFactor)<a name="line.735"></a>
+<span class="sourceLineNo">736</span> .toString();<a name="line.736"></a>
+<span class="sourceLineNo">737</span> }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span> /**<a name="line.739"></a>
+<span class="sourceLineNo">740</span> * Used to group blocks into priority buckets. There will be a BlockBucket<a name="line.740"></a>
+<span class="sourceLineNo">741</span> * for each priority (single, multi, memory). Once bucketed, the eviction<a name="line.741"></a>
+<span class="sourceLineNo">742</span> * algorithm takes the appropriate number of elements out of each according<a name="line.742"></a>
+<span class="sourceLineNo">743</span> * to configuration parameters and their relatives sizes.<a name="line.743"></a>
+<span class="sourceLineNo">744</span> */<a name="line.744"></a>
+<span class="sourceLineNo">745</span> private class BlockBucket implements Comparable<BlockBucket> {<a name="line.745"></a>
+<span class="sourceLineNo">746</span><a name="line.746"></a>
+<span class="sourceLineNo">747</span> private final String name;<a name="line.747"></a>
+<span class="sourceLineNo">748</span> private LruCachedBlockQueue queue;<a name="line.748"></a>
+<span class="sourceLineNo">749</span> private long totalSize = 0;<a name="line.749"></a>
+<span class="sourceLineNo">750</span> private long bucketSize;<a name="line.750"></a>
<span class="sourceLineNo">751</span><a name="line.751"></a>
-<span class="sourceLineNo">752</span> /**<a name="line.752"></a>
-<span class="sourceLineNo">753</span> * Used to group blocks into priority buckets. There will be a BlockBucket<a name="line.753"></a>
-<span class="sourceLineNo">754</span> * for each priority (single, multi, memory). Once bucketed, the eviction<a name="line.754"></a>
-<span class="sourceLineNo">755</span> * algorithm takes the appropriate number of elements out of each according<a name="line.755"></a>
-<span class="sourceLineNo">756</span> * to configuration parameters and their relatives sizes.<a name="line.756"></a>
-<span class="sourceLineNo">757</span> */<a name="line.757"></a>
-<span class="sourceLineNo">758</span> private class BlockBucket implements Comparable<BlockBucket> {<a name="line.758"></a>
-<span class="sourceLineNo">759</span><a name="line.759"></a>
-<span class="sourceLineNo">760</span> private final String name;<a name="line.760"></a>
-<span class="sourceLineNo">761</span> private LruCachedBlockQueue queue;<a name="line.761"></a>
-<span class="sourceLineNo">762</span> private long totalSize = 0;<a name="line.762"></a>
-<span class="sourceLineNo">763</span> private long bucketSize;<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span> public BlockBucket(String name, long bytesToFree, long blockSize, long bucketSize) {<a name="line.765"></a>
-<span class="sourceLineNo">766</span> this.name = name;<a name="line.766"></a>
-<span class="sourceLineNo">767</span> this.bucketSize = bucketSize;<a name="line.767"></a>
-<span class="sourceLineNo">768</span> queue = new LruCachedBlockQueue(bytesToFree, blockSize);<a name="line.768"></a>
-<span class="sourceLineNo">769</span> totalSize = 0;<a name="line.769"></a>
-<span class="sourceLineNo">770</span> }<a name="line.770"></a>
-<span class="sourceLineNo">771</span><a name="line.771"></a>
-<span class="sourceLineNo">772</span> public void add(LruCachedBlock block) {<a name="line.772"></a>
-<span class="sourceLineNo">773</span> totalSize += block.heapSize();<a name="line.773"></a>
-<span class="sourceLineNo">774</span> queue.add(block);<a name="line.774"></a>
-<span class="sourceLineNo">775</span> }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span> public long free(long toFree) {<a name="line.777"></a>
-<span class="sourceLineNo">778</span> if (LOG.isTraceEnabled()) {<a name="line.778"></a>
-<span class="sourceLineNo">779</span> LOG.trace("freeing " + StringUtils.byteDesc(toFree) + " from " + this);<a name="line.779"></a>
-<span class="sourceLineNo">780</span> }<a name="line.780"></a>
-<span class="sourceLineNo">781</span> LruCachedBlock cb;<a name="line.781"></a>
-<span class="sourceLineNo">782</span> long freedBytes = 0;<a name="line.782"></a>
-<span class="sourceLineNo">783</span> while ((cb = queue.pollLast()) != null) {<a name="line.783"></a>
-<span class="sourceLineNo">784</span> freedBytes += evictBlock(cb, true);<a name="line.784"></a>
-<span class="sourceLineNo">785</span> if (freedBytes >= toFree) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span> return freedBytes;<a name="line.786"></a>
-<span class="sourceLineNo">787</span> }<a name="line.787"></a>
-<span class="sourceLineNo">788</span> }<a name="line.788"></a>
-<span class="sourceLineNo">789</span> if (LOG.isTraceEnabled()) {<a name="line.789"></a>
-<span class="sourceLineNo">790</span> LOG.trace("freed " + StringUtils.byteDesc(freedBytes) + " from " + this);<a name="line.790"></a>
-<span class="sourceLineNo">791</span> }<a name="line.791"></a>
-<span class="sourceLineNo">792</span> return freedBytes;<a name="line.792"></a>
+<span class="sourceLineNo">752</span> public BlockBucket(String name, long bytesToFree, long blockSize, long bucketSize) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span> this.name = name;<a name="line.753"></a>
+<span class="sourceLineNo">754</span> this.bucketSize = bucketSize;<a name="line.754"></a>
+<span class="sourceLineNo">755</span> queue = new LruCachedBlockQueue(bytesToFree, blockSize);<a name="line.755"></a>
+<span class="sourceLineNo">756</span> totalSize = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span> }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span> public void add(LruCachedBlock block) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span> totalSize += block.heapSize();<a name="line.760"></a>
+<span class="sourceLineNo">761</span> queue.add(block);<a name="line.761"></a>
+<span class="sourceLineNo">762</span> }<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span> public long free(long toFree) {<a name="line.764"></a>
+<span class="sourceLineNo">765</span> if (LOG.isTraceEnabled()) {<a name="line.765"></a>
+<span class="sourceLineNo">766</span> LOG.trace("freeing " + StringUtils.byteDesc(toFree) + " from " + this);<a name="line.766"></a>
+<span class="sourceLineNo">767</span> }<a name="line.767"></a>
+<span class="sourceLineNo">768</span> LruCachedBlock cb;<a name="line.768"></a>
+<span class="sourceLineNo">769</span> long freedBytes = 0;<a name="line.769"></a>
+<span class="sourceLineNo">770</span> while ((cb = queue.pollLast()) != null) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span> freedBytes += evictBlock(cb, true);<a name="line.771"></a>
+<span class="sourceLineNo">772</span> if (freedBytes >= toFree) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span> return freedBytes;<a name="line.773"></a>
+<span class="sourceLineNo">774</span> }<a name="line.774"></a>
+<span class="sourceLineNo">775</span> }<a name="line.775"></a>
+<span class="sourceLineNo">776</span> if (LOG.isTraceEnabled()) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span> LOG.trace("freed " + StringUtils.byteDesc(freedBytes) + " from " + this);<a name="line.777"></a>
+<span class="sourceLineNo">778</span> }<a name="line.778"></a>
+<span class="sourceLineNo">779</span> return freedBytes;<a name="line.779"></a>
+<span class="sourceLineNo">780</span> }<a name="line.780"></a>
+<span class="sourceLineNo">781</span><a name="line.781"></a>
+<span class="sourceLineNo">782</span> public long overflow() {<a name="line.782"></a>
+<span class="sourceLineNo">783</span> return totalSize - bucketSize;<a name="line.783"></a>
+<span class="sourceLineNo">784</span> }<a name="line.784"></a>
+<span class="sourceLineNo">785</span><a name="line.785"></a>
+<span class="sourceLineNo">786</span> public long totalSize() {<a name="line.786"></a>
+<span class="sourceLineNo">787</span> return totalSize;<a name="line.787"></a>
+<span class="sourceLineNo">788</span> }<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span> @Override<a name="line.790"></a>
+<span class="sourceLineNo">791</span> public int compareTo(BlockBucket that) {<a name="line.791"></a>
+<span class="sourceLineNo">792</span> return Long.compare(this.overflow(), that.overflow());<a name="line.792"></a>
<span class="sourceLineNo">793</span> }<a name="line.793"></a>
<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span> public long overflow() {<a name="line.795"></a>
-<span class="sourceLineNo">796</span> return totalSize - bucketSize;<a name="line.796"></a>
-<span class="sourceLineNo">797</span> }<a name="line.797"></a>
-<span class="sourceLineNo">798</span><a name="line.798"></a>
-<span class="sourceLineNo">799</span> public long totalSize() {<a name="line.799"></a>
-<span class="sourceLineNo">800</span> return totalSize;<a name="line.800"></a>
+<span class="sourceLineNo">795</span> @Override<a name="line.795"></a>
+<span class="sourceLineNo">796</span> public boolean equals(Object that) {<a name="line.796"></a>
+<span class="sourceLineNo">797</span> if (that == null || !(that instanceof BlockBucket)) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span> return false;<a name="line.798"></a>
+<span class="sourceLineNo">799</span> }<a name="line.799"></a>
+<span class="sourceLineNo">800</span> return compareTo((BlockBucket)that) == 0;<a name="line.800"></a>
<span class="sourceLineNo">801</span> }<a name="line.801"></a>
<span class="sourceLineNo">802</span><a name="line.802"></a>
<span class="sourceLineNo">803</span> @Override<a name="line.803"></a>
-<span class="sourceLineNo">804</span> public int compareTo(BlockBucket that) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span> return Long.compare(this.overflow(), that.overflow());<a name="line.805"></a>
+<span class="sourceLineNo">804</span> public int hashCode() {<a name="line.804"></a>
+<span class="sourceLineNo">805</span> return Objects.hashCode(name, bucketSize, queue, totalSize);<a name="line.805"></a>
<span class="sourceLineNo">806</span> }<a name="line.806"></a>
<span class="sourceLineNo">807</span><a name="line.807"></a>
<span class="sourceLineNo">808</span> @Override<a name="line.808"></a>
-<span class="sourceLineNo">809</span> public boolean equals(Object that) {<a name="line.809"></a>
-<span class="sourceLineNo">810</span> if (that == null || !(that instanceof BlockBucket)) {<a name="line.810"></a>
-<span class="sourceLineNo">811</span> return false;<a name="line.811"></a>
-<span class="sourceLineNo">812</span> }<a name="line.812"></a>
-<span class="sourceLineNo">813</span> return compareTo((BlockBucket)that) == 0;<a name="line.813"></a>
-<span class="sourceLineNo">814</span> }<a name="line.814"></a>
-<span class="sourceLineNo">815</span><a name="line.815"></a>
-<span class="sourceLineNo">816</span> @Override<a name="line.816"></a>
-<span class="sourceLineNo">817</span> public int hashCode() {<a name="line.817"></a>
-<span class="sourceLineNo">818</span> return Objects.hashCode(name, bucketSize, queue, totalSize);<a name="line.818"></a>
-<span class="sourceLineNo">819</span> }<a name="line.819"></a>
-<span class="sourceLineNo">820</span><a name="line.820"></a>
-<span class="sourceLineNo">821</span> @Override<a name="line.821"></a>
-<span class="sourceLineNo">822</span> public String toString() {<a name="line.822"></a>
-<span class="sourceLineNo">823</span> return MoreObjects.toStringHelper(this)<a name="line.823"></a>
-<span class="sourceLineNo">824</span> .add("name", name)<a name="line.824"></a>
-<span class="sourceLineNo">825</span> .add("totalSize", StringUtils.byteDesc(totalSize))<a name="line.825"></a>
-<span class="sourceLineNo">826</span> .add("bucketSize", StringUtils.byteDesc(bucketSize))<a name="line.826"></a>
-<span class="sourceLineNo">827</span> .toString();<a name="line.827"></a>
-<span class="sourceLineNo">828</span> }<a name="line.828"></a>
-<span class="sourceLineNo">829</span> }<a name="line.829"></a>
-<span class="sourceLineNo">830</span><a name="line.830"></a>
-<span class="sourceLineNo">831</span> /**<a name="line.831"></a>
-<span class="sourceLineNo">832</span> * Get the maximum size of this cache.<a name="line.832"></a>
-<span class="sourceLineNo">833</span> *<a name="line.833"></a>
-<span class="sourceLineNo">834</span> * @return max size in bytes<a name="line.834"></a>
-<span class="sourceLineNo">835</span> */<a name="line.835"></a>
-<span class="sourceLineNo">836</span><a name="line.836"></a>
-<span class="sourceLineNo">837</span> @Override<a name="line.837"></a>
-<span class="sourceLineNo">838</span> public long getMaxSize() {<a name="line.838"></a>
-<span class="sourceLineNo">839</span> return this.maxSize;<a name="line.839"></a>
-<span class="sourceLineNo">840</span> }<a name="line.840"></a>
-<span class="sourceLineNo">841</span><a name="line.841"></a>
-<span class="sourceLineNo">842</span> @Override<a name="line.842"></a>
-<span class="sourceLineNo">843</span> public long getCurrentSize() {<a name="line.843"></a>
-<span class="sourceLineNo">844</span> return this.size.get();<a name="line.844"></a>
-<span class="sourceLineNo">845</span> }<a name="line.845"></a>
-<span class="sourceLineNo">846</span><a name="line.846"></a>
-<span class="sourceLineNo">847</span> @Override<a name="line.847"></a>
-<span class="sourceLineNo">848</span> public long getCurrentDataSize() {<a name="line.848"></a>
-<span class="sourceLineNo">849</span> return this.dataBlockSize.sum();<a name="line.849"></a>
-<span class="sourceLineNo">850</span> }<a name="line.850"></a>
-<span class="sourceLineNo">851</span><a name="line.851"></a>
-<span class="sourceLineNo">852</span> @Override<a name="line.852"></a>
-<span class="sourceLineNo">853</span> public long getFreeSize() {<a name="line.853"></a>
-<span class="sourceLineNo">854</span> return getMaxSize() - getCurrentSize();<a name="line.854"></a>
-<span class="sourceLineNo">855</span> }<a name="line.855"></a>
-<span class="sourceLineNo">856</span><a name="line.856"></a>
-<span class="sourceLineNo">857</span> @Override<a name="line.857"></a>
-<span class="sourceLineNo">858</span> public long size() {<a name="line.858"></a>
-<span class="sourceLineNo">859</span> return getMaxSize();<a name="line.859"></a>
-<span class="sourceLineNo">860</span> }<a name="line.860"></a>
-<span class="sourceLineNo">861</span><a name="line.861"></a>
-<span class="sourceLineNo">862</span> @Override<a name="line.862"></a>
-<span class="sourceLineNo">863</span> public long getBlockCount() {<a name="line.863"></a>
-<span class="sourceLineNo">864</span> return this.elements.get();<a name="line.864"></a>
-<span class="sourceLineNo">865</span> }<a name="line.865"></a>
-<span class="sourceLineNo">866</span><a name="line.866"></a>
-<span class="sourceLineNo">867</span> @Override<a name="line.867"></a>
-<span class="sourceLineNo">868</span> public long getDataBlockCount() {<a name="line.868"></a>
-<span class="sourceLineNo">869</span> return this.dataBlockElements.sum();<a name="line.869"></a>
-<span class="sourceLineNo">870</span> }<a name="line.870"></a>
-<span class="sourceLineNo">871</span><a name="line.871"></a>
-<span class="sourceLineNo">872</span> EvictionThread getEvictionThread() {<a name="line.872"></a>
-<span class="sourceLineNo">873</span> return this.evictionThread;<a name="line.873"></a>
-<span class="sourceLineNo">874</span> }<a name="line.874"></a>
+<span class="sourceLineNo">809</span> public String toString() {<a name="line.809"></a>
+<span class="sourceLineNo">810</span> return MoreObjects.toStringHelper(this)<a name="line.810"></a>
+<span class="sourceLineNo">811</span> .add("name", name)<a name="line.811"></a>
+<span class="sourceLineNo">812</span> .add("totalSize", StringUtils.byteDesc(totalSize))<a name="line.812"></a>
+<span class="sourceLineNo">813</span> .add("bucketSize", StringUtils.byteDesc(bucketSize))<a name="line.813"></a>
+<span class="sourceLineNo">814</span> .toString();<a name="line.814"></a>
+<span class="sourceLineNo">815</span> }<a name="line.815"></a>
+<span class="sourceLineNo">816</span> }<a name="line.816"></a>
+<span class="sourceLineNo">817</span><a name="line.817"></a>
+<span class="sourceLineNo">818</span> /**<a name="line.818"></a>
+<span class="sourceLineNo">819</span> * Get the maximum size of this cache.<a name="line.819"></a>
+<span class="sourceLineNo">820</span> *<a name="line.820"></a>
+<span class="sourceLineNo">821</span> * @return max size in bytes<a name="line.821"></a>
+<span class="sourceLineNo">822</span> */<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span> @Override<a name="line.824"></a>
+<span class="sourceLineNo">825</span> public long getMaxSize() {<a name="line.825"></a>
+<span class="sourceLineNo">826</span> return this.maxSize;<a name="line.826"></a>
+<span class="sourceLineNo">827</span> }<a name="line.827"></a>
+<span class="sourceLineNo">828</span><a name="line.828"></a>
+<span class="sourceLineNo">829</span> @Override<a name="line.829"></a>
+<span class="sourceLineNo">830</span> public long getCurrentSize() {<a name="line.830"></a>
+<span class="sourceLineNo">831</span> return this.size.get();<a name="line.831"></a>
+<span class="sourceLineNo">832</span> }<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span> @Override<a name="line.834"></a>
+<span class="sourceLineNo">835</span> public long getCurrentDataSize() {<a name="line.835"></a>
+<span class="sourceLineNo">836</span> return this.dataBlockSize.sum();<a name="line.836"></a>
+<span class="sourceLineNo">837</span> }<a name="line.837"></a>
+<span class="sourceLineNo">838</span><a name="line.838"></a>
+<span class="sourceLineNo">839</span> @Override<a name="line.839"></a>
+<span class="sourceLineNo">840</span> public long getFreeSize() {<a name="line.840"></a>
+<span class="sourceLineNo">841</span> return getMaxSize() - getCurrentSize();<a name="line.841"></a>
+<span class="sourceLineNo">842</span> }<a name="line.842"></a>
+<span class="sourceLineNo">843</span><a name="line.843"></a>
+<span class="sourceLineNo">844</span> @Override<a name="line.844"></a>
+<span class="sourceLin
<TRUNCATED>
[17/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html
index 05e032c..40ef9f4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html
@@ -25,767 +25,805 @@
<span class="sourceLineNo">017</span> */<a name="line.17"></a>
<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.io.asyncfs;<a name="line.18"></a>
<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.21"></a>
+<span class="sourceLineNo">020</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.21"></a>
<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import com.google.protobuf.CodedOutputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.io.IOException;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.lang.reflect.Field;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.lang.reflect.InvocationTargetException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.lang.reflect.Method;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.net.InetAddress;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import java.net.InetSocketAddress;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import java.nio.ByteBuffer;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import java.security.GeneralSecurityException;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import java.util.Arrays;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import java.util.Collections;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import java.util.List;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import java.util.Map;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import java.util.Set;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import java.util.concurrent.TimeUnit;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>import javax.security.auth.callback.Callback;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import javax.security.auth.callback.CallbackHandler;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import javax.security.auth.callback.NameCallback;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import javax.security.auth.callback.PasswordCallback;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import javax.security.sasl.RealmCallback;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import javax.security.sasl.Sasl;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import javax.security.sasl.SaslClient;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import javax.security.sasl.SaslException;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.commons.codec.binary.Base64;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.commons.lang3.StringUtils;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.conf.Configuration;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.slf4j.Logger;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.slf4j.LoggerFactory;<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>import com.google.protobuf.ByteString;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.security.token.Token;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>/**<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@InterfaceAudience.Private<a name="line.109"></a>
-<span class="sourceLineNo">110</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.110"></a>
-<span class="sourceLineNo">111</span> private static final Logger LOG =<a name="line.111"></a>
-<span class="sourceLineNo">112</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.112"></a>
+<span class="sourceLineNo">023</span>import com.google.protobuf.ByteString;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import com.google.protobuf.CodedOutputStream;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.lang.reflect.Field;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.lang.reflect.InvocationTargetException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.lang.reflect.Method;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.net.InetAddress;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.net.InetSocketAddress;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.ByteBuffer;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.security.GeneralSecurityException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.Arrays;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.List;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Map;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.Set;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import java.util.concurrent.TimeUnit;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import javax.security.auth.callback.Callback;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import javax.security.auth.callback.CallbackHandler;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import javax.security.auth.callback.NameCallback;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import javax.security.auth.callback.PasswordCallback;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import javax.security.sasl.RealmCallback;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import javax.security.sasl.Sasl;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import javax.security.sasl.SaslClient;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import javax.security.sasl.SaslException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.commons.codec.binary.Base64;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.commons.lang3.StringUtils;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.conf.Configuration;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.crypto.key.KeyProvider;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.security.token.Token;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.slf4j.Logger;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.slf4j.LoggerFactory;<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>/**<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.104"></a>
+<span class="sourceLineNo">105</span> */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>@InterfaceAudience.Private<a name="line.106"></a>
+<span class="sourceLineNo">107</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> private static final Logger LOG =<a name="line.108"></a>
+<span class="sourceLineNo">109</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span> }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span> private static final String SERVER_NAME = "0";<a name="line.117"></a>
-<span class="sourceLineNo">118</span> private static final String PROTOCOL = "hdfs";<a name="line.118"></a>
-<span class="sourceLineNo">119</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.119"></a>
-<span class="sourceLineNo">120</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> private static final String NAME_DELIMITER = " ";<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span> private interface SaslAdaptor {<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.127"></a>
+<span class="sourceLineNo">114</span> private static final String SERVER_NAME = "0";<a name="line.114"></a>
+<span class="sourceLineNo">115</span> private static final String PROTOCOL = "hdfs";<a name="line.115"></a>
+<span class="sourceLineNo">116</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.116"></a>
+<span class="sourceLineNo">117</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> private static final String NAME_DELIMITER = " ";<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span> private interface SaslAdaptor {<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> }<a name="line.127"></a>
<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> }<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.132"></a>
+<span class="sourceLineNo">129</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span> // helper class for convert protos.<a name="line.131"></a>
+<span class="sourceLineNo">132</span> private interface PBHelper {<a name="line.132"></a>
<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span> // helper class for convert protos.<a name="line.134"></a>
-<span class="sourceLineNo">135</span> private interface PBHelper {<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.137"></a>
+<span class="sourceLineNo">134</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.139"></a>
-<span class="sourceLineNo">140</span> }<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span> private static final PBHelper PB_HELPER;<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> private interface TransparentCryptoHelper {<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.146"></a>
-<span class="sourceLineNo">147</span> throws IOException;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span> private static SaslAdaptor createSaslAdaptor()<a name="line.152"></a>
-<span class="sourceLineNo">153</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.153"></a>
-<span class="sourceLineNo">154</span> Field saslPropsResolverField =<a name="line.154"></a>
-<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.155"></a>
-<span class="sourceLineNo">156</span> saslPropsResolverField.setAccessible(true);<a name="line.156"></a>
-<span class="sourceLineNo">157</span> Field trustedChannelResolverField =<a name="line.157"></a>
-<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.158"></a>
-<span class="sourceLineNo">159</span> trustedChannelResolverField.setAccessible(true);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> Field fallbackToSimpleAuthField =<a name="line.160"></a>
-<span class="sourceLineNo">161</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.161"></a>
-<span class="sourceLineNo">162</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.162"></a>
-<span class="sourceLineNo">163</span> return new SaslAdaptor() {<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> @Override<a name="line.165"></a>
-<span class="sourceLineNo">166</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span> try {<a name="line.167"></a>
-<span class="sourceLineNo">168</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.168"></a>
-<span class="sourceLineNo">169</span> } catch (IllegalAccessException e) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> throw new RuntimeException(e);<a name="line.170"></a>
-<span class="sourceLineNo">171</span> }<a name="line.171"></a>
-<span class="sourceLineNo">172</span> }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span> @Override<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> try {<a name="line.176"></a>
-<span class="sourceLineNo">177</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> } catch (IllegalAccessException e) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span> throw new RuntimeException(e);<a name="line.179"></a>
-<span class="sourceLineNo">180</span> }<a name="line.180"></a>
-<span class="sourceLineNo">181</span> }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span> @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span> try {<a name="line.185"></a>
-<span class="sourceLineNo">186</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.186"></a>
-<span class="sourceLineNo">187</span> } catch (IllegalAccessException e) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> throw new RuntimeException(e);<a name="line.188"></a>
-<span class="sourceLineNo">189</span> }<a name="line.189"></a>
-<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span> };<a name="line.191"></a>
-<span class="sourceLineNo">192</span> }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.194"></a>
-<span class="sourceLineNo">195</span> Class<?> helperClass;<a name="line.195"></a>
-<span class="sourceLineNo">196</span> try {<a name="line.196"></a>
-<span class="sourceLineNo">197</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.197"></a>
-<span class="sourceLineNo">198</span> } catch (ClassNotFoundException e) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.199"></a>
-<span class="sourceLineNo">200</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.200"></a>
-<span class="sourceLineNo">201</span> }<a name="line.201"></a>
-<span class="sourceLineNo">202</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> Method convertCipherOptionProtosMethod =<a name="line.203"></a>
-<span class="sourceLineNo">204</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.204"></a>
-<span class="sourceLineNo">205</span> return new PBHelper() {<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span> @SuppressWarnings("unchecked")<a name="line.207"></a>
-<span class="sourceLineNo">208</span> @Override<a name="line.208"></a>
-<span class="sourceLineNo">209</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span> try {<a name="line.210"></a>
-<span class="sourceLineNo">211</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span> throw new RuntimeException(e);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> }<a name="line.214"></a>
-<span class="sourceLineNo">215</span> }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> @SuppressWarnings("unchecked")<a name="line.217"></a>
-<span class="sourceLineNo">218</span> @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span> try {<a name="line.220"></a>
-<span class="sourceLineNo">221</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.221"></a>
-<span class="sourceLineNo">222</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span> throw new RuntimeException(e);<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span> }<a name="line.225"></a>
-<span class="sourceLineNo">226</span> };<a name="line.226"></a>
-<span class="sourceLineNo">227</span> }<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.229"></a>
-<span class="sourceLineNo">230</span> throws NoSuchMethodException {<a name="line.230"></a>
-<span class="sourceLineNo">231</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.231"></a>
-<span class="sourceLineNo">232</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.232"></a>
-<span class="sourceLineNo">233</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span> return new TransparentCryptoHelper() {<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span> @Override<a name="line.236"></a>
-<span class="sourceLineNo">237</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.237"></a>
-<span class="sourceLineNo">238</span> DFSClient client) throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span> try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> KeyVersion decryptedKey =<a name="line.240"></a>
-<span class="sourceLineNo">241</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.241"></a>
-<span class="sourceLineNo">242</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.242"></a>
-<span class="sourceLineNo">243</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.243"></a>
-<span class="sourceLineNo">244</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.244"></a>
-<span class="sourceLineNo">245</span> return encryptor;<a name="line.245"></a>
-<span class="sourceLineNo">246</span> } catch (InvocationTargetException e) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.247"></a>
-<span class="sourceLineNo">248</span> throw new RuntimeException(e.getTargetException());<a name="line.248"></a>
-<span class="sourceLineNo">249</span> } catch (GeneralSecurityException e) {<a name="line.249"></a>
-<span class="sourceLineNo">250</span> throw new IOException(e);<a name="line.250"></a>
-<span class="sourceLineNo">251</span> } catch (IllegalAccessException e) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> throw new RuntimeException(e);<a name="line.252"></a>
-<span class="sourceLineNo">253</span> }<a name="line.253"></a>
-<span class="sourceLineNo">254</span> }<a name="line.254"></a>
-<span class="sourceLineNo">255</span> };<a name="line.255"></a>
-<span class="sourceLineNo">256</span> }<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span> static {<a name="line.258"></a>
-<span class="sourceLineNo">259</span> try {<a name="line.259"></a>
-<span class="sourceLineNo">260</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.260"></a>
-<span class="sourceLineNo">261</span> PB_HELPER = createPBHelper();<a name="line.261"></a>
-<span class="sourceLineNo">262</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.262"></a>
-<span class="sourceLineNo">263</span> } catch (Exception e) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.264"></a>
-<span class="sourceLineNo">265</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.265"></a>
-<span class="sourceLineNo">266</span> + "HBASE-16110 for more information.";<a name="line.266"></a>
-<span class="sourceLineNo">267</span> LOG.error(msg, e);<a name="line.267"></a>
-<span class="sourceLineNo">268</span> throw new Error(msg, e);<a name="line.268"></a>
-<span class="sourceLineNo">269</span> }<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span> /**<a name="line.272"></a>
-<span class="sourceLineNo">273</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.273"></a>
-<span class="sourceLineNo">274</span> */<a name="line.274"></a>
-<span class="sourceLineNo">275</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span> private final char[] password;<a name="line.277"></a>
-<span class="sourceLineNo">278</span> private final String userName;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span> /**<a name="line.280"></a>
-<span class="sourceLineNo">281</span> * Creates a new SaslClientCallbackHandler.<a name="line.281"></a>
-<span class="sourceLineNo">282</span> * @param userName SASL user name<a name="line.282"></a>
-<span class="sourceLineNo">283</span> * @Param password SASL password<a name="line.283"></a>
-<span class="sourceLineNo">284</span> */<a name="line.284"></a>
-<span class="sourceLineNo">285</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span> this.password = password;<a name="line.286"></a>
-<span class="sourceLineNo">287</span> this.userName = userName;<a name="line.287"></a>
-<span class="sourceLineNo">288</span> }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span> @Override<a name="line.290"></a>
-<span class="sourceLineNo">291</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.291"></a>
-<span class="sourceLineNo">292</span> NameCallback nc = null;<a name="line.292"></a>
-<span class="sourceLineNo">293</span> PasswordCallback pc = null;<a name="line.293"></a>
-<span class="sourceLineNo">294</span> RealmCallback rc = null;<a name="line.294"></a>
-<span class="sourceLineNo">295</span> for (Callback callback : callbacks) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span> if (callback instanceof RealmChoiceCallback) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span> continue;<a name="line.297"></a>
-<span class="sourceLineNo">298</span> } else if (callback instanceof NameCallback) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span> nc = (NameCallback) callback;<a name="line.299"></a>
-<span class="sourceLineNo">300</span> } else if (callback instanceof PasswordCallback) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span> pc = (PasswordCallback) callback;<a name="line.301"></a>
-<span class="sourceLineNo">302</span> } else if (callback instanceof RealmCallback) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span> rc = (RealmCallback) callback;<a name="line.303"></a>
-<span class="sourceLineNo">304</span> } else {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span> }<a name="line.307"></a>
-<span class="sourceLineNo">308</span> if (nc != null) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span> nc.setName(userName);<a name="line.309"></a>
-<span class="sourceLineNo">310</span> }<a name="line.310"></a>
-<span class="sourceLineNo">311</span> if (pc != null) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> pc.setPassword(password);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span> if (rc != null) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span> rc.setText(rc.getDefaultText());<a name="line.315"></a>
-<span class="sourceLineNo">316</span> }<a name="line.316"></a>
-<span class="sourceLineNo">317</span> }<a name="line.317"></a>
-<span class="sourceLineNo">318</span> }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span> private final Configuration conf;<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span> private final Map<String, String> saslProps;<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span> private final SaslClient saslClient;<a name="line.326"></a>
+<span class="sourceLineNo">139</span> private static final PBHelper PB_HELPER;<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span> private interface TransparentCryptoHelper {<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.143"></a>
+<span class="sourceLineNo">144</span> throws IOException;<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span> private static SaslAdaptor createSaslAdaptor()<a name="line.149"></a>
+<span class="sourceLineNo">150</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Field saslPropsResolverField =<a name="line.151"></a>
+<span class="sourceLineNo">152</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.152"></a>
+<span class="sourceLineNo">153</span> saslPropsResolverField.setAccessible(true);<a name="line.153"></a>
+<span class="sourceLineNo">154</span> Field trustedChannelResolverField =<a name="line.154"></a>
+<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.155"></a>
+<span class="sourceLineNo">156</span> trustedChannelResolverField.setAccessible(true);<a name="line.156"></a>
+<span class="sourceLineNo">157</span> Field fallbackToSimpleAuthField =<a name="line.157"></a>
+<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.158"></a>
+<span class="sourceLineNo">159</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.159"></a>
+<span class="sourceLineNo">160</span> return new SaslAdaptor() {<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span> @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span> try {<a name="line.164"></a>
+<span class="sourceLineNo">165</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.165"></a>
+<span class="sourceLineNo">166</span> } catch (IllegalAccessException e) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span> throw new RuntimeException(e);<a name="line.167"></a>
+<span class="sourceLineNo">168</span> }<a name="line.168"></a>
+<span class="sourceLineNo">169</span> }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span> @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span> try {<a name="line.173"></a>
+<span class="sourceLineNo">174</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.174"></a>
+<span class="sourceLineNo">175</span> } catch (IllegalAccessException e) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span> throw new RuntimeException(e);<a name="line.176"></a>
+<span class="sourceLineNo">177</span> }<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span> @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span> try {<a name="line.182"></a>
+<span class="sourceLineNo">183</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.183"></a>
+<span class="sourceLineNo">184</span> } catch (IllegalAccessException e) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span> throw new RuntimeException(e);<a name="line.185"></a>
+<span class="sourceLineNo">186</span> }<a name="line.186"></a>
+<span class="sourceLineNo">187</span> }<a name="line.187"></a>
+<span class="sourceLineNo">188</span> };<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.191"></a>
+<span class="sourceLineNo">192</span> Class<?> helperClass;<a name="line.192"></a>
+<span class="sourceLineNo">193</span> try {<a name="line.193"></a>
+<span class="sourceLineNo">194</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.194"></a>
+<span class="sourceLineNo">195</span> } catch (ClassNotFoundException e) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.197"></a>
+<span class="sourceLineNo">198</span> }<a name="line.198"></a>
+<span class="sourceLineNo">199</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.199"></a>
+<span class="sourceLineNo">200</span> Method convertCipherOptionProtosMethod =<a name="line.200"></a>
+<span class="sourceLineNo">201</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.201"></a>
+<span class="sourceLineNo">202</span> return new PBHelper() {<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span> @SuppressWarnings("unchecked")<a name="line.204"></a>
+<span class="sourceLineNo">205</span> @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> try {<a name="line.207"></a>
+<span class="sourceLineNo">208</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.208"></a>
+<span class="sourceLineNo">209</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span> throw new RuntimeException(e);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> }<a name="line.211"></a>
+<span class="sourceLineNo">212</span> }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span> @SuppressWarnings("unchecked")<a name="line.214"></a>
+<span class="sourceLineNo">215</span> @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> try {<a name="line.217"></a>
+<span class="sourceLineNo">218</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span> throw new RuntimeException(e);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> };<a name="line.223"></a>
+<span class="sourceLineNo">224</span> }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span> private static TransparentCryptoHelper createTransparentCryptoHelper27()<a name="line.226"></a>
+<span class="sourceLineNo">227</span> throws NoSuchMethodException {<a name="line.227"></a>
+<span class="sourceLineNo">228</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.228"></a>
+<span class="sourceLineNo">229</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> return new TransparentCryptoHelper() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.234"></a>
+<span class="sourceLineNo">235</span> DFSClient client) throws IOException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span> try {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> KeyVersion decryptedKey =<a name="line.237"></a>
+<span class="sourceLineNo">238</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.238"></a>
+<span class="sourceLineNo">239</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.239"></a>
+<span class="sourceLineNo">240</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.241"></a>
+<span class="sourceLineNo">242</span> return encryptor;<a name="line.242"></a>
+<span class="sourceLineNo">243</span> } catch (InvocationTargetException e) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.244"></a>
+<span class="sourceLineNo">245</span> throw new RuntimeException(e.getTargetException());<a name="line.245"></a>
+<span class="sourceLineNo">246</span> } catch (GeneralSecurityException e) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> throw new IOException(e);<a name="line.247"></a>
+<span class="sourceLineNo">248</span> } catch (IllegalAccessException e) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span> throw new RuntimeException(e);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span> }<a name="line.251"></a>
+<span class="sourceLineNo">252</span> };<a name="line.252"></a>
+<span class="sourceLineNo">253</span> }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span> private static TransparentCryptoHelper createTransparentCryptoHelper28()<a name="line.255"></a>
+<span class="sourceLineNo">256</span> throws ClassNotFoundException, NoSuchMethodException {<a name="line.256"></a>
+<span class="sourceLineNo">257</span> Class<?> hdfsKMSUtilCls = Class.forName("org.apache.hadoop.hdfs.HdfsKMSUtil");<a name="line.257"></a>
+<span class="sourceLineNo">258</span> Method decryptEncryptedDataEncryptionKeyMethod = hdfsKMSUtilCls.getDeclaredMethod(<a name="line.258"></a>
+<span class="sourceLineNo">259</span> "decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class, KeyProvider.class);<a name="line.259"></a>
+<span class="sourceLineNo">260</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.260"></a>
+<span class="sourceLineNo">261</span> return new TransparentCryptoHelper() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span> @Override<a name="line.263"></a>
+<span class="sourceLineNo">264</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.264"></a>
+<span class="sourceLineNo">265</span> DFSClient client) throws IOException {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> try {<a name="line.266"></a>
+<span class="sourceLineNo">267</span> KeyVersion decryptedKey = (KeyVersion) decryptEncryptedDataEncryptionKeyMethod<a name="line.267"></a>
+<span class="sourceLineNo">268</span> .invoke(null, feInfo, client.getKeyProvider());<a name="line.268"></a>
+<span class="sourceLineNo">269</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.269"></a>
+<span class="sourceLineNo">270</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.270"></a>
+<span class="sourceLineNo">271</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.271"></a>
+<span class="sourceLineNo">272</span> return encryptor;<a name="line.272"></a>
+<span class="sourceLineNo">273</span> } catch (InvocationTargetException e) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.274"></a>
+<span class="sourceLineNo">275</span> throw new RuntimeException(e.getTargetException());<a name="line.275"></a>
+<span class="sourceLineNo">276</span> } catch (GeneralSecurityException e) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> throw new IOException(e);<a name="line.277"></a>
+<span class="sourceLineNo">278</span> } catch (IllegalAccessException e) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> throw new RuntimeException(e);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> }<a name="line.280"></a>
+<span class="sourceLineNo">281</span> }<a name="line.281"></a>
+<span class="sourceLineNo">282</span> };<a name="line.282"></a>
+<span class="sourceLineNo">283</span> }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.285"></a>
+<span class="sourceLineNo">286</span> throws NoSuchMethodException, ClassNotFoundException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> try {<a name="line.287"></a>
+<span class="sourceLineNo">288</span> return createTransparentCryptoHelper27();<a name="line.288"></a>
+<span class="sourceLineNo">289</span> } catch (NoSuchMethodException e) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> LOG.debug("No decryptEncryptedDataEncryptionKey method in DFSClient, should be hadoop 2.8+",<a name="line.290"></a>
+<span class="sourceLineNo">291</span> e);<a name="line.291"></a>
+<span class="sourceLineNo">292</span> }<a name="line.292"></a>
+<span class="sourceLineNo">293</span> return createTransparentCryptoHelper28();<a name="line.293"></a>
+<span class="sourceLineNo">294</span> }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span> static {<a name="line.296"></a>
+<span class="sourceLineNo">297</span> try {<a name="line.297"></a>
+<span class="sourceLineNo">298</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.298"></a>
+<span class="sourceLineNo">299</span> PB_HELPER = createPBHelper();<a name="line.299"></a>
+<span class="sourceLineNo">300</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.300"></a>
+<span class="sourceLineNo">301</span> } catch (Exception e) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.302"></a>
+<span class="sourceLineNo">303</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.303"></a>
+<span class="sourceLineNo">304</span> + "HBASE-16110 for more information.";<a name="line.304"></a>
+<span class="sourceLineNo">305</span> LOG.error(msg, e);<a name="line.305"></a>
+<span class="sourceLineNo">306</span> throw new Error(msg, e);<a name="line.306"></a>
+<span class="sourceLineNo">307</span> }<a name="line.307"></a>
+<span class="sourceLineNo">308</span> }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span> /**<a name="line.310"></a>
+<span class="sourceLineNo">311</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.311"></a>
+<span class="sourceLineNo">312</span> */<a name="line.312"></a>
+<span class="sourceLineNo">313</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span> private final char[] password;<a name="line.315"></a>
+<span class="sourceLineNo">316</span> private final String userName;<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span> /**<a name="line.318"></a>
+<span class="sourceLineNo">319</span> * Creates a new SaslClientCallbackHandler.<a name="line.319"></a>
+<span class="sourceLineNo">320</span> * @param userName SASL user name<a name="line.320"></a>
+<span class="sourceLineNo">321</span> * @Param password SASL password<a name="line.321"></a>
+<span class="sourceLineNo">322</span> */<a name="line.322"></a>
+<span class="sourceLineNo">323</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span> this.password = password;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> this.userName = userName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> }<a name="line.326"></a>
<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span> private final int timeoutMs;<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span> private final Promise<Void> promise;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span> private int step = 0;<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.334"></a>
-<span class="sourceLineNo">335</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.335"></a>
-<span class="sourceLineNo">336</span> this.conf = conf;<a name="line.336"></a>
-<span class="sourceLineNo">337</span> this.saslProps = saslProps;<a name="line.337"></a>
-<span class="sourceLineNo">338</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.338"></a>
-<span class="sourceLineNo">339</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.339"></a>
-<span class="sourceLineNo">340</span> this.timeoutMs = timeoutMs;<a name="line.340"></a>
-<span class="sourceLineNo">341</span> this.promise = promise;<a name="line.341"></a>
-<span class="sourceLineNo">342</span> }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.344"></a>
-<span class="sourceLineNo">345</span> sendSaslMessage(ctx, payload, null);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.349"></a>
-<span class="sourceLineNo">350</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.350"></a>
-<span class="sourceLineNo">351</span> // values for future expansion.<a name="line.351"></a>
-<span class="sourceLineNo">352</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span> return null;<a name="line.354"></a>
-<span class="sourceLineNo">355</span> }<a name="line.355"></a>
-<span class="sourceLineNo">356</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.357"></a>
-<span class="sourceLineNo">358</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.358"></a>
-<span class="sourceLineNo">359</span> }<a name="line.359"></a>
-<span class="sourceLineNo">360</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.360"></a>
-<span class="sourceLineNo">361</span> }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.363"></a>
-<span class="sourceLineNo">364</span> List<CipherOption> options) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.365"></a>
-<span class="sourceLineNo">366</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.366"></a>
-<span class="sourceLineNo">367</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> if (payload != null) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.369"></a>
-<span class="sourceLineNo">370</span> // and we want to keep that out of hbase-server.<a name="line.370"></a>
-<span class="sourceLineNo">371</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.371"></a>
-<span class="sourceLineNo">372</span> }<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (options != null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.376"></a>
-<span class="sourceLineNo">377</span> int size = proto.getSerializedSize();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.378"></a>
-<span class="sourceLineNo">379</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.379"></a>
-<span class="sourceLineNo">380</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> ctx.write(buf);<a name="line.381"></a>
-<span class="sourceLineNo">382</span> }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span> @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.385"></a>
-<span class="sourceLineNo">386</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.386"></a>
-<span class="sourceLineNo">387</span> sendSaslMessage(ctx, new byte[0]);<a name="line.387"></a>
-<span class="sourceLineNo">388</span> ctx.flush();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> step++;<a name="line.389"></a>
-<span class="sourceLineNo">390</span> }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span> @Override<a name="line.392"></a>
-<span class="sourceLineNo">393</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.393"></a>
-<span class="sourceLineNo">394</span> saslClient.dispose();<a name="line.394"></a>
-<span class="sourceLineNo">395</span> }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.399"></a>
-<span class="sourceLineNo">400</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span> throw new IOException(proto.getMessage());<a name="line.401"></a>
-<span class="sourceLineNo">402</span> }<a name="line.402"></a>
-<span class="sourceLineNo">403</span> }<a name="line.403"></a>
-<span class="sourceLineNo">404</span><a name="line.404"></a>
-<span class="sourceLineNo">405</span> private String getNegotiatedQop() {<a name="line.405"></a>
-<span class="sourceLineNo">406</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.406"></a>
-<span class="sourceLineNo">407</span> }<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span> private boolean isNegotiatedQopPrivacy() {<a name="line.409"></a>
-<span class="sourceLineNo">410</span> String qop = getNegotiatedQop();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> return qop != null && "auth-conf".equalsIgnoreCase(qop);<a name="line.411"></a>
-<span class="sourceLineNo">412</span> }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span> private boolean requestedQopContainsPrivacy() {<a name="line.414"></a>
-<span class="sourceLineNo">415</span> Set<String> requestedQop =<a name="line.415"></a>
-<span class="sourceLineNo">416</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.416"></a>
-<span class="sourceLineNo">417</span> return requestedQop.contains("auth-conf");<a name="line.417"></a>
-<span class="sourceLineNo">418</span> }<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span> private void checkSaslComplete() throws IOException {<a name="line.420"></a>
-<span class="sourceLineNo">421</span> if (!saslClient.isComplete()) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> throw new IOException("Failed to complete SASL handshake");<a name="line.422"></a>
-<span class="sourceLineNo">423</span> }<a name="line.423"></a>
-<span class="sourceLineNo">424</span> Set<String> requestedQop =<a name="line.424"></a>
-<span class="sourceLineNo">425</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.425"></a>
-<span class="sourceLineNo">426</span> String negotiatedQop = getNegotiatedQop();<a name="line.426"></a>
-<span class="sourceLineNo">427</span> LOG.debug(<a name="line.427"></a>
-<span class="sourceLineNo">428</span> "Verifying QOP, requested QOP = " + requestedQop + ", negotiated QOP = " + negotiatedQop);<a name="line.428"></a>
-<span class="sourceLineNo">429</span> if (!requestedQop.contains(negotiatedQop)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span> throw new IOException(String.format("SASL handshake completed, but "<a name="line.430"></a>
-<span class="sourceLineNo">431</span> + "channel does not have acceptable quality of protection, "<a name="line.431"></a>
-<span class="sourceLineNo">432</span> + "requested = %s, negotiated = %s",<a name="line.432"></a>
-<span class="sourceLineNo">433</span> requestedQop, negotiatedQop));<a name="line.433"></a>
-<span class="sourceLineNo">434</span> }<a name="line.434"></a>
-<span class="sourceLineNo">435</span> }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span> private boolean useWrap() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> String qop = (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> return qop != null && !"auth".equalsIgnoreCase(qop);<a name="line.439"></a>
-<span class="sourceLineNo">440</span> }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span> private CipherOption unwrap(CipherOption option, SaslClient saslClient) throws IOException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> byte[] inKey = option.getInKey();<a name="line.443"></a>
-<span class="sourceLineNo">444</span> if (inKey != null) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span> inKey = saslClient.unwrap(inKey, 0, inKey.length);<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> byte[] outKey = option.getOutKey();<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (outKey != null) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> outKey = saslClient.unwrap(outKey, 0, outKey.length);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> }<a name="line.450"></a>
-<span class="sourceLineNo">451</span> return new CipherOption(option.getCipherSuite(), inKey, option.getInIv(), outKey,<a name="line.451"></a>
-<span class="sourceLineNo">452</span> option.getOutIv());<a name="line.452"></a>
-<span class="sourceLineNo">453</span> }<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span> private CipherOption getCipherOption(DataTransferEncryptorMessageProto proto,<a name="line.455"></a>
-<span class="sourceLineNo">456</span> boolean isNegotiatedQopPrivacy, SaslClient saslClient) throws IOException {<a name="line.456"></a>
-<span class="sourceLineNo">457</span> List<CipherOption> cipherOptions =<a name="line.457"></a>
-<span class="sourceLineNo">458</span> PB_HELPER.convertCipherOptionProtos(proto.getCipherOptionList());<a name="line.458"></a>
-<span class="sourceLineNo">459</span> if (cipherOptions == null || cipherOptions.isEmpty()) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span> return null;<a name="line.460"></a>
+<span class="sourceLineNo">328</span> @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.329"></a>
+<span class="sourceLineNo">330</span> NameCallback nc = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span> PasswordCallback pc = null;<a name="line.331"></a>
+<span class="sourceLineNo">332</span> RealmCallback rc = null;<a name="line.332"></a>
+<span class="sourceLineNo">333</span> for (Callback callback : callbacks) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span> if (callback instanceof RealmChoiceCallback) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span> continue;<a name="line.335"></a>
+<span class="sourceLineNo">336</span> } else if (callback instanceof NameCallback) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span> nc = (NameCallback) callback;<a name="line.337"></a>
+<span class="sourceLineNo">338</span> } else if (callback instanceof PasswordCallback) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span> pc = (PasswordCallback) callback;<a name="line.339"></a>
+<span class="sourceLineNo">340</span> } else if (callback instanceof RealmCallback) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span> rc = (RealmCallback) callback;<a name="line.341"></a>
+<span class="sourceLineNo">342</span> } else {<a name="line.342"></a>
+<span class="sourceLineNo">343</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.343"></a>
+<span class="sourceLineNo">344</span> }<a name="line.344"></a>
+<span class="sourceLineNo">345</span> }<a name="line.345"></a>
+<span class="sourceLineNo">346</span> if (nc != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> nc.setName(userName);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span> if (pc != null) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span> pc.setPassword(password);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> }<a name="line.351"></a>
+<span class="sourceLineNo">352</span> if (rc != null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span> rc.setText(rc.getDefaultText());<a name="line.353"></a>
+<span class="sourceLineNo">354</span> }<a name="line.354"></a>
+<span class="sourceLineNo">355</span> }<a name="line.355"></a>
+<span class="sourceLineNo">356</span> }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span> private final Configuration conf;<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span> private final Map<String, String> saslProps;<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span> private final SaslClient saslClient;<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span> private final int timeoutMs;<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span> private final Promise<Void> promise;<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span> private int step = 0;<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.372"></a>
+<span class="sourceLineNo">373</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span> this.conf = conf;<a name="line.374"></a>
+<span class="sourceLineNo">375</span> this.saslProps = saslProps;<a name="line.375"></a>
+<span class="sourceLineNo">376</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.376"></a>
+<span class="sourceLineNo">377</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.377"></a>
+<span class="sourceLineNo">378</span> this.timeoutMs = timeoutMs;<a name="line.378"></a>
+<span class="sourceLineNo">379</span> this.promise = promise;<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> sendSaslMessage(ctx, payload, null);<a name="line.383"></a>
+<span class="sourceLineNo">384</span> }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.386"></a>
+<span class="sourceLineNo">387</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.387"></a>
+<span class="sourceLineNo">388</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.388"></a>
+<span class="sourceLineNo">389</span> // values for future expansion.<a name="line.389"></a>
+<span class="sourceLineNo">390</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.390"></a>
+<span class="sourceLineNo">391</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span> return null;<a name="line.392"></a>
+<span class="sourceLineNo">393</span> }<a name="line.393"></a>
+<span class="sourceLineNo">394</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.395"></a>
+<span class="sourceLineNo">396</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.396"></a>
+<span class="sourceLineNo">397</span> }<a name="line.397"></a>
+<span class="sourceLineNo">398</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.398"></a>
+<span class="sourceLineNo">399</span> }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.401"></a>
+<span class="sourceLineNo">402</span> List<CipherOption> options) throws IOException {<a name="line.402"></a>
+<span class="sourceLineNo">403</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.403"></a>
+<span class="sourceLineNo">404</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.404"></a>
+<span class="sourceLineNo">405</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.405"></a>
+<span class="sourceLineNo">406</span> if (payload != null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.407"></a>
+<span class="sourceLineNo">408</span> // and we want to keep that out of hbase-server.<a name="line.408"></a>
+<span class="sourceLineNo">409</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.409"></a>
+<span class="sourceLineNo">410</span> }<a name="line.410"></a>
+<span class="sourceLineNo">411</span> if (options != null) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.412"></a>
+<span class="sourceLineNo">413</span> }<a name="line.413"></a>
+<span class="sourceLineNo">414</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.414"></a>
+<span class="sourceLineNo">415</span> int size = proto.getSerializedSize();<a name="line.415"></a>
+<span class="sourceLineNo">416</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.416"></a>
+<span class="sourceLineNo">417</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.417"></a>
+<span class="sourceLineNo">418</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.418"></a>
+<span class="sourceLineNo">419</span> ctx.write(buf);<a name="line.419"></a>
+<span class="sourceLineNo">420</span> }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span> @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.424"></a>
+<span class="sourceLineNo">425</span> sendSaslMessage(ctx, new byte[0]);<a name="line.425"></a>
+<span class="sourceLineNo">426</span> ctx.flush();<a name="line.426"></a>
+<span class="sourceLineNo">427</span> step++;<a name="line.427"></a>
+<span class="sourceLineNo">428</span> }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span> @Override<a name="line.430"></a>
+<span class="sourceLineNo">431</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.431"></a>
+<span class="sourceLineNo">432</span> saslClient.dispose();<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.435"></a>
+<span class="sourceLineNo">436</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.437"></a>
+<span class="sourceLineNo">438</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span> throw new IOException(proto.getMessage());<a name="line.439"></a>
+<span class="sourceLineNo">440</span> }<a name="line.440"></a>
+<span class="sourceLineNo">441</span> }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span> private String getNegotiatedQop() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span> private boolean isNegotiatedQopPrivacy() {<a name="line
<TRUNCATED>
[44/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index c868bae..520fe9a5d 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -183,13 +183,13 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html
index 17ba14f..0cdaf25 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html
@@ -132,7 +132,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.601">FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler</a>
+<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.639">FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler</a>
extends org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler<org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf></pre>
</li>
</ul>
@@ -266,7 +266,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler
<ul class="blockListLast">
<li class="blockList">
<h4>decryptor</h4>
-<pre>private final org.apache.hadoop.crypto.Decryptor <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html#line.603">decryptor</a></pre>
+<pre>private final org.apache.hadoop.crypto.Decryptor <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html#line.641">decryptor</a></pre>
</li>
</ul>
</li>
@@ -283,7 +283,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler
<ul class="blockListLast">
<li class="blockList">
<h4>DecryptHandler</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html#line.605">DecryptHandler</a>(org.apache.hadoop.crypto.CryptoCodec codec,
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html#line.643">DecryptHandler</a>(org.apache.hadoop.crypto.CryptoCodec codec,
byte[] key,
byte[] iv)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/security/GeneralSecurityException.html?is-external=true" title="class or interface in java.security">GeneralSecurityException</a>,
@@ -309,7 +309,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler
<ul class="blockListLast">
<li class="blockList">
<h4>channelRead0</h4>
-<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html#line.612">channelRead0</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
+<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html#line.650">channelRead0</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf msg)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html
index 7cb08c7..fffc44e 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html
@@ -132,7 +132,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.634">FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler</a>
+<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.672">FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler</a>
extends org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder<org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf></pre>
</li>
</ul>
@@ -273,7 +273,7 @@ extends org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder&
<ul class="blockListLast">
<li class="blockList">
<h4>encryptor</h4>
-<pre>private final org.apache.hadoop.crypto.Encryptor <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html#line.636">encryptor</a></pre>
+<pre>private final org.apache.hadoop.crypto.Encryptor <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html#line.674">encryptor</a></pre>
</li>
</ul>
</li>
@@ -290,7 +290,7 @@ extends org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder&
<ul class="blockListLast">
<li class="blockList">
<h4>EncryptHandler</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html#line.638">EncryptHandler</a>(org.apache.hadoop.crypto.CryptoCodec codec,
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html#line.676">EncryptHandler</a>(org.apache.hadoop.crypto.CryptoCodec codec,
byte[] key,
byte[] iv)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/security/GeneralSecurityException.html?is-external=true" title="class or interface in java.security">GeneralSecurityException</a>,
@@ -316,7 +316,7 @@ extends org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder&
<ul class="blockList">
<li class="blockList">
<h4>allocateBuffer</h4>
-<pre>protected org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html#line.645">allocateBuffer</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
+<pre>protected org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html#line.683">allocateBuffer</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf msg,
boolean preferDirect)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -334,7 +334,7 @@ extends org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder&
<ul class="blockListLast">
<li class="blockList">
<h4>encode</h4>
-<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html#line.655">encode</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
+<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html#line.693">encode</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf msg,
org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf out)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html
index b26b7ff..257000b 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html
@@ -105,7 +105,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.135">FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper</a></pre>
+<pre>private static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.132">FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper</a></pre>
</li>
</ul>
</div>
@@ -153,7 +153,7 @@ var activeTableTab = "activeTableTab";
<ul class="blockList">
<li class="blockList">
<h4>convertCipherOptions</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html#line.137">convertCipherOptions</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.crypto.CipherOption> options)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html#line.134">convertCipherOptions</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.crypto.CipherOption> options)</pre>
</li>
</ul>
<a name="convertCipherOptionProtos-java.util.List-">
@@ -162,7 +162,7 @@ var activeTableTab = "activeTableTab";
<ul class="blockListLast">
<li class="blockList">
<h4>convertCipherOptionProtos</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.crypto.CipherOption> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html#line.139">convertCipherOptionProtos</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto> options)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.crypto.CipherOption> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html#line.136">convertCipherOptionProtos</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto> options)</pre>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html
index 25179a9..109781f 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html
@@ -105,7 +105,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.123">FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor</a></pre>
+<pre>private static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.120">FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor</a></pre>
</li>
</ul>
</div>
@@ -157,7 +157,7 @@ var activeTableTab = "activeTableTab";
<ul class="blockList">
<li class="blockList">
<h4>getTrustedChannelResolver</h4>
-<pre>org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html#line.125">getTrustedChannelResolver</a>(org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient saslClient)</pre>
+<pre>org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html#line.122">getTrustedChannelResolver</a>(org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient saslClient)</pre>
</li>
</ul>
<a name="getSaslPropsResolver-org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient-">
@@ -166,7 +166,7 @@ var activeTableTab = "activeTableTab";
<ul class="blockList">
<li class="blockList">
<h4>getSaslPropsResolver</h4>
-<pre>org.apache.hadoop.security.SaslPropertiesResolver <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html#line.127">getSaslPropsResolver</a>(org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient saslClient)</pre>
+<pre>org.apache.hadoop.security.SaslPropertiesResolver <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html#line.124">getSaslPropsResolver</a>(org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient saslClient)</pre>
</li>
</ul>
<a name="getFallbackToSimpleAuth-org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient-">
@@ -175,7 +175,7 @@ var activeTableTab = "activeTableTab";
<ul class="blockListLast">
<li class="blockList">
<h4>getFallbackToSimpleAuth</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html#line.129">getFallbackToSimpleAuth</a>(org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient saslClient)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html#line.126">getFallbackToSimpleAuth</a>(org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient saslClient)</pre>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html
index eb48a2b..ebf9634 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.275">FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler</a>
+<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.313">FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/callback/CallbackHandler.html?is-external=true" title="class or interface in javax.security.auth.callback">CallbackHandler</a></pre>
<div class="block">Sets user name and password when asked by the client-side SASL object.</div>
@@ -214,7 +214,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/aut
<ul class="blockList">
<li class="blockList">
<h4>password</h4>
-<pre>private final char[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html#line.277">password</a></pre>
+<pre>private final char[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html#line.315">password</a></pre>
</li>
</ul>
<a name="userName">
@@ -223,7 +223,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/aut
<ul class="blockListLast">
<li class="blockList">
<h4>userName</h4>
-<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html#line.278">userName</a></pre>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html#line.316">userName</a></pre>
</li>
</ul>
</li>
@@ -240,7 +240,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/aut
<ul class="blockListLast">
<li class="blockList">
<h4>SaslClientCallbackHandler</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html#line.285">SaslClientCallbackHandler</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> userName,
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html#line.323">SaslClientCallbackHandler</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> userName,
char[] password)</pre>
<div class="block">Creates a new SaslClientCallbackHandler.</div>
<dl>
@@ -263,7 +263,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/aut
<ul class="blockListLast">
<li class="blockList">
<h4>handle</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html#line.291">handle</a>(<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/callback/Callback.html?is-external=true" title="class or interface in javax.security.auth.callback">Callback</a>[] callbacks)
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html#line.329">handle</a>(<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/callback/Callback.html?is-external=true" title="class or interface in javax.security.auth.callback">Callback</a>[] callbacks)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/callback/UnsupportedCallbackException.html?is-external=true" title="class or interface in javax.security.auth.callback">UnsupportedCallbackException</a></pre>
<dl>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html
index 2ace10b..f835c13 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html
@@ -132,7 +132,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.320">FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler</a>
+<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.358">FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler</a>
extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
</li>
</ul>
@@ -357,7 +357,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>conf</h4>
-<pre>private final org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.322">conf</a></pre>
+<pre>private final org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.360">conf</a></pre>
</li>
</ul>
<a name="saslProps">
@@ -366,7 +366,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>saslProps</h4>
-<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.324">saslProps</a></pre>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.362">saslProps</a></pre>
</li>
</ul>
<a name="saslClient">
@@ -375,7 +375,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>saslClient</h4>
-<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/SaslClient.html?is-external=true" title="class or interface in javax.security.sasl">SaslClient</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.326">saslClient</a></pre>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/SaslClient.html?is-external=true" title="class or interface in javax.security.sasl">SaslClient</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.364">saslClient</a></pre>
</li>
</ul>
<a name="timeoutMs">
@@ -384,7 +384,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>timeoutMs</h4>
-<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.328">timeoutMs</a></pre>
+<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.366">timeoutMs</a></pre>
</li>
</ul>
<a name="promise">
@@ -393,7 +393,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>promise</h4>
-<pre>private final org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise<<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.330">promise</a></pre>
+<pre>private final org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise<<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.368">promise</a></pre>
</li>
</ul>
<a name="step">
@@ -402,7 +402,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockListLast">
<li class="blockList">
<h4>step</h4>
-<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.332">step</a></pre>
+<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.370">step</a></pre>
</li>
</ul>
</li>
@@ -419,7 +419,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockListLast">
<li class="blockList">
<h4>SaslNegotiateHandler</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.334">SaslNegotiateHandler</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.372">SaslNegotiateHandler</a>(org.apache.hadoop.conf.Configuration conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> username,
char[] password,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> saslProps,
@@ -446,7 +446,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>sendSaslMessage</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.344">sendSaslMessage</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.382">sendSaslMessage</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
byte[] payload)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
@@ -461,7 +461,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>getCipherOptions</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.crypto.CipherOption> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.348">getCipherOptions</a>()
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.crypto.CipherOption> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.386">getCipherOptions</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -475,7 +475,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>sendSaslMessage</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.363">sendSaslMessage</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.401">sendSaslMessage</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
byte[] payload,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.crypto.CipherOption> options)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -491,7 +491,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>handlerAdded</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.385">handlerAdded</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx)
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.423">handlerAdded</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -509,7 +509,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>channelInactive</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.393">channelInactive</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx)
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.431">channelInactive</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -527,7 +527,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>check</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.397">check</a>(org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto proto)
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.435">check</a>(org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto proto)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -541,7 +541,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>getNegotiatedQop</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.405">getNegotiatedQop</a>()</pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.443">getNegotiatedQop</a>()</pre>
</li>
</ul>
<a name="isNegotiatedQopPrivacy--">
@@ -550,7 +550,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>isNegotiatedQopPrivacy</h4>
-<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.409">isNegotiatedQopPrivacy</a>()</pre>
+<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.447">isNegotiatedQopPrivacy</a>()</pre>
</li>
</ul>
<a name="requestedQopContainsPrivacy--">
@@ -559,7 +559,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>requestedQopContainsPrivacy</h4>
-<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.414">requestedQopContainsPrivacy</a>()</pre>
+<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.452">requestedQopContainsPrivacy</a>()</pre>
</li>
</ul>
<a name="checkSaslComplete--">
@@ -568,7 +568,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>checkSaslComplete</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.420">checkSaslComplete</a>()
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.458">checkSaslComplete</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -582,7 +582,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>useWrap</h4>
-<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.437">useWrap</a>()</pre>
+<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.475">useWrap</a>()</pre>
</li>
</ul>
<a name="unwrap-org.apache.hadoop.crypto.CipherOption-javax.security.sasl.SaslClient-">
@@ -591,7 +591,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>unwrap</h4>
-<pre>private org.apache.hadoop.crypto.CipherOption <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.442">unwrap</a>(org.apache.hadoop.crypto.CipherOption option,
+<pre>private org.apache.hadoop.crypto.CipherOption <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.480">unwrap</a>(org.apache.hadoop.crypto.CipherOption option,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/SaslClient.html?is-external=true" title="class or interface in javax.security.sasl">SaslClient</a> saslClient)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
@@ -606,7 +606,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>getCipherOption</h4>
-<pre>private org.apache.hadoop.crypto.CipherOption <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.455">getCipherOption</a>(org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto proto,
+<pre>private org.apache.hadoop.crypto.CipherOption <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.493">getCipherOption</a>(org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto proto,
boolean isNegotiatedQopPrivacy,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/SaslClient.html?is-external=true" title="class or interface in javax.security.sasl">SaslClient</a> saslClient)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -622,7 +622,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>channelRead</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.467">channelRead</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.505">channelRead</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> msg)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
@@ -641,7 +641,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockList">
<li class="blockList">
<h4>exceptionCaught</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.516">exceptionCaught</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.554">exceptionCaught</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a> cause)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
@@ -662,7 +662,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler</pre>
<ul class="blockListLast">
<li class="blockList">
<h4>userEventTriggered</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.521">userEventTriggered</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html#line.559">userEventTriggered</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> evt)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html
index 3ca8c9f..2ff4512 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html
@@ -132,7 +132,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.530">FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler</a>
+<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.568">FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler</a>
extends org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler<org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf></pre>
</li>
</ul>
@@ -268,7 +268,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler
<ul class="blockListLast">
<li class="blockList">
<h4>saslClient</h4>
-<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/SaslClient.html?is-external=true" title="class or interface in javax.security.sasl">SaslClient</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html#line.532">saslClient</a></pre>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/SaslClient.html?is-external=true" title="class or interface in javax.security.sasl">SaslClient</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html#line.570">saslClient</a></pre>
</li>
</ul>
</li>
@@ -285,7 +285,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler
<ul class="blockListLast">
<li class="blockList">
<h4>SaslUnwrapHandler</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html#line.534">SaslUnwrapHandler</a>(<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/SaslClient.html?is-external=true" title="class or interface in javax.security.sasl">SaslClient</a> saslClient)</pre>
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html#line.572">SaslUnwrapHandler</a>(<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/SaslClient.html?is-external=true" title="class or interface in javax.security.sasl">SaslClient</a> saslClient)</pre>
</li>
</ul>
</li>
@@ -302,7 +302,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler
<ul class="blockList">
<li class="blockList">
<h4>channelInactive</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html#line.539">channelInactive</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx)
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html#line.577">channelInactive</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -320,7 +320,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler
<ul class="blockListLast">
<li class="blockList">
<h4>channelRead0</h4>
-<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html#line.544">channelRead0</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
+<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html#line.582">channelRead0</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf msg)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html
index 2760a0c..8987cd5 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.552">FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler</a>
+<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.590">FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler</a>
extends org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter</pre>
</li>
</ul>
@@ -270,7 +270,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapt
<ul class="blockList">
<li class="blockList">
<h4>saslClient</h4>
-<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/SaslClient.html?is-external=true" title="class or interface in javax.security.sasl">SaslClient</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html#line.554">saslClient</a></pre>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/SaslClient.html?is-external=true" title="class or interface in javax.security.sasl">SaslClient</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html#line.592">saslClient</a></pre>
</li>
</ul>
<a name="cBuf">
@@ -279,7 +279,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapt
<ul class="blockListLast">
<li class="blockList">
<h4>cBuf</h4>
-<pre>private org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html#line.556">cBuf</a></pre>
+<pre>private org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html#line.594">cBuf</a></pre>
</li>
</ul>
</li>
@@ -296,7 +296,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapt
<ul class="blockListLast">
<li class="blockList">
<h4>SaslWrapHandler</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html#line.558">SaslWrapHandler</a>(<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/SaslClient.html?is-external=true" title="class or interface in javax.security.sasl">SaslClient</a> saslClient)</pre>
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html#line.596">SaslWrapHandler</a>(<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/SaslClient.html?is-external=true" title="class or interface in javax.security.sasl">SaslClient</a> saslClient)</pre>
</li>
</ul>
</li>
@@ -313,7 +313,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapt
<ul class="blockList">
<li class="blockList">
<h4>handlerAdded</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html#line.563">handlerAdded</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx)
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html#line.601">handlerAdded</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -331,7 +331,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapt
<ul class="blockList">
<li class="blockList">
<h4>write</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html#line.568">write</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html#line.606">write</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> msg,
org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise promise)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -351,7 +351,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapt
<ul class="blockList">
<li class="blockList">
<h4>flush</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html#line.580">flush</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx)
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html#line.618">flush</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -369,7 +369,7 @@ extends org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapt
<ul class="blockListLast">
<li class="blockList">
<h4>close</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html#line.595">close</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html#line.633">close</a>(org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext ctx,
org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise promise)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html
index 1f87fbc..fa1407e 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html
@@ -105,7 +105,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.144">FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper</a></pre>
+<pre>private static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.141">FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper</a></pre>
</li>
</ul>
</div>
@@ -151,7 +151,7 @@ var activeTableTab = "activeTableTab";
<ul class="blockListLast">
<li class="blockList">
<h4>createEncryptor</h4>
-<pre>org.apache.hadoop.crypto.Encryptor <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html#line.146">createEncryptor</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>org.apache.hadoop.crypto.Encryptor <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html#line.143">createEncryptor</a>(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.fs.FileEncryptionInfo feInfo,
org.apache.hadoop.hdfs.DFSClient client)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
[06/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html
index f118c08..cd9722f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html
@@ -206,140 +206,175 @@
<span class="sourceLineNo">198</span> */<a name="line.198"></a>
<span class="sourceLineNo">199</span> public static int validateBlockAddition(Cacheable existing, Cacheable newBlock,<a name="line.199"></a>
<span class="sourceLineNo">200</span> BlockCacheKey cacheKey) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span> int comparison = compareCacheBlock(existing, newBlock, true);<a name="line.201"></a>
+<span class="sourceLineNo">201</span> int comparison = compareCacheBlock(existing, newBlock, false);<a name="line.201"></a>
<span class="sourceLineNo">202</span> if (comparison != 0) {<a name="line.202"></a>
-<span class="sourceLineNo">203</span> LOG.warn("Cached block contents differ, trying to just compare the block contents " +<a name="line.203"></a>
-<span class="sourceLineNo">204</span> "without the next block. CacheKey: " + cacheKey);<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span> // compare the contents, if they are not equal, we are in big trouble<a name="line.206"></a>
-<span class="sourceLineNo">207</span> int comparisonWithoutNextBlockMetadata = compareCacheBlock(existing, newBlock, false);<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span> if (comparisonWithoutNextBlockMetadata != 0) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span> throw new RuntimeException("Cached block contents differ, which should not have happened."<a name="line.210"></a>
-<span class="sourceLineNo">211</span> + "cacheKey:" + cacheKey);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> }<a name="line.212"></a>
-<span class="sourceLineNo">213</span> }<a name="line.213"></a>
-<span class="sourceLineNo">214</span> return comparison;<a name="line.214"></a>
-<span class="sourceLineNo">215</span> }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> /**<a name="line.217"></a>
-<span class="sourceLineNo">218</span> * Use one of these to keep a running account of cached blocks by file. Throw it away when done.<a name="line.218"></a>
-<span class="sourceLineNo">219</span> * This is different than metrics in that it is stats on current state of a cache.<a name="line.219"></a>
-<span class="sourceLineNo">220</span> * See getLoadedCachedBlocksByFile<a name="line.220"></a>
-<span class="sourceLineNo">221</span> */<a name="line.221"></a>
-<span class="sourceLineNo">222</span> @JsonIgnoreProperties({"cachedBlockStatsByFile"})<a name="line.222"></a>
-<span class="sourceLineNo">223</span> public static class CachedBlocksByFile {<a name="line.223"></a>
-<span class="sourceLineNo">224</span> private int count;<a name="line.224"></a>
-<span class="sourceLineNo">225</span> private int dataBlockCount;<a name="line.225"></a>
-<span class="sourceLineNo">226</span> private long size;<a name="line.226"></a>
-<span class="sourceLineNo">227</span> private long dataSize;<a name="line.227"></a>
-<span class="sourceLineNo">228</span> private final long now = System.nanoTime();<a name="line.228"></a>
-<span class="sourceLineNo">229</span> /**<a name="line.229"></a>
-<span class="sourceLineNo">230</span> * How many blocks to look at before we give up.<a name="line.230"></a>
-<span class="sourceLineNo">231</span> * There could be many millions of blocks. We don't want the<a name="line.231"></a>
-<span class="sourceLineNo">232</span> * ui to freeze while we run through 1B blocks... users will<a name="line.232"></a>
-<span class="sourceLineNo">233</span> * think hbase dead. UI displays warning in red when stats<a name="line.233"></a>
-<span class="sourceLineNo">234</span> * are incomplete.<a name="line.234"></a>
-<span class="sourceLineNo">235</span> */<a name="line.235"></a>
-<span class="sourceLineNo">236</span> private final int max;<a name="line.236"></a>
-<span class="sourceLineNo">237</span> public static final int DEFAULT_MAX = 1000000;<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span> CachedBlocksByFile() {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> this(null);<a name="line.240"></a>
-<span class="sourceLineNo">241</span> }<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span> CachedBlocksByFile(final Configuration c) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span> this.max = c == null? DEFAULT_MAX: c.getInt("hbase.ui.blockcache.by.file.max", DEFAULT_MAX);<a name="line.244"></a>
-<span class="sourceLineNo">245</span> }<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span> /**<a name="line.247"></a>
-<span class="sourceLineNo">248</span> * Map by filename. use concurent utils because we want our Map and contained blocks sorted.<a name="line.248"></a>
-<span class="sourceLineNo">249</span> */<a name="line.249"></a>
-<span class="sourceLineNo">250</span> private NavigableMap<String, NavigableSet<CachedBlock>> cachedBlockByFile = new ConcurrentSkipListMap<>();<a name="line.250"></a>
-<span class="sourceLineNo">251</span> FastLongHistogram hist = new FastLongHistogram();<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span> /**<a name="line.253"></a>
-<span class="sourceLineNo">254</span> * @param cb<a name="line.254"></a>
-<span class="sourceLineNo">255</span> * @return True if full.... if we won't be adding any more.<a name="line.255"></a>
-<span class="sourceLineNo">256</span> */<a name="line.256"></a>
-<span class="sourceLineNo">257</span> public boolean update(final CachedBlock cb) {<a name="line.257"></a>
-<span class="sourceLineNo">258</span> if (isFull()) return true;<a name="line.258"></a>
-<span class="sourceLineNo">259</span> NavigableSet<CachedBlock> set = this.cachedBlockByFile.get(cb.getFilename());<a name="line.259"></a>
-<span class="sourceLineNo">260</span> if (set == null) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span> set = new ConcurrentSkipListSet<>();<a name="line.261"></a>
-<span class="sourceLineNo">262</span> this.cachedBlockByFile.put(cb.getFilename(), set);<a name="line.262"></a>
-<span class="sourceLineNo">263</span> }<a name="line.263"></a>
-<span class="sourceLineNo">264</span> set.add(cb);<a name="line.264"></a>
-<span class="sourceLineNo">265</span> this.size += cb.getSize();<a name="line.265"></a>
-<span class="sourceLineNo">266</span> this.count++;<a name="line.266"></a>
-<span class="sourceLineNo">267</span> BlockType bt = cb.getBlockType();<a name="line.267"></a>
-<span class="sourceLineNo">268</span> if (bt != null && bt.isData()) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> this.dataBlockCount++;<a name="line.269"></a>
-<span class="sourceLineNo">270</span> this.dataSize += cb.getSize();<a name="line.270"></a>
-<span class="sourceLineNo">271</span> }<a name="line.271"></a>
-<span class="sourceLineNo">272</span> long age = (this.now - cb.getCachedTime())/NANOS_PER_SECOND;<a name="line.272"></a>
-<span class="sourceLineNo">273</span> this.hist.add(age, 1);<a name="line.273"></a>
-<span class="sourceLineNo">274</span> return false;<a name="line.274"></a>
-<span class="sourceLineNo">275</span> }<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span> /**<a name="line.277"></a>
-<span class="sourceLineNo">278</span> * @return True if full; i.e. there are more items in the cache but we only loaded up<a name="line.278"></a>
-<span class="sourceLineNo">279</span> * the maximum set in configuration <code>hbase.ui.blockcache.by.file.max</code><a name="line.279"></a>
-<span class="sourceLineNo">280</span> * (Default: DEFAULT_MAX).<a name="line.280"></a>
-<span class="sourceLineNo">281</span> */<a name="line.281"></a>
-<span class="sourceLineNo">282</span> public boolean isFull() {<a name="line.282"></a>
-<span class="sourceLineNo">283</span> return this.count >= this.max;<a name="line.283"></a>
-<span class="sourceLineNo">284</span> }<a name="line.284"></a>
-<span class="sourceLineNo">285</span><a name="line.285"></a>
-<span class="sourceLineNo">286</span> public NavigableMap<String, NavigableSet<CachedBlock>> getCachedBlockStatsByFile() {<a name="line.286"></a>
-<span class="sourceLineNo">287</span> return this.cachedBlockByFile;<a name="line.287"></a>
-<span class="sourceLineNo">288</span> }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span> /**<a name="line.290"></a>
-<span class="sourceLineNo">291</span> * @return count of blocks in the cache<a name="line.291"></a>
-<span class="sourceLineNo">292</span> */<a name="line.292"></a>
-<span class="sourceLineNo">293</span> public int getCount() {<a name="line.293"></a>
-<span class="sourceLineNo">294</span> return count;<a name="line.294"></a>
-<span class="sourceLineNo">295</span> }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span> public int getDataCount() {<a name="line.297"></a>
-<span class="sourceLineNo">298</span> return dataBlockCount;<a name="line.298"></a>
-<span class="sourceLineNo">299</span> }<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span> /**<a name="line.301"></a>
-<span class="sourceLineNo">302</span> * @return size of blocks in the cache<a name="line.302"></a>
-<span class="sourceLineNo">303</span> */<a name="line.303"></a>
-<span class="sourceLineNo">304</span> public long getSize() {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> return size;<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span> /**<a name="line.308"></a>
-<span class="sourceLineNo">309</span> * @return Size of data.<a name="line.309"></a>
-<span class="sourceLineNo">310</span> */<a name="line.310"></a>
-<span class="sourceLineNo">311</span> public long getDataSize() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> return dataSize;<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span> public AgeSnapshot getAgeInCacheSnapshot() {<a name="line.315"></a>
-<span class="sourceLineNo">316</span> return new AgeSnapshot(this.hist);<a name="line.316"></a>
-<span class="sourceLineNo">317</span> }<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span> @Override<a name="line.319"></a>
-<span class="sourceLineNo">320</span> public String toString() {<a name="line.320"></a>
-<span class="sourceLineNo">321</span> AgeSnapshot snapshot = getAgeInCacheSnapshot();<a name="line.321"></a>
-<span class="sourceLineNo">322</span> return "count=" + count + ", dataBlockCount=" + dataBlockCount + ", size=" + size +<a name="line.322"></a>
-<span class="sourceLineNo">323</span> ", dataSize=" + getDataSize() +<a name="line.323"></a>
-<span class="sourceLineNo">324</span> ", mean age=" + snapshot.getMean() +<a name="line.324"></a>
-<span class="sourceLineNo">325</span> ", min age=" + snapshot.getMin() +<a name="line.325"></a>
-<span class="sourceLineNo">326</span> ", max age=" + snapshot.getMax() +<a name="line.326"></a>
-<span class="sourceLineNo">327</span> ", 75th percentile age=" + snapshot.get75thPercentile() +<a name="line.327"></a>
-<span class="sourceLineNo">328</span> ", 95th percentile age=" + snapshot.get95thPercentile() +<a name="line.328"></a>
-<span class="sourceLineNo">329</span> ", 98th percentile age=" + snapshot.get98thPercentile() +<a name="line.329"></a>
-<span class="sourceLineNo">330</span> ", 99th percentile age=" + snapshot.get99thPercentile() +<a name="line.330"></a>
-<span class="sourceLineNo">331</span> ", 99.9th percentile age=" + snapshot.get99thPercentile();<a name="line.331"></a>
-<span class="sourceLineNo">332</span> }<a name="line.332"></a>
-<span class="sourceLineNo">333</span> }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>}<a name="line.334"></a>
+<span class="sourceLineNo">203</span> throw new RuntimeException("Cached block contents differ, which should not have happened."<a name="line.203"></a>
+<span class="sourceLineNo">204</span> + "cacheKey:" + cacheKey);<a name="line.204"></a>
+<span class="sourceLineNo">205</span> }<a name="line.205"></a>
+<span class="sourceLineNo">206</span> if ((existing instanceof HFileBlock) && (newBlock instanceof HFileBlock)) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> comparison = ((HFileBlock) existing).getNextBlockOnDiskSize()<a name="line.207"></a>
+<span class="sourceLineNo">208</span> - ((HFileBlock) newBlock).getNextBlockOnDiskSize();<a name="line.208"></a>
+<span class="sourceLineNo">209</span> }<a name="line.209"></a>
+<span class="sourceLineNo">210</span> return comparison;<a name="line.210"></a>
+<span class="sourceLineNo">211</span> }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span> /**<a name="line.213"></a>
+<span class="sourceLineNo">214</span> * Because of the region splitting, it's possible that the split key locate in the middle of a<a name="line.214"></a>
+<span class="sourceLineNo">215</span> * block. So it's possible that both the daughter regions load the same block from their parent<a name="line.215"></a>
+<span class="sourceLineNo">216</span> * HFile. When pread, we don't force the read to read all of the next block header. So when two<a name="line.216"></a>
+<span class="sourceLineNo">217</span> * threads try to cache the same block, it's possible that one thread read all of the next block<a name="line.217"></a>
+<span class="sourceLineNo">218</span> * header but the other one didn't. if the already cached block hasn't next block header but the<a name="line.218"></a>
+<span class="sourceLineNo">219</span> * new block to cache has, then we can replace the existing block with the new block for better<a name="line.219"></a>
+<span class="sourceLineNo">220</span> * performance.(HBASE-20447)<a name="line.220"></a>
+<span class="sourceLineNo">221</span> * @param blockCache BlockCache to check<a name="line.221"></a>
+<span class="sourceLineNo">222</span> * @param cacheKey the block cache key<a name="line.222"></a>
+<span class="sourceLineNo">223</span> * @param newBlock the new block which try to put into the block cache.<a name="line.223"></a>
+<span class="sourceLineNo">224</span> * @return true means need to replace existing block with new block for the same block cache key.<a name="line.224"></a>
+<span class="sourceLineNo">225</span> * false means just keep the existing block.<a name="line.225"></a>
+<span class="sourceLineNo">226</span> */<a name="line.226"></a>
+<span class="sourceLineNo">227</span> public static boolean shouldReplaceExistingCacheBlock(BlockCache blockCache,<a name="line.227"></a>
+<span class="sourceLineNo">228</span> BlockCacheKey cacheKey, Cacheable newBlock) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span> Cacheable existingBlock = blockCache.getBlock(cacheKey, false, false, false);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> try {<a name="line.230"></a>
+<span class="sourceLineNo">231</span> int comparison = BlockCacheUtil.validateBlockAddition(existingBlock, newBlock, cacheKey);<a name="line.231"></a>
+<span class="sourceLineNo">232</span> if (comparison < 0) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize, the new block has "<a name="line.233"></a>
+<span class="sourceLineNo">234</span> + "nextBlockOnDiskSize set. Caching new block.");<a name="line.234"></a>
+<span class="sourceLineNo">235</span> return true;<a name="line.235"></a>
+<span class="sourceLineNo">236</span> } else if (comparison > 0) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize, the existing block has "<a name="line.237"></a>
+<span class="sourceLineNo">238</span> + "nextBlockOnDiskSize set, Keeping cached block.");<a name="line.238"></a>
+<span class="sourceLineNo">239</span> return false;<a name="line.239"></a>
+<span class="sourceLineNo">240</span> } else {<a name="line.240"></a>
+<span class="sourceLineNo">241</span> LOG.warn("Caching an already cached block: {}. This is harmless and can happen in rare "<a name="line.241"></a>
+<span class="sourceLineNo">242</span> + "cases (see HBASE-8547)",<a name="line.242"></a>
+<span class="sourceLineNo">243</span> cacheKey);<a name="line.243"></a>
+<span class="sourceLineNo">244</span> return false;<a name="line.244"></a>
+<span class="sourceLineNo">245</span> }<a name="line.245"></a>
+<span class="sourceLineNo">246</span> } finally {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> // return the block since we need to decrement the count<a name="line.247"></a>
+<span class="sourceLineNo">248</span> blockCache.returnBlock(cacheKey, existingBlock);<a name="line.248"></a>
+<span class="sourceLineNo">249</span> }<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span> /**<a name="line.252"></a>
+<span class="sourceLineNo">253</span> * Use one of these to keep a running account of cached blocks by file. Throw it away when done.<a name="line.253"></a>
+<span class="sourceLineNo">254</span> * This is different than metrics in that it is stats on current state of a cache.<a name="line.254"></a>
+<span class="sourceLineNo">255</span> * See getLoadedCachedBlocksByFile<a name="line.255"></a>
+<span class="sourceLineNo">256</span> */<a name="line.256"></a>
+<span class="sourceLineNo">257</span> @JsonIgnoreProperties({"cachedBlockStatsByFile"})<a name="line.257"></a>
+<span class="sourceLineNo">258</span> public static class CachedBlocksByFile {<a name="line.258"></a>
+<span class="sourceLineNo">259</span> private int count;<a name="line.259"></a>
+<span class="sourceLineNo">260</span> private int dataBlockCount;<a name="line.260"></a>
+<span class="sourceLineNo">261</span> private long size;<a name="line.261"></a>
+<span class="sourceLineNo">262</span> private long dataSize;<a name="line.262"></a>
+<span class="sourceLineNo">263</span> private final long now = System.nanoTime();<a name="line.263"></a>
+<span class="sourceLineNo">264</span> /**<a name="line.264"></a>
+<span class="sourceLineNo">265</span> * How many blocks to look at before we give up.<a name="line.265"></a>
+<span class="sourceLineNo">266</span> * There could be many millions of blocks. We don't want the<a name="line.266"></a>
+<span class="sourceLineNo">267</span> * ui to freeze while we run through 1B blocks... users will<a name="line.267"></a>
+<span class="sourceLineNo">268</span> * think hbase dead. UI displays warning in red when stats<a name="line.268"></a>
+<span class="sourceLineNo">269</span> * are incomplete.<a name="line.269"></a>
+<span class="sourceLineNo">270</span> */<a name="line.270"></a>
+<span class="sourceLineNo">271</span> private final int max;<a name="line.271"></a>
+<span class="sourceLineNo">272</span> public static final int DEFAULT_MAX = 1000000;<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span> CachedBlocksByFile() {<a name="line.274"></a>
+<span class="sourceLineNo">275</span> this(null);<a name="line.275"></a>
+<span class="sourceLineNo">276</span> }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span> CachedBlocksByFile(final Configuration c) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> this.max = c == null? DEFAULT_MAX: c.getInt("hbase.ui.blockcache.by.file.max", DEFAULT_MAX);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span> /**<a name="line.282"></a>
+<span class="sourceLineNo">283</span> * Map by filename. use concurent utils because we want our Map and contained blocks sorted.<a name="line.283"></a>
+<span class="sourceLineNo">284</span> */<a name="line.284"></a>
+<span class="sourceLineNo">285</span> private NavigableMap<String, NavigableSet<CachedBlock>> cachedBlockByFile = new ConcurrentSkipListMap<>();<a name="line.285"></a>
+<span class="sourceLineNo">286</span> FastLongHistogram hist = new FastLongHistogram();<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span> /**<a name="line.288"></a>
+<span class="sourceLineNo">289</span> * @param cb<a name="line.289"></a>
+<span class="sourceLineNo">290</span> * @return True if full.... if we won't be adding any more.<a name="line.290"></a>
+<span class="sourceLineNo">291</span> */<a name="line.291"></a>
+<span class="sourceLineNo">292</span> public boolean update(final CachedBlock cb) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span> if (isFull()) return true;<a name="line.293"></a>
+<span class="sourceLineNo">294</span> NavigableSet<CachedBlock> set = this.cachedBlockByFile.get(cb.getFilename());<a name="line.294"></a>
+<span class="sourceLineNo">295</span> if (set == null) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span> set = new ConcurrentSkipListSet<>();<a name="line.296"></a>
+<span class="sourceLineNo">297</span> this.cachedBlockByFile.put(cb.getFilename(), set);<a name="line.297"></a>
+<span class="sourceLineNo">298</span> }<a name="line.298"></a>
+<span class="sourceLineNo">299</span> set.add(cb);<a name="line.299"></a>
+<span class="sourceLineNo">300</span> this.size += cb.getSize();<a name="line.300"></a>
+<span class="sourceLineNo">301</span> this.count++;<a name="line.301"></a>
+<span class="sourceLineNo">302</span> BlockType bt = cb.getBlockType();<a name="line.302"></a>
+<span class="sourceLineNo">303</span> if (bt != null && bt.isData()) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span> this.dataBlockCount++;<a name="line.304"></a>
+<span class="sourceLineNo">305</span> this.dataSize += cb.getSize();<a name="line.305"></a>
+<span class="sourceLineNo">306</span> }<a name="line.306"></a>
+<span class="sourceLineNo">307</span> long age = (this.now - cb.getCachedTime())/NANOS_PER_SECOND;<a name="line.307"></a>
+<span class="sourceLineNo">308</span> this.hist.add(age, 1);<a name="line.308"></a>
+<span class="sourceLineNo">309</span> return false;<a name="line.309"></a>
+<span class="sourceLineNo">310</span> }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span> /**<a name="line.312"></a>
+<span class="sourceLineNo">313</span> * @return True if full; i.e. there are more items in the cache but we only loaded up<a name="line.313"></a>
+<span class="sourceLineNo">314</span> * the maximum set in configuration <code>hbase.ui.blockcache.by.file.max</code><a name="line.314"></a>
+<span class="sourceLineNo">315</span> * (Default: DEFAULT_MAX).<a name="line.315"></a>
+<span class="sourceLineNo">316</span> */<a name="line.316"></a>
+<span class="sourceLineNo">317</span> public boolean isFull() {<a name="line.317"></a>
+<span class="sourceLineNo">318</span> return this.count >= this.max;<a name="line.318"></a>
+<span class="sourceLineNo">319</span> }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span> public NavigableMap<String, NavigableSet<CachedBlock>> getCachedBlockStatsByFile() {<a name="line.321"></a>
+<span class="sourceLineNo">322</span> return this.cachedBlockByFile;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> }<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span> /**<a name="line.325"></a>
+<span class="sourceLineNo">326</span> * @return count of blocks in the cache<a name="line.326"></a>
+<span class="sourceLineNo">327</span> */<a name="line.327"></a>
+<span class="sourceLineNo">328</span> public int getCount() {<a name="line.328"></a>
+<span class="sourceLineNo">329</span> return count;<a name="line.329"></a>
+<span class="sourceLineNo">330</span> }<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span> public int getDataCount() {<a name="line.332"></a>
+<span class="sourceLineNo">333</span> return dataBlockCount;<a name="line.333"></a>
+<span class="sourceLineNo">334</span> }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span> /**<a name="line.336"></a>
+<span class="sourceLineNo">337</span> * @return size of blocks in the cache<a name="line.337"></a>
+<span class="sourceLineNo">338</span> */<a name="line.338"></a>
+<span class="sourceLineNo">339</span> public long getSize() {<a name="line.339"></a>
+<span class="sourceLineNo">340</span> return size;<a name="line.340"></a>
+<span class="sourceLineNo">341</span> }<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span> /**<a name="line.343"></a>
+<span class="sourceLineNo">344</span> * @return Size of data.<a name="line.344"></a>
+<span class="sourceLineNo">345</span> */<a name="line.345"></a>
+<span class="sourceLineNo">346</span> public long getDataSize() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> return dataSize;<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span> public AgeSnapshot getAgeInCacheSnapshot() {<a name="line.350"></a>
+<span class="sourceLineNo">351</span> return new AgeSnapshot(this.hist);<a name="line.351"></a>
+<span class="sourceLineNo">352</span> }<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span> @Override<a name="line.354"></a>
+<span class="sourceLineNo">355</span> public String toString() {<a name="line.355"></a>
+<span class="sourceLineNo">356</span> AgeSnapshot snapshot = getAgeInCacheSnapshot();<a name="line.356"></a>
+<span class="sourceLineNo">357</span> return "count=" + count + ", dataBlockCount=" + dataBlockCount + ", size=" + size +<a name="line.357"></a>
+<span class="sourceLineNo">358</span> ", dataSize=" + getDataSize() +<a name="line.358"></a>
+<span class="sourceLineNo">359</span> ", mean age=" + snapshot.getMean() +<a name="line.359"></a>
+<span class="sourceLineNo">360</span> ", min age=" + snapshot.getMin() +<a name="line.360"></a>
+<span class="sourceLineNo">361</span> ", max age=" + snapshot.getMax() +<a name="line.361"></a>
+<span class="sourceLineNo">362</span> ", 75th percentile age=" + snapshot.get75thPercentile() +<a name="line.362"></a>
+<span class="sourceLineNo">363</span> ", 95th percentile age=" + snapshot.get95thPercentile() +<a name="line.363"></a>
+<span class="sourceLineNo">364</span> ", 98th percentile age=" + snapshot.get98thPercentile() +<a name="line.364"></a>
+<span class="sourceLineNo">365</span> ", 99th percentile age=" + snapshot.get99thPercentile() +<a name="line.365"></a>
+<span class="sourceLineNo">366</span> ", 99.9th percentile age=" + snapshot.get99thPercentile();<a name="line.366"></a>
+<span class="sourceLineNo">367</span> }<a name="line.367"></a>
+<span class="sourceLineNo">368</span> }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>}<a name="line.369"></a>
[03/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html
index 67f4551..017124c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html
@@ -387,817 +387,804 @@
<span class="sourceLineNo">379</span> }<a name="line.379"></a>
<span class="sourceLineNo">380</span><a name="line.380"></a>
<span class="sourceLineNo">381</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.381"></a>
-<span class="sourceLineNo">382</span> if (cb != null) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span> int comparison = BlockCacheUtil.validateBlockAddition(cb.getBuffer(), buf, cacheKey);<a name="line.383"></a>
-<span class="sourceLineNo">384</span> if (comparison != 0) {<a name="line.384"></a>
-<span class="sourceLineNo">385</span> if (comparison < 0) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize. Keeping cached block.");<a name="line.386"></a>
-<span class="sourceLineNo">387</span> return;<a name="line.387"></a>
-<span class="sourceLineNo">388</span> } else {<a name="line.388"></a>
-<span class="sourceLineNo">389</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize. Caching new block.");<a name="line.389"></a>
-<span class="sourceLineNo">390</span> }<a name="line.390"></a>
-<span class="sourceLineNo">391</span> } else {<a name="line.391"></a>
-<span class="sourceLineNo">392</span> String msg = "Cached an already cached block: " + cacheKey + " cb:" + cb.getCacheKey();<a name="line.392"></a>
-<span class="sourceLineNo">393</span> msg += ". This is harmless and can happen in rare cases (see HBASE-8547)";<a name="line.393"></a>
-<span class="sourceLineNo">394</span> LOG.debug(msg);<a name="line.394"></a>
-<span class="sourceLineNo">395</span> return;<a name="line.395"></a>
-<span class="sourceLineNo">396</span> }<a name="line.396"></a>
-<span class="sourceLineNo">397</span> }<a name="line.397"></a>
-<span class="sourceLineNo">398</span> long currentSize = size.get();<a name="line.398"></a>
-<span class="sourceLineNo">399</span> long currentAcceptableSize = acceptableSize();<a name="line.399"></a>
-<span class="sourceLineNo">400</span> long hardLimitSize = (long) (hardCapacityLimitFactor * currentAcceptableSize);<a name="line.400"></a>
-<span class="sourceLineNo">401</span> if (currentSize >= hardLimitSize) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span> stats.failInsert();<a name="line.402"></a>
-<span class="sourceLineNo">403</span> if (LOG.isTraceEnabled()) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span> LOG.trace("LruBlockCache current size " + StringUtils.byteDesc(currentSize)<a name="line.404"></a>
-<span class="sourceLineNo">405</span> + " has exceeded acceptable size " + StringUtils.byteDesc(currentAcceptableSize) + "."<a name="line.405"></a>
-<span class="sourceLineNo">406</span> + " The hard limit size is " + StringUtils.byteDesc(hardLimitSize)<a name="line.406"></a>
-<span class="sourceLineNo">407</span> + ", failed to put cacheKey:" + cacheKey + " into LruBlockCache.");<a name="line.407"></a>
-<span class="sourceLineNo">408</span> }<a name="line.408"></a>
-<span class="sourceLineNo">409</span> if (!evictionInProgress) {<a name="line.409"></a>
-<span class="sourceLineNo">410</span> runEviction();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> }<a name="line.411"></a>
-<span class="sourceLineNo">412</span> return;<a name="line.412"></a>
-<span class="sourceLineNo">413</span> }<a name="line.413"></a>
-<span class="sourceLineNo">414</span> cb = new LruCachedBlock(cacheKey, buf, count.incrementAndGet(), inMemory);<a name="line.414"></a>
-<span class="sourceLineNo">415</span> long newSize = updateSizeMetrics(cb, false);<a name="line.415"></a>
-<span class="sourceLineNo">416</span> map.put(cacheKey, cb);<a name="line.416"></a>
-<span class="sourceLineNo">417</span> long val = elements.incrementAndGet();<a name="line.417"></a>
-<span class="sourceLineNo">418</span> if (buf.getBlockType().isData()) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span> dataBlockElements.increment();<a name="line.419"></a>
-<span class="sourceLineNo">420</span> }<a name="line.420"></a>
-<span class="sourceLineNo">421</span> if (LOG.isTraceEnabled()) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> long size = map.size();<a name="line.422"></a>
-<span class="sourceLineNo">423</span> assertCounterSanity(size, val);<a name="line.423"></a>
-<span class="sourceLineNo">424</span> }<a name="line.424"></a>
-<span class="sourceLineNo">425</span> if (newSize > currentAcceptableSize && !evictionInProgress) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span> runEviction();<a name="line.426"></a>
-<span class="sourceLineNo">427</span> }<a name="line.427"></a>
-<span class="sourceLineNo">428</span> }<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span> /**<a name="line.430"></a>
-<span class="sourceLineNo">431</span> * Sanity-checking for parity between actual block cache content and metrics.<a name="line.431"></a>
-<span class="sourceLineNo">432</span> * Intended only for use with TRACE level logging and -ea JVM.<a name="line.432"></a>
-<span class="sourceLineNo">433</span> */<a name="line.433"></a>
-<span class="sourceLineNo">434</span> private static void assertCounterSanity(long mapSize, long counterVal) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span> if (counterVal < 0) {<a name="line.435"></a>
-<span class="sourceLineNo">436</span> LOG.trace("counterVal overflow. Assertions unreliable. counterVal=" + counterVal +<a name="line.436"></a>
-<span class="sourceLineNo">437</span> ", mapSize=" + mapSize);<a name="line.437"></a>
-<span class="sourceLineNo">438</span> return;<a name="line.438"></a>
-<span class="sourceLineNo">439</span> }<a name="line.439"></a>
-<span class="sourceLineNo">440</span> if (mapSize < Integer.MAX_VALUE) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span> double pct_diff = Math.abs((((double) counterVal) / ((double) mapSize)) - 1.);<a name="line.441"></a>
-<span class="sourceLineNo">442</span> if (pct_diff > 0.05) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> LOG.trace("delta between reported and actual size > 5%. counterVal=" + counterVal +<a name="line.443"></a>
-<span class="sourceLineNo">444</span> ", mapSize=" + mapSize);<a name="line.444"></a>
-<span class="sourceLineNo">445</span> }<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> }<a name="line.447"></a>
-<span class="sourceLineNo">448</span><a name="line.448"></a>
-<span class="sourceLineNo">449</span> /**<a name="line.449"></a>
-<span class="sourceLineNo">450</span> * Cache the block with the specified name and buffer.<a name="line.450"></a>
-<span class="sourceLineNo">451</span> * <p><a name="line.451"></a>
-<span class="sourceLineNo">452</span> *<a name="line.452"></a>
-<span class="sourceLineNo">453</span> * @param cacheKey block's cache key<a name="line.453"></a>
-<span class="sourceLineNo">454</span> * @param buf block buffer<a name="line.454"></a>
-<span class="sourceLineNo">455</span> */<a name="line.455"></a>
-<span class="sourceLineNo">456</span> @Override<a name="line.456"></a>
-<span class="sourceLineNo">457</span> public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf) {<a name="line.457"></a>
-<span class="sourceLineNo">458</span> cacheBlock(cacheKey, buf, false);<a name="line.458"></a>
-<span class="sourceLineNo">459</span> }<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span> /**<a name="line.461"></a>
-<span class="sourceLineNo">462</span> * Helper function that updates the local size counter and also updates any<a name="line.462"></a>
-<span class="sourceLineNo">463</span> * per-cf or per-blocktype metrics it can discern from given<a name="line.463"></a>
-<span class="sourceLineNo">464</span> * {@link LruCachedBlock}<a name="line.464"></a>
-<span class="sourceLineNo">465</span> */<a name="line.465"></a>
-<span class="sourceLineNo">466</span> private long updateSizeMetrics(LruCachedBlock cb, boolean evict) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span> long heapsize = cb.heapSize();<a name="line.467"></a>
-<span class="sourceLineNo">468</span> BlockType bt = cb.getBuffer().getBlockType();<a name="line.468"></a>
-<span class="sourceLineNo">469</span> if (evict) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span> heapsize *= -1;<a name="line.470"></a>
-<span class="sourceLineNo">471</span> }<a name="line.471"></a>
-<span class="sourceLineNo">472</span> if (bt != null && bt.isData()) {<a name="line.472"></a>
-<span class="sourceLineNo">473</span> dataBlockSize.add(heapsize);<a name="line.473"></a>
-<span class="sourceLineNo">474</span> }<a name="line.474"></a>
-<span class="sourceLineNo">475</span> return size.addAndGet(heapsize);<a name="line.475"></a>
-<span class="sourceLineNo">476</span> }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span> /**<a name="line.478"></a>
-<span class="sourceLineNo">479</span> * Get the buffer of the block with the specified name.<a name="line.479"></a>
-<span class="sourceLineNo">480</span> *<a name="line.480"></a>
-<span class="sourceLineNo">481</span> * @param cacheKey block's cache key<a name="line.481"></a>
-<span class="sourceLineNo">482</span> * @param caching true if the caller caches blocks on cache misses<a name="line.482"></a>
-<span class="sourceLineNo">483</span> * @param repeat Whether this is a repeat lookup for the same block<a name="line.483"></a>
-<span class="sourceLineNo">484</span> * (used to avoid double counting cache misses when doing double-check<a name="line.484"></a>
-<span class="sourceLineNo">485</span> * locking)<a name="line.485"></a>
-<span class="sourceLineNo">486</span> * @param updateCacheMetrics Whether to update cache metrics or not<a name="line.486"></a>
-<span class="sourceLineNo">487</span> *<a name="line.487"></a>
-<span class="sourceLineNo">488</span> * @return buffer of specified cache key, or null if not in cache<a name="line.488"></a>
-<span class="sourceLineNo">489</span> */<a name="line.489"></a>
-<span class="sourceLineNo">490</span> @Override<a name="line.490"></a>
-<span class="sourceLineNo">491</span> public Cacheable getBlock(BlockCacheKey cacheKey, boolean caching, boolean repeat,<a name="line.491"></a>
-<span class="sourceLineNo">492</span> boolean updateCacheMetrics) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.493"></a>
-<span class="sourceLineNo">494</span> if (cb == null) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span> if (!repeat && updateCacheMetrics) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span> stats.miss(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.496"></a>
-<span class="sourceLineNo">497</span> }<a name="line.497"></a>
-<span class="sourceLineNo">498</span> // If there is another block cache then try and read there.<a name="line.498"></a>
-<span class="sourceLineNo">499</span> // However if this is a retry ( second time in double checked locking )<a name="line.499"></a>
-<span class="sourceLineNo">500</span> // And it's already a miss then the l2 will also be a miss.<a name="line.500"></a>
-<span class="sourceLineNo">501</span> if (victimHandler != null && !repeat) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span> Cacheable result = victimHandler.getBlock(cacheKey, caching, repeat, updateCacheMetrics);<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span> // Promote this to L1.<a name="line.504"></a>
-<span class="sourceLineNo">505</span> if (result != null && caching) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span> if (result instanceof HFileBlock && ((HFileBlock) result).usesSharedMemory()) {<a name="line.506"></a>
-<span class="sourceLineNo">507</span> result = ((HFileBlock) result).deepClone();<a name="line.507"></a>
-<span class="sourceLineNo">508</span> }<a name="line.508"></a>
-<span class="sourceLineNo">509</span> cacheBlock(cacheKey, result, /* inMemory = */ false);<a name="line.509"></a>
-<span class="sourceLineNo">510</span> }<a name="line.510"></a>
-<span class="sourceLineNo">511</span> return result;<a name="line.511"></a>
-<span class="sourceLineNo">512</span> }<a name="line.512"></a>
-<span class="sourceLineNo">513</span> return null;<a name="line.513"></a>
-<span class="sourceLineNo">514</span> }<a name="line.514"></a>
-<span class="sourceLineNo">515</span> if (updateCacheMetrics) stats.hit(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.515"></a>
-<span class="sourceLineNo">516</span> cb.access(count.incrementAndGet());<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return cb.getBuffer();<a name="line.517"></a>
-<span class="sourceLineNo">518</span> }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> /**<a name="line.520"></a>
-<span class="sourceLineNo">521</span> * Whether the cache contains block with specified cacheKey<a name="line.521"></a>
-<span class="sourceLineNo">522</span> *<a name="line.522"></a>
-<span class="sourceLineNo">523</span> * @return true if contains the block<a name="line.523"></a>
-<span class="sourceLineNo">524</span> */<a name="line.524"></a>
-<span class="sourceLineNo">525</span> public boolean containsBlock(BlockCacheKey cacheKey) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span> return map.containsKey(cacheKey);<a name="line.526"></a>
-<span class="sourceLineNo">527</span> }<a name="line.527"></a>
-<span class="sourceLineNo">528</span><a name="line.528"></a>
-<span class="sourceLineNo">529</span> @Override<a name="line.529"></a>
-<span class="sourceLineNo">530</span> public boolean evictBlock(BlockCacheKey cacheKey) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.531"></a>
-<span class="sourceLineNo">532</span> return cb != null && evictBlock(cb, false) > 0;<a name="line.532"></a>
-<span class="sourceLineNo">533</span> }<a name="line.533"></a>
-<span class="sourceLineNo">534</span><a name="line.534"></a>
-<span class="sourceLineNo">535</span> /**<a name="line.535"></a>
-<span class="sourceLineNo">536</span> * Evicts all blocks for a specific HFile. This is an<a name="line.536"></a>
-<span class="sourceLineNo">537</span> * expensive operation implemented as a linear-time search through all blocks<a name="line.537"></a>
-<span class="sourceLineNo">538</span> * in the cache. Ideally this should be a search in a log-access-time map.<a name="line.538"></a>
-<span class="sourceLineNo">539</span> *<a name="line.539"></a>
-<span class="sourceLineNo">540</span> * <p><a name="line.540"></a>
-<span class="sourceLineNo">541</span> * This is used for evict-on-close to remove all blocks of a specific HFile.<a name="line.541"></a>
-<span class="sourceLineNo">542</span> *<a name="line.542"></a>
-<span class="sourceLineNo">543</span> * @return the number of blocks evicted<a name="line.543"></a>
-<span class="sourceLineNo">544</span> */<a name="line.544"></a>
-<span class="sourceLineNo">545</span> @Override<a name="line.545"></a>
-<span class="sourceLineNo">546</span> public int evictBlocksByHfileName(String hfileName) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span> int numEvicted = 0;<a name="line.547"></a>
-<span class="sourceLineNo">548</span> for (BlockCacheKey key : map.keySet()) {<a name="line.548"></a>
-<span class="sourceLineNo">549</span> if (key.getHfileName().equals(hfileName)) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span> if (evictBlock(key))<a name="line.550"></a>
-<span class="sourceLineNo">551</span> ++numEvicted;<a name="line.551"></a>
-<span class="sourceLineNo">552</span> }<a name="line.552"></a>
-<span class="sourceLineNo">553</span> }<a name="line.553"></a>
-<span class="sourceLineNo">554</span> if (victimHandler != null) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span> numEvicted += victimHandler.evictBlocksByHfileName(hfileName);<a name="line.555"></a>
-<span class="sourceLineNo">556</span> }<a name="line.556"></a>
-<span class="sourceLineNo">557</span> return numEvicted;<a name="line.557"></a>
-<span class="sourceLineNo">558</span> }<a name="line.558"></a>
-<span class="sourceLineNo">559</span><a name="line.559"></a>
-<span class="sourceLineNo">560</span> /**<a name="line.560"></a>
-<span class="sourceLineNo">561</span> * Evict the block, and it will be cached by the victim handler if exists &amp;&amp;<a name="line.561"></a>
-<span class="sourceLineNo">562</span> * block may be read again later<a name="line.562"></a>
-<span class="sourceLineNo">563</span> *<a name="line.563"></a>
-<span class="sourceLineNo">564</span> * @param evictedByEvictionProcess true if the given block is evicted by<a name="line.564"></a>
-<span class="sourceLineNo">565</span> * EvictionThread<a name="line.565"></a>
-<span class="sourceLineNo">566</span> * @return the heap size of evicted block<a name="line.566"></a>
-<span class="sourceLineNo">567</span> */<a name="line.567"></a>
-<span class="sourceLineNo">568</span> protected long evictBlock(LruCachedBlock block, boolean evictedByEvictionProcess) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span> boolean found = map.remove(block.getCacheKey()) != null;<a name="line.569"></a>
-<span class="sourceLineNo">570</span> if (!found) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span> return 0;<a name="line.571"></a>
-<span class="sourceLineNo">572</span> }<a name="line.572"></a>
-<span class="sourceLineNo">573</span> updateSizeMetrics(block, true);<a name="line.573"></a>
-<span class="sourceLineNo">574</span> long val = elements.decrementAndGet();<a name="line.574"></a>
-<span class="sourceLineNo">575</span> if (LOG.isTraceEnabled()) {<a name="line.575"></a>
-<span class="sourceLineNo">576</span> long size = map.size();<a name="line.576"></a>
-<span class="sourceLineNo">577</span> assertCounterSanity(size, val);<a name="line.577"></a>
-<span class="sourceLineNo">578</span> }<a name="line.578"></a>
-<span class="sourceLineNo">579</span> if (block.getBuffer().getBlockType().isData()) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span> dataBlockElements.decrement();<a name="line.580"></a>
-<span class="sourceLineNo">581</span> }<a name="line.581"></a>
-<span class="sourceLineNo">582</span> if (evictedByEvictionProcess) {<a name="line.582"></a>
-<span class="sourceLineNo">583</span> // When the eviction of the block happened because of invalidation of HFiles, no need to<a name="line.583"></a>
-<span class="sourceLineNo">584</span> // update the stats counter.<a name="line.584"></a>
-<span class="sourceLineNo">585</span> stats.evicted(block.getCachedTime(), block.getCacheKey().isPrimary());<a name="line.585"></a>
-<span class="sourceLineNo">586</span> if (victimHandler != null) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span> victimHandler.cacheBlock(block.getCacheKey(), block.getBuffer());<a name="line.587"></a>
-<span class="sourceLineNo">588</span> }<a name="line.588"></a>
-<span class="sourceLineNo">589</span> }<a name="line.589"></a>
-<span class="sourceLineNo">590</span> return block.heapSize();<a name="line.590"></a>
-<span class="sourceLineNo">591</span> }<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span> /**<a name="line.593"></a>
-<span class="sourceLineNo">594</span> * Multi-threaded call to run the eviction process.<a name="line.594"></a>
-<span class="sourceLineNo">595</span> */<a name="line.595"></a>
-<span class="sourceLineNo">596</span> private void runEviction() {<a name="line.596"></a>
-<span class="sourceLineNo">597</span> if (evictionThread == null) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span> evict();<a name="line.598"></a>
-<span class="sourceLineNo">599</span> } else {<a name="line.599"></a>
-<span class="sourceLineNo">600</span> evictionThread.evict();<a name="line.600"></a>
-<span class="sourceLineNo">601</span> }<a name="line.601"></a>
-<span class="sourceLineNo">602</span> }<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span> @VisibleForTesting<a name="line.604"></a>
-<span class="sourceLineNo">605</span> boolean isEvictionInProgress() {<a name="line.605"></a>
-<span class="sourceLineNo">606</span> return evictionInProgress;<a name="line.606"></a>
-<span class="sourceLineNo">607</span> }<a name="line.607"></a>
+<span class="sourceLineNo">382</span> if (cb != null && !BlockCacheUtil.shouldReplaceExistingCacheBlock(this, cacheKey, buf)) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> return;<a name="line.383"></a>
+<span class="sourceLineNo">384</span> }<a name="line.384"></a>
+<span class="sourceLineNo">385</span> long currentSize = size.get();<a name="line.385"></a>
+<span class="sourceLineNo">386</span> long currentAcceptableSize = acceptableSize();<a name="line.386"></a>
+<span class="sourceLineNo">387</span> long hardLimitSize = (long) (hardCapacityLimitFactor * currentAcceptableSize);<a name="line.387"></a>
+<span class="sourceLineNo">388</span> if (currentSize >= hardLimitSize) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span> stats.failInsert();<a name="line.389"></a>
+<span class="sourceLineNo">390</span> if (LOG.isTraceEnabled()) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> LOG.trace("LruBlockCache current size " + StringUtils.byteDesc(currentSize)<a name="line.391"></a>
+<span class="sourceLineNo">392</span> + " has exceeded acceptable size " + StringUtils.byteDesc(currentAcceptableSize) + "."<a name="line.392"></a>
+<span class="sourceLineNo">393</span> + " The hard limit size is " + StringUtils.byteDesc(hardLimitSize)<a name="line.393"></a>
+<span class="sourceLineNo">394</span> + ", failed to put cacheKey:" + cacheKey + " into LruBlockCache.");<a name="line.394"></a>
+<span class="sourceLineNo">395</span> }<a name="line.395"></a>
+<span class="sourceLineNo">396</span> if (!evictionInProgress) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span> runEviction();<a name="line.397"></a>
+<span class="sourceLineNo">398</span> }<a name="line.398"></a>
+<span class="sourceLineNo">399</span> return;<a name="line.399"></a>
+<span class="sourceLineNo">400</span> }<a name="line.400"></a>
+<span class="sourceLineNo">401</span> cb = new LruCachedBlock(cacheKey, buf, count.incrementAndGet(), inMemory);<a name="line.401"></a>
+<span class="sourceLineNo">402</span> long newSize = updateSizeMetrics(cb, false);<a name="line.402"></a>
+<span class="sourceLineNo">403</span> map.put(cacheKey, cb);<a name="line.403"></a>
+<span class="sourceLineNo">404</span> long val = elements.incrementAndGet();<a name="line.404"></a>
+<span class="sourceLineNo">405</span> if (buf.getBlockType().isData()) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span> dataBlockElements.increment();<a name="line.406"></a>
+<span class="sourceLineNo">407</span> }<a name="line.407"></a>
+<span class="sourceLineNo">408</span> if (LOG.isTraceEnabled()) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span> long size = map.size();<a name="line.409"></a>
+<span class="sourceLineNo">410</span> assertCounterSanity(size, val);<a name="line.410"></a>
+<span class="sourceLineNo">411</span> }<a name="line.411"></a>
+<span class="sourceLineNo">412</span> if (newSize > currentAcceptableSize && !evictionInProgress) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span> runEviction();<a name="line.413"></a>
+<span class="sourceLineNo">414</span> }<a name="line.414"></a>
+<span class="sourceLineNo">415</span> }<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span> /**<a name="line.417"></a>
+<span class="sourceLineNo">418</span> * Sanity-checking for parity between actual block cache content and metrics.<a name="line.418"></a>
+<span class="sourceLineNo">419</span> * Intended only for use with TRACE level logging and -ea JVM.<a name="line.419"></a>
+<span class="sourceLineNo">420</span> */<a name="line.420"></a>
+<span class="sourceLineNo">421</span> private static void assertCounterSanity(long mapSize, long counterVal) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span> if (counterVal < 0) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span> LOG.trace("counterVal overflow. Assertions unreliable. counterVal=" + counterVal +<a name="line.423"></a>
+<span class="sourceLineNo">424</span> ", mapSize=" + mapSize);<a name="line.424"></a>
+<span class="sourceLineNo">425</span> return;<a name="line.425"></a>
+<span class="sourceLineNo">426</span> }<a name="line.426"></a>
+<span class="sourceLineNo">427</span> if (mapSize < Integer.MAX_VALUE) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span> double pct_diff = Math.abs((((double) counterVal) / ((double) mapSize)) - 1.);<a name="line.428"></a>
+<span class="sourceLineNo">429</span> if (pct_diff > 0.05) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span> LOG.trace("delta between reported and actual size > 5%. counterVal=" + counterVal +<a name="line.430"></a>
+<span class="sourceLineNo">431</span> ", mapSize=" + mapSize);<a name="line.431"></a>
+<span class="sourceLineNo">432</span> }<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span> }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span> /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span> * Cache the block with the specified name and buffer.<a name="line.437"></a>
+<span class="sourceLineNo">438</span> * <p><a name="line.438"></a>
+<span class="sourceLineNo">439</span> *<a name="line.439"></a>
+<span class="sourceLineNo">440</span> * @param cacheKey block's cache key<a name="line.440"></a>
+<span class="sourceLineNo">441</span> * @param buf block buffer<a name="line.441"></a>
+<span class="sourceLineNo">442</span> */<a name="line.442"></a>
+<span class="sourceLineNo">443</span> @Override<a name="line.443"></a>
+<span class="sourceLineNo">444</span> public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span> cacheBlock(cacheKey, buf, false);<a name="line.445"></a>
+<span class="sourceLineNo">446</span> }<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span> /**<a name="line.448"></a>
+<span class="sourceLineNo">449</span> * Helper function that updates the local size counter and also updates any<a name="line.449"></a>
+<span class="sourceLineNo">450</span> * per-cf or per-blocktype metrics it can discern from given<a name="line.450"></a>
+<span class="sourceLineNo">451</span> * {@link LruCachedBlock}<a name="line.451"></a>
+<span class="sourceLineNo">452</span> */<a name="line.452"></a>
+<span class="sourceLineNo">453</span> private long updateSizeMetrics(LruCachedBlock cb, boolean evict) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span> long heapsize = cb.heapSize();<a name="line.454"></a>
+<span class="sourceLineNo">455</span> BlockType bt = cb.getBuffer().getBlockType();<a name="line.455"></a>
+<span class="sourceLineNo">456</span> if (evict) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span> heapsize *= -1;<a name="line.457"></a>
+<span class="sourceLineNo">458</span> }<a name="line.458"></a>
+<span class="sourceLineNo">459</span> if (bt != null && bt.isData()) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span> dataBlockSize.add(heapsize);<a name="line.460"></a>
+<span class="sourceLineNo">461</span> }<a name="line.461"></a>
+<span class="sourceLineNo">462</span> return size.addAndGet(heapsize);<a name="line.462"></a>
+<span class="sourceLineNo">463</span> }<a name="line.463"></a>
+<span class="sourceLineNo">464</span><a name="line.464"></a>
+<span class="sourceLineNo">465</span> /**<a name="line.465"></a>
+<span class="sourceLineNo">466</span> * Get the buffer of the block with the specified name.<a name="line.466"></a>
+<span class="sourceLineNo">467</span> *<a name="line.467"></a>
+<span class="sourceLineNo">468</span> * @param cacheKey block's cache key<a name="line.468"></a>
+<span class="sourceLineNo">469</span> * @param caching true if the caller caches blocks on cache misses<a name="line.469"></a>
+<span class="sourceLineNo">470</span> * @param repeat Whether this is a repeat lookup for the same block<a name="line.470"></a>
+<span class="sourceLineNo">471</span> * (used to avoid double counting cache misses when doing double-check<a name="line.471"></a>
+<span class="sourceLineNo">472</span> * locking)<a name="line.472"></a>
+<span class="sourceLineNo">473</span> * @param updateCacheMetrics Whether to update cache metrics or not<a name="line.473"></a>
+<span class="sourceLineNo">474</span> *<a name="line.474"></a>
+<span class="sourceLineNo">475</span> * @return buffer of specified cache key, or null if not in cache<a name="line.475"></a>
+<span class="sourceLineNo">476</span> */<a name="line.476"></a>
+<span class="sourceLineNo">477</span> @Override<a name="line.477"></a>
+<span class="sourceLineNo">478</span> public Cacheable getBlock(BlockCacheKey cacheKey, boolean caching, boolean repeat,<a name="line.478"></a>
+<span class="sourceLineNo">479</span> boolean updateCacheMetrics) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.480"></a>
+<span class="sourceLineNo">481</span> if (cb == null) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span> if (!repeat && updateCacheMetrics) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> stats.miss(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> // If there is another block cache then try and read there.<a name="line.485"></a>
+<span class="sourceLineNo">486</span> // However if this is a retry ( second time in double checked locking )<a name="line.486"></a>
+<span class="sourceLineNo">487</span> // And it's already a miss then the l2 will also be a miss.<a name="line.487"></a>
+<span class="sourceLineNo">488</span> if (victimHandler != null && !repeat) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> Cacheable result = victimHandler.getBlock(cacheKey, caching, repeat, updateCacheMetrics);<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span> // Promote this to L1.<a name="line.491"></a>
+<span class="sourceLineNo">492</span> if (result != null && caching) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span> if (result instanceof HFileBlock && ((HFileBlock) result).usesSharedMemory()) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span> result = ((HFileBlock) result).deepClone();<a name="line.494"></a>
+<span class="sourceLineNo">495</span> }<a name="line.495"></a>
+<span class="sourceLineNo">496</span> cacheBlock(cacheKey, result, /* inMemory = */ false);<a name="line.496"></a>
+<span class="sourceLineNo">497</span> }<a name="line.497"></a>
+<span class="sourceLineNo">498</span> return result;<a name="line.498"></a>
+<span class="sourceLineNo">499</span> }<a name="line.499"></a>
+<span class="sourceLineNo">500</span> return null;<a name="line.500"></a>
+<span class="sourceLineNo">501</span> }<a name="line.501"></a>
+<span class="sourceLineNo">502</span> if (updateCacheMetrics) stats.hit(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.502"></a>
+<span class="sourceLineNo">503</span> cb.access(count.incrementAndGet());<a name="line.503"></a>
+<span class="sourceLineNo">504</span> return cb.getBuffer();<a name="line.504"></a>
+<span class="sourceLineNo">505</span> }<a name="line.505"></a>
+<span class="sourceLineNo">506</span><a name="line.506"></a>
+<span class="sourceLineNo">507</span> /**<a name="line.507"></a>
+<span class="sourceLineNo">508</span> * Whether the cache contains block with specified cacheKey<a name="line.508"></a>
+<span class="sourceLineNo">509</span> *<a name="line.509"></a>
+<span class="sourceLineNo">510</span> * @return true if contains the block<a name="line.510"></a>
+<span class="sourceLineNo">511</span> */<a name="line.511"></a>
+<span class="sourceLineNo">512</span> public boolean containsBlock(BlockCacheKey cacheKey) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span> return map.containsKey(cacheKey);<a name="line.513"></a>
+<span class="sourceLineNo">514</span> }<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span> @Override<a name="line.516"></a>
+<span class="sourceLineNo">517</span> public boolean evictBlock(BlockCacheKey cacheKey) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.518"></a>
+<span class="sourceLineNo">519</span> return cb != null && evictBlock(cb, false) > 0;<a name="line.519"></a>
+<span class="sourceLineNo">520</span> }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span> /**<a name="line.522"></a>
+<span class="sourceLineNo">523</span> * Evicts all blocks for a specific HFile. This is an<a name="line.523"></a>
+<span class="sourceLineNo">524</span> * expensive operation implemented as a linear-time search through all blocks<a name="line.524"></a>
+<span class="sourceLineNo">525</span> * in the cache. Ideally this should be a search in a log-access-time map.<a name="line.525"></a>
+<span class="sourceLineNo">526</span> *<a name="line.526"></a>
+<span class="sourceLineNo">527</span> * <p><a name="line.527"></a>
+<span class="sourceLineNo">528</span> * This is used for evict-on-close to remove all blocks of a specific HFile.<a name="line.528"></a>
+<span class="sourceLineNo">529</span> *<a name="line.529"></a>
+<span class="sourceLineNo">530</span> * @return the number of blocks evicted<a name="line.530"></a>
+<span class="sourceLineNo">531</span> */<a name="line.531"></a>
+<span class="sourceLineNo">532</span> @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span> public int evictBlocksByHfileName(String hfileName) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span> int numEvicted = 0;<a name="line.534"></a>
+<span class="sourceLineNo">535</span> for (BlockCacheKey key : map.keySet()) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span> if (key.getHfileName().equals(hfileName)) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span> if (evictBlock(key))<a name="line.537"></a>
+<span class="sourceLineNo">538</span> ++numEvicted;<a name="line.538"></a>
+<span class="sourceLineNo">539</span> }<a name="line.539"></a>
+<span class="sourceLineNo">540</span> }<a name="line.540"></a>
+<span class="sourceLineNo">541</span> if (victimHandler != null) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span> numEvicted += victimHandler.evictBlocksByHfileName(hfileName);<a name="line.542"></a>
+<span class="sourceLineNo">543</span> }<a name="line.543"></a>
+<span class="sourceLineNo">544</span> return numEvicted;<a name="line.544"></a>
+<span class="sourceLineNo">545</span> }<a name="line.545"></a>
+<span class="sourceLineNo">546</span><a name="line.546"></a>
+<span class="sourceLineNo">547</span> /**<a name="line.547"></a>
+<span class="sourceLineNo">548</span> * Evict the block, and it will be cached by the victim handler if exists &amp;&amp;<a name="line.548"></a>
+<span class="sourceLineNo">549</span> * block may be read again later<a name="line.549"></a>
+<span class="sourceLineNo">550</span> *<a name="line.550"></a>
+<span class="sourceLineNo">551</span> * @param evictedByEvictionProcess true if the given block is evicted by<a name="line.551"></a>
+<span class="sourceLineNo">552</span> * EvictionThread<a name="line.552"></a>
+<span class="sourceLineNo">553</span> * @return the heap size of evicted block<a name="line.553"></a>
+<span class="sourceLineNo">554</span> */<a name="line.554"></a>
+<span class="sourceLineNo">555</span> protected long evictBlock(LruCachedBlock block, boolean evictedByEvictionProcess) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span> boolean found = map.remove(block.getCacheKey()) != null;<a name="line.556"></a>
+<span class="sourceLineNo">557</span> if (!found) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span> return 0;<a name="line.558"></a>
+<span class="sourceLineNo">559</span> }<a name="line.559"></a>
+<span class="sourceLineNo">560</span> updateSizeMetrics(block, true);<a name="line.560"></a>
+<span class="sourceLineNo">561</span> long val = elements.decrementAndGet();<a name="line.561"></a>
+<span class="sourceLineNo">562</span> if (LOG.isTraceEnabled()) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span> long size = map.size();<a name="line.563"></a>
+<span class="sourceLineNo">564</span> assertCounterSanity(size, val);<a name="line.564"></a>
+<span class="sourceLineNo">565</span> }<a name="line.565"></a>
+<span class="sourceLineNo">566</span> if (block.getBuffer().getBlockType().isData()) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span> dataBlockElements.decrement();<a name="line.567"></a>
+<span class="sourceLineNo">568</span> }<a name="line.568"></a>
+<span class="sourceLineNo">569</span> if (evictedByEvictionProcess) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span> // When the eviction of the block happened because of invalidation of HFiles, no need to<a name="line.570"></a>
+<span class="sourceLineNo">571</span> // update the stats counter.<a name="line.571"></a>
+<span class="sourceLineNo">572</span> stats.evicted(block.getCachedTime(), block.getCacheKey().isPrimary());<a name="line.572"></a>
+<span class="sourceLineNo">573</span> if (victimHandler != null) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span> victimHandler.cacheBlock(block.getCacheKey(), block.getBuffer());<a name="line.574"></a>
+<span class="sourceLineNo">575</span> }<a name="line.575"></a>
+<span class="sourceLineNo">576</span> }<a name="line.576"></a>
+<span class="sourceLineNo">577</span> return block.heapSize();<a name="line.577"></a>
+<span class="sourceLineNo">578</span> }<a name="line.578"></a>
+<span class="sourceLineNo">579</span><a name="line.579"></a>
+<span class="sourceLineNo">580</span> /**<a name="line.580"></a>
+<span class="sourceLineNo">581</span> * Multi-threaded call to run the eviction process.<a name="line.581"></a>
+<span class="sourceLineNo">582</span> */<a name="line.582"></a>
+<span class="sourceLineNo">583</span> private void runEviction() {<a name="line.583"></a>
+<span class="sourceLineNo">584</span> if (evictionThread == null) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span> evict();<a name="line.585"></a>
+<span class="sourceLineNo">586</span> } else {<a name="line.586"></a>
+<span class="sourceLineNo">587</span> evictionThread.evict();<a name="line.587"></a>
+<span class="sourceLineNo">588</span> }<a name="line.588"></a>
+<span class="sourceLineNo">589</span> }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span> @VisibleForTesting<a name="line.591"></a>
+<span class="sourceLineNo">592</span> boolean isEvictionInProgress() {<a name="line.592"></a>
+<span class="sourceLineNo">593</span> return evictionInProgress;<a name="line.593"></a>
+<span class="sourceLineNo">594</span> }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span> @VisibleForTesting<a name="line.596"></a>
+<span class="sourceLineNo">597</span> long getOverhead() {<a name="line.597"></a>
+<span class="sourceLineNo">598</span> return overhead;<a name="line.598"></a>
+<span class="sourceLineNo">599</span> }<a name="line.599"></a>
+<span class="sourceLineNo">600</span><a name="line.600"></a>
+<span class="sourceLineNo">601</span> /**<a name="line.601"></a>
+<span class="sourceLineNo">602</span> * Eviction method.<a name="line.602"></a>
+<span class="sourceLineNo">603</span> */<a name="line.603"></a>
+<span class="sourceLineNo">604</span> void evict() {<a name="line.604"></a>
+<span class="sourceLineNo">605</span><a name="line.605"></a>
+<span class="sourceLineNo">606</span> // Ensure only one eviction at a time<a name="line.606"></a>
+<span class="sourceLineNo">607</span> if(!evictionLock.tryLock()) return;<a name="line.607"></a>
<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span> @VisibleForTesting<a name="line.609"></a>
-<span class="sourceLineNo">610</span> long getOverhead() {<a name="line.610"></a>
-<span class="sourceLineNo">611</span> return overhead;<a name="line.611"></a>
-<span class="sourceLineNo">612</span> }<a name="line.612"></a>
+<span class="sourceLineNo">609</span> try {<a name="line.609"></a>
+<span class="sourceLineNo">610</span> evictionInProgress = true;<a name="line.610"></a>
+<span class="sourceLineNo">611</span> long currentSize = this.size.get();<a name="line.611"></a>
+<span class="sourceLineNo">612</span> long bytesToFree = currentSize - minSize();<a name="line.612"></a>
<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span> /**<a name="line.614"></a>
-<span class="sourceLineNo">615</span> * Eviction method.<a name="line.615"></a>
-<span class="sourceLineNo">616</span> */<a name="line.616"></a>
-<span class="sourceLineNo">617</span> void evict() {<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span> // Ensure only one eviction at a time<a name="line.619"></a>
-<span class="sourceLineNo">620</span> if(!evictionLock.tryLock()) return;<a name="line.620"></a>
+<span class="sourceLineNo">614</span> if (LOG.isTraceEnabled()) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span> LOG.trace("Block cache LRU eviction started; Attempting to free " +<a name="line.615"></a>
+<span class="sourceLineNo">616</span> StringUtils.byteDesc(bytesToFree) + " of total=" +<a name="line.616"></a>
+<span class="sourceLineNo">617</span> StringUtils.byteDesc(currentSize));<a name="line.617"></a>
+<span class="sourceLineNo">618</span> }<a name="line.618"></a>
+<span class="sourceLineNo">619</span><a name="line.619"></a>
+<span class="sourceLineNo">620</span> if (bytesToFree <= 0) return;<a name="line.620"></a>
<span class="sourceLineNo">621</span><a name="line.621"></a>
-<span class="sourceLineNo">622</span> try {<a name="line.622"></a>
-<span class="sourceLineNo">623</span> evictionInProgress = true;<a name="line.623"></a>
-<span class="sourceLineNo">624</span> long currentSize = this.size.get();<a name="line.624"></a>
-<span class="sourceLineNo">625</span> long bytesToFree = currentSize - minSize();<a name="line.625"></a>
+<span class="sourceLineNo">622</span> // Instantiate priority buckets<a name="line.622"></a>
+<span class="sourceLineNo">623</span> BlockBucket bucketSingle = new BlockBucket("single", bytesToFree, blockSize, singleSize());<a name="line.623"></a>
+<span class="sourceLineNo">624</span> BlockBucket bucketMulti = new BlockBucket("multi", bytesToFree, blockSize, multiSize());<a name="line.624"></a>
+<span class="sourceLineNo">625</span> BlockBucket bucketMemory = new BlockBucket("memory", bytesToFree, blockSize, memorySize());<a name="line.625"></a>
<span class="sourceLineNo">626</span><a name="line.626"></a>
-<span class="sourceLineNo">627</span> if (LOG.isTraceEnabled()) {<a name="line.627"></a>
-<span class="sourceLineNo">628</span> LOG.trace("Block cache LRU eviction started; Attempting to free " +<a name="line.628"></a>
-<span class="sourceLineNo">629</span> StringUtils.byteDesc(bytesToFree) + " of total=" +<a name="line.629"></a>
-<span class="sourceLineNo">630</span> StringUtils.byteDesc(currentSize));<a name="line.630"></a>
-<span class="sourceLineNo">631</span> }<a name="line.631"></a>
-<span class="sourceLineNo">632</span><a name="line.632"></a>
-<span class="sourceLineNo">633</span> if (bytesToFree <= 0) return;<a name="line.633"></a>
-<span class="sourceLineNo">634</span><a name="line.634"></a>
-<span class="sourceLineNo">635</span> // Instantiate priority buckets<a name="line.635"></a>
-<span class="sourceLineNo">636</span> BlockBucket bucketSingle = new BlockBucket("single", bytesToFree, blockSize, singleSize());<a name="line.636"></a>
-<span class="sourceLineNo">637</span> BlockBucket bucketMulti = new BlockBucket("multi", bytesToFree, blockSize, multiSize());<a name="line.637"></a>
-<span class="sourceLineNo">638</span> BlockBucket bucketMemory = new BlockBucket("memory", bytesToFree, blockSize, memorySize());<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span> // Scan entire map putting into appropriate buckets<a name="line.640"></a>
-<span class="sourceLineNo">641</span> for (LruCachedBlock cachedBlock : map.values()) {<a name="line.641"></a>
-<span class="sourceLineNo">642</span> switch (cachedBlock.getPriority()) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span> case SINGLE: {<a name="line.643"></a>
-<span class="sourceLineNo">644</span> bucketSingle.add(cachedBlock);<a name="line.644"></a>
-<span class="sourceLineNo">645</span> break;<a name="line.645"></a>
-<span class="sourceLineNo">646</span> }<a name="line.646"></a>
-<span class="sourceLineNo">647</span> case MULTI: {<a name="line.647"></a>
-<span class="sourceLineNo">648</span> bucketMulti.add(cachedBlock);<a name="line.648"></a>
-<span class="sourceLineNo">649</span> break;<a name="line.649"></a>
-<span class="sourceLineNo">650</span> }<a name="line.650"></a>
-<span class="sourceLineNo">651</span> case MEMORY: {<a name="line.651"></a>
-<span class="sourceLineNo">652</span> bucketMemory.add(cachedBlock);<a name="line.652"></a>
-<span class="sourceLineNo">653</span> break;<a name="line.653"></a>
-<span class="sourceLineNo">654</span> }<a name="line.654"></a>
-<span class="sourceLineNo">655</span> }<a name="line.655"></a>
-<span class="sourceLineNo">656</span> }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span> long bytesFreed = 0;<a name="line.658"></a>
-<span class="sourceLineNo">659</span> if (forceInMemory || memoryFactor > 0.999f) {<a name="line.659"></a>
-<span class="sourceLineNo">660</span> long s = bucketSingle.totalSize();<a name="line.660"></a>
-<span class="sourceLineNo">661</span> long m = bucketMulti.totalSize();<a name="line.661"></a>
-<span class="sourceLineNo">662</span> if (bytesToFree > (s + m)) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span> // this means we need to evict blocks in memory bucket to make room,<a name="line.663"></a>
-<span class="sourceLineNo">664</span> // so the single and multi buckets will be emptied<a name="line.664"></a>
-<span class="sourceLineNo">665</span> bytesFreed = bucketSingle.free(s);<a name="line.665"></a>
-<span class="sourceLineNo">666</span> bytesFreed += bucketMulti.free(m);<a name="line.666"></a>
-<span class="sourceLineNo">667</span> if (LOG.isTraceEnabled()) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.668"></a>
-<span class="sourceLineNo">669</span> " from single and multi buckets");<a name="line.669"></a>
-<span class="sourceLineNo">670</span> }<a name="line.670"></a>
-<span class="sourceLineNo">671</span> bytesFreed += bucketMemory.free(bytesToFree - bytesFreed);<a name="line.671"></a>
-<span class="sourceLineNo">672</span> if (LOG.isTraceEnabled()) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.673"></a>
-<span class="sourceLineNo">674</span> " total from all three buckets ");<a name="line.674"></a>
-<span class="sourceLineNo">675</span> }<a name="line.675"></a>
-<span class="sourceLineNo">676</span> } else {<a name="line.676"></a>
-<span class="sourceLineNo">677</span> // this means no need to evict block in memory bucket,<a name="line.677"></a>
-<span class="sourceLineNo">678</span> // and we try best to make the ratio between single-bucket and<a name="line.678"></a>
-<span class="sourceLineNo">679</span> // multi-bucket is 1:2<a name="line.679"></a>
-<span class="sourceLineNo">680</span> long bytesRemain = s + m - bytesToFree;<a name="line.680"></a>
-<span class="sourceLineNo">681</span> if (3 * s <= bytesRemain) {<a name="line.681"></a>
-<span class="sourceLineNo">682</span> // single-bucket is small enough that no eviction happens for it<a name="line.682"></a>
-<span class="sourceLineNo">683</span> // hence all eviction goes from multi-bucket<a name="line.683"></a>
-<span class="sourceLineNo">684</span> bytesFreed = bucketMulti.free(bytesToFree);<a name="line.684"></a>
-<span class="sourceLineNo">685</span> } else if (3 * m <= 2 * bytesRemain) {<a name="line.685"></a>
-<span class="sourceLineNo">686</span> // multi-bucket is small enough that no eviction happens for it<a name="line.686"></a>
-<span class="sourceLineNo">687</span> // hence all eviction goes from single-bucket<a name="line.687"></a>
-<span class="sourceLineNo">688</span> bytesFreed = bucketSingle.free(bytesToFree);<a name="line.688"></a>
-<span class="sourceLineNo">689</span> } else {<a name="line.689"></a>
-<span class="sourceLineNo">690</span> // both buckets need to evict some blocks<a name="line.690"></a>
-<span class="sourceLineNo">691</span> bytesFreed = bucketSingle.free(s - bytesRemain / 3);<a name="line.691"></a>
-<span class="sourceLineNo">692</span> if (bytesFreed < bytesToFree) {<a name="line.692"></a>
-<span class="sourceLineNo">693</span> bytesFreed += bucketMulti.free(bytesToFree - bytesFreed);<a name="line.693"></a>
-<span class="sourceLineNo">694</span> }<a name="line.694"></a>
-<span class="sourceLineNo">695</span> }<a name="line.695"></a>
-<span class="sourceLineNo">696</span> }<a name="line.696"></a>
-<span class="sourceLineNo">697</span> } else {<a name="line.697"></a>
-<span class="sourceLineNo">698</span> PriorityQueue<BlockBucket> bucketQueue = new PriorityQueue<>(3);<a name="line.698"></a>
-<span class="sourceLineNo">699</span><a name="line.699"></a>
-<span class="sourceLineNo">700</span> bucketQueue.add(bucketSingle);<a name="line.700"></a>
-<span class="sourceLineNo">701</span> bucketQueue.add(bucketMulti);<a name="line.701"></a>
-<span class="sourceLineNo">702</span> bucketQueue.add(bucketMemory);<a name="line.702"></a>
-<span class="sourceLineNo">703</span><a name="line.703"></a>
-<span class="sourceLineNo">704</span> int remainingBuckets = 3;<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span> BlockBucket bucket;<a name="line.706"></a>
-<span class="sourceLineNo">707</span> while ((bucket = bucketQueue.poll()) != null) {<a name="line.707"></a>
-<span class="sourceLineNo">708</span> long overflow = bucket.overflow();<a name="line.708"></a>
-<span class="sourceLineNo">709</span> if (overflow > 0) {<a name="line.709"></a>
-<span class="sourceLineNo">710</span> long bucketBytesToFree =<a name="line.710"></a>
-<span class="sourceLineNo">711</span> Math.min(overflow, (bytesToFree - bytesFreed) / remainingBuckets);<a name="line.711"></a>
-<span class="sourceLineNo">712</span> bytesFreed += bucket.free(bucketBytesToFree);<a name="line.712"></a>
-<span class="sourceLineNo">713</span> }<a name="line.713"></a>
-<span class="sourceLineNo">714</span> remainingBuckets--;<a name="line.714"></a>
-<span class="sourceLineNo">715</span> }<a name="line.715"></a>
-<span class="sourceLineNo">716</span> }<a name="line.716"></a>
-<span class="sourceLineNo">717</span> if (LOG.isTraceEnabled()) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span> long single = bucketSingle.totalSize();<a name="line.718"></a>
-<span class="sourceLineNo">719</span> long multi = bucketMulti.totalSize();<a name="line.719"></a>
-<span class="sourceLineNo">720</span> long memory = bucketMemory.totalSize();<a name="line.720"></a>
-<span class="sourceLineNo">721</span> LOG.trace("Block cache LRU eviction completed; " +<a name="line.721"></a>
-<span class="sourceLineNo">722</span> "freed=" + StringUtils.byteDesc(bytesFreed) + ", " +<a name="line.722"></a>
-<span class="sourceLineNo">723</span> "total=" + StringUtils.byteDesc(this.size.get()) + ", " +<a name="line.723"></a>
-<span class="sourceLineNo">724</span> "single=" + StringUtils.byteDesc(single) + ", " +<a name="line.724"></a>
-<span class="sourceLineNo">725</span> "multi=" + StringUtils.byteDesc(multi) + ", " +<a name="line.725"></a>
-<span class="sourceLineNo">726</span> "memory=" + StringUtils.byteDesc(memory));<a name="line.726"></a>
-<span class="sourceLineNo">727</span> }<a name="line.727"></a>
-<span class="sourceLineNo">728</span> } finally {<a name="line.728"></a>
-<span class="sourceLineNo">729</span> stats.evict();<a name="line.729"></a>
-<span class="sourceLineNo">730</span> evictionInProgress = false;<a name="line.730"></a>
-<span class="sourceLineNo">731</span> evictionLock.unlock();<a name="line.731"></a>
-<span class="sourceLineNo">732</span> }<a name="line.732"></a>
-<span class="sourceLineNo">733</span> }<a name="line.733"></a>
-<span class="sourceLineNo">734</span><a name="line.734"></a>
-<span class="sourceLineNo">735</span> @Override<a name="line.735"></a>
-<span class="sourceLineNo">736</span> public String toString() {<a name="line.736"></a>
-<span class="sourceLineNo">737</span> return MoreObjects.toStringHelper(this)<a name="line.737"></a>
-<span class="sourceLineNo">738</span> .add("blockCount", getBlockCount())<a name="line.738"></a>
-<span class="sourceLineNo">739</span> .add("currentSize", StringUtils.byteDesc(getCurrentSize()))<a name="line.739"></a>
-<span class="sourceLineNo">740</span> .add("freeSize", StringUtils.byteDesc(getFreeSize()))<a name="line.740"></a>
-<span class="sourceLineNo">741</span> .add("maxSize", StringUtils.byteDesc(getMaxSize()))<a name="line.741"></a>
-<span class="sourceLineNo">742</span> .add("heapSize", StringUtils.byteDesc(heapSize()))<a name="line.742"></a>
-<span class="sourceLineNo">743</span> .add("minSize", StringUtils.byteDesc(minSize()))<a name="line.743"></a>
-<span class="sourceLineNo">744</span> .add("minFactor", minFactor)<a name="line.744"></a>
-<span class="sourceLineNo">745</span> .add("multiSize", StringUtils.byteDesc(multiSize()))<a name="line.745"></a>
-<span class="sourceLineNo">746</span> .add("multiFactor", multiFactor)<a name="line.746"></a>
-<span class="sourceLineNo">747</span> .add("singleSize", StringUtils.byteDesc(singleSize()))<a name="line.747"></a>
-<span class="sourceLineNo">748</span> .add("singleFactor", singleFactor)<a name="line.748"></a>
-<span class="sourceLineNo">749</span> .toString();<a name="line.749"></a>
-<span class="sourceLineNo">750</span> }<a name="line.750"></a>
+<span class="sourceLineNo">627</span> // Scan entire map putting into appropriate buckets<a name="line.627"></a>
+<span class="sourceLineNo">628</span> for (LruCachedBlock cachedBlock : map.values()) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span> switch (cachedBlock.getPriority()) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span> case SINGLE: {<a name="line.630"></a>
+<span class="sourceLineNo">631</span> bucketSingle.add(cachedBlock);<a name="line.631"></a>
+<span class="sourceLineNo">632</span> break;<a name="line.632"></a>
+<span class="sourceLineNo">633</span> }<a name="line.633"></a>
+<span class="sourceLineNo">634</span> case MULTI: {<a name="line.634"></a>
+<span class="sourceLineNo">635</span> bucketMulti.add(cachedBlock);<a name="line.635"></a>
+<span class="sourceLineNo">636</span> break;<a name="line.636"></a>
+<span class="sourceLineNo">637</span> }<a name="line.637"></a>
+<span class="sourceLineNo">638</span> case MEMORY: {<a name="line.638"></a>
+<span class="sourceLineNo">639</span> bucketMemory.add(cachedBlock);<a name="line.639"></a>
+<span class="sourceLineNo">640</span> break;<a name="line.640"></a>
+<span class="sourceLineNo">641</span> }<a name="line.641"></a>
+<span class="sourceLineNo">642</span> }<a name="line.642"></a>
+<span class="sourceLineNo">643</span> }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span> long bytesFreed = 0;<a name="line.645"></a>
+<span class="sourceLineNo">646</span> if (forceInMemory || memoryFactor > 0.999f) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span> long s = bucketSingle.totalSize();<a name="line.647"></a>
+<span class="sourceLineNo">648</span> long m = bucketMulti.totalSize();<a name="line.648"></a>
+<span class="sourceLineNo">649</span> if (bytesToFree > (s + m)) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span> // this means we need to evict blocks in memory bucket to make room,<a name="line.650"></a>
+<span class="sourceLineNo">651</span> // so the single and multi buckets will be emptied<a name="line.651"></a>
+<span class="sourceLineNo">652</span> bytesFreed = bucketSingle.free(s);<a name="line.652"></a>
+<span class="sourceLineNo">653</span> bytesFreed += bucketMulti.free(m);<a name="line.653"></a>
+<span class="sourceLineNo">654</span> if (LOG.isTraceEnabled()) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.655"></a>
+<span class="sourceLineNo">656</span> " from single and multi buckets");<a name="line.656"></a>
+<span class="sourceLineNo">657</span> }<a name="line.657"></a>
+<span class="sourceLineNo">658</span> bytesFreed += bucketMemory.free(bytesToFree - bytesFreed);<a name="line.658"></a>
+<span class="sourceLineNo">659</span> if (LOG.isTraceEnabled()) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.660"></a>
+<span class="sourceLineNo">661</span> " total from all three buckets ");<a name="line.661"></a>
+<span class="sourceLineNo">662</span> }<a name="line.662"></a>
+<span class="sourceLineNo">663</span> } else {<a name="line.663"></a>
+<span class="sourceLineNo">664</span> // this means no need to evict block in memory bucket,<a name="line.664"></a>
+<span class="sourceLineNo">665</span> // and we try best to make the ratio between single-bucket and<a name="line.665"></a>
+<span class="sourceLineNo">666</span> // multi-bucket is 1:2<a name="line.666"></a>
+<span class="sourceLineNo">667</span> long bytesRemain = s + m - bytesToFree;<a name="line.667"></a>
+<span class="sourceLineNo">668</span> if (3 * s <= bytesRemain) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span> // single-bucket is small enough that no eviction happens for it<a name="line.669"></a>
+<span class="sourceLineNo">670</span> // hence all eviction goes from multi-bucket<a name="line.670"></a>
+<span class="sourceLineNo">671</span> bytesFreed = bucketMulti.free(bytesToFree);<a name="line.671"></a>
+<span class="sourceLineNo">672</span> } else if (3 * m <= 2 * bytesRemain) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span> // multi-bucket is small enough that no eviction happens for it<a name="line.673"></a>
+<span class="sourceLineNo">674</span> // hence all eviction goes from single-bucket<a name="line.674"></a>
+<span class="sourceLineNo">675</span> bytesFreed = bucketSingle.free(bytesToFree);<a name="line.675"></a>
+<span class="sourceLineNo">676</span> } else {<a name="line.676"></a>
+<span class="sourceLineNo">677</span> // both buckets need to evict some blocks<a name="line.677"></a>
+<span class="sourceLineNo">678</span> bytesFreed = bucketSingle.free(s - bytesRemain / 3);<a name="line.678"></a>
+<span class="sourceLineNo">679</span> if (bytesFreed < bytesToFree) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span> bytesFreed += bucketMulti.free(bytesToFree - bytesFreed);<a name="line.680"></a>
+<span class="sourceLineNo">681</span> }<a name="line.681"></a>
+<span class="sourceLineNo">682</span> }<a name="line.682"></a>
+<span class="sourceLineNo">683</span> }<a name="line.683"></a>
+<span class="sourceLineNo">684</span> } else {<a name="line.684"></a>
+<span class="sourceLineNo">685</span> PriorityQueue<BlockBucket> bucketQueue = new PriorityQueue<>(3);<a name="line.685"></a>
+<span class="sourceLineNo">686</span><a name="line.686"></a>
+<span class="sourceLineNo">687</span> bucketQueue.add(bucketSingle);<a name="line.687"></a>
+<span class="sourceLineNo">688</span> bucketQueue.add(bucketMulti);<a name="line.688"></a>
+<span class="sourceLineNo">689</span> bucketQueue.add(bucketMemory);<a name="line.689"></a>
+<span class="sourceLineNo">690</span><a name="line.690"></a>
+<span class="sourceLineNo">691</span> int remainingBuckets = 3;<a name="line.691"></a>
+<span class="sourceLineNo">692</span><a name="line.692"></a>
+<span class="sourceLineNo">693</span> BlockBucket bucket;<a name="line.693"></a>
+<span class="sourceLineNo">694</span> while ((bucket = bucketQueue.poll()) != null) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span> long overflow = bucket.overflow();<a name="line.695"></a>
+<span class="sourceLineNo">696</span> if (overflow > 0) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span> long bucketBytesToFree =<a name="line.697"></a>
+<span class="sourceLineNo">698</span> Math.min(overflow, (bytesToFree - bytesFreed) / remainingBuckets);<a name="line.698"></a>
+<span class="sourceLineNo">699</span> bytesFreed += bucket.free(bucketBytesToFree);<a name="line.699"></a>
+<span class="sourceLineNo">700</span> }<a name="line.700"></a>
+<span class="sourceLineNo">701</span> remainingBuckets--;<a name="line.701"></a>
+<span class="sourceLineNo">702</span> }<a name="line.702"></a>
+<span class="sourceLineNo">703</span> }<a name="line.703"></a>
+<span class="sourceLineNo">704</span> if (LOG.isTraceEnabled()) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span> long single = bucketSingle.totalSize();<a name="line.705"></a>
+<span class="sourceLineNo">706</span> long multi = bucketMulti.totalSize();<a name="line.706"></a>
+<span class="sourceLineNo">707</span> long memory = bucketMemory.totalSize();<a name="line.707"></a>
+<span class="sourceLineNo">708</span> LOG.trace("Block cache LRU eviction completed; " +<a name="line.708"></a>
+<span class="sourceLineNo">709</span> "freed=" + StringUtils.byteDesc(bytesFreed) + ", " +<a name="line.709"></a>
+<span class="sourceLineNo">710</span> "total=" + StringUtils.byteDesc(this.size.get()) + ", " +<a name="line.710"></a>
+<span class="sourceLineNo">711</span> "single=" + StringUtils.byteDesc(single) + ", " +<a name="line.711"></a>
+<span class="sourceLineNo">712</span> "multi=" + StringUtils.byteDesc(multi) + ", " +<a name="line.712"></a>
+<span class="sourceLineNo">713</span> "memory=" + StringUtils.byteDesc(memory));<a name="line.713"></a>
+<span class="sourceLineNo">714</span> }<a name="line.714"></a>
+<span class="sourceLineNo">715</span> } finally {<a name="line.715"></a>
+<span class="sourceLineNo">716</span> stats.evict();<a name="line.716"></a>
+<span class="sourceLineNo">717</span> evictionInProgress = false;<a name="line.717"></a>
+<span class="sourceLineNo">718</span> evictionLock.unlock();<a name="line.718"></a>
+<span class="sourceLineNo">719</span> }<a name="line.719"></a>
+<span class="sourceLineNo">720</span> }<a name="line.720"></a>
+<span class="sourceLineNo">721</span><a name="line.721"></a>
+<span class="sourceLineNo">722</span> @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span> public String toString() {<a name="line.723"></a>
+<span class="sourceLineNo">724</span> return MoreObjects.toStringHelper(this)<a name="line.724"></a>
+<span class="sourceLineNo">725</span> .add("blockCount", getBlockCount())<a name="line.725"></a>
+<span class="sourceLineNo">726</span> .add("currentSize", StringUtils.byteDesc(getCurrentSize()))<a name="line.726"></a>
+<span class="sourceLineNo">727</span> .add("freeSize", StringUtils.byteDesc(getFreeSize()))<a name="line.727"></a>
+<span class="sourceLineNo">728</span> .add("maxSize", StringUtils.byteDesc(getMaxSize()))<a name="line.728"></a>
+<span class="sourceLineNo">729</span> .add("heapSize", StringUtils.byteDesc(heapSize()))<a name="line.729"></a>
+<span class="sourceLineNo">730</span> .add("minSize", StringUtils.byteDesc(minSize()))<a name="line.730"></a>
+<span class="sourceLineNo">731</span> .add("minFactor", minFactor)<a name="line.731"></a>
+<span class="sourceLineNo">732</span> .add("multiSize", StringUtils.byteDesc(multiSize()))<a name="line.732"></a>
+<span class="sourceLineNo">733</span> .add("multiFactor", multiFactor)<a name="line.733"></a>
+<span class="sourceLineNo">734</span> .add("singleSize", StringUtils.byteDesc(singleSize()))<a name="line.734"></a>
+<span class="sourceLineNo">735</span> .add("singleFactor", singleFactor)<a name="line.735"></a>
+<span class="sourceLineNo">736</span> .toString();<a name="line.736"></a>
+<span class="sourceLineNo">737</span> }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span> /**<a name="line.739"></a>
+<span class="sourceLineNo">740</span> * Used to group blocks into priority buckets. There will be a BlockBucket<a name="line.740"></a>
+<span class="sourceLineNo">741</span> * for each priority (single, multi, memory). Once bucketed, the eviction<a name="line.741"></a>
+<span class="sourceLineNo">742</span> * algorithm takes the appropriate number of elements out of each according<a name="line.742"></a>
+<span class="sourceLineNo">743</span> * to configuration parameters and their relatives sizes.<a name="line.743"></a>
+<span class="sourceLineNo">744</span> */<a name="line.744"></a>
+<span class="sourceLineNo">745</span> private class BlockBucket implements Comparable<BlockBucket> {<a name="line.745"></a>
+<span class="sourceLineNo">746</span><a name="line.746"></a>
+<span class="sourceLineNo">747</span> private final String name;<a name="line.747"></a>
+<span class="sourceLineNo">748</span> private LruCachedBlockQueue queue;<a name="line.748"></a>
+<span class="sourceLineNo">749</span> private long totalSize = 0;<a name="line.749"></a>
+<span class="sourceLineNo">750</span> private long bucketSize;<a name="line.750"></a>
<span class="sourceLineNo">751</span><a name="line.751"></a>
-<span class="sourceLineNo">752</span> /**<a name="line.752"></a>
-<span class="sourceLineNo">753</span> * Used to group blocks into priority buckets. There will be a BlockBucket<a name="line.753"></a>
-<span class="sourceLineNo">754</span> * for each priority (single, multi, memory). Once bucketed, the eviction<a name="line.754"></a>
-<span class="sourceLineNo">755</span> * algorithm takes the appropriate number of elements out of each according<a name="line.755"></a>
-<span class="sourceLineNo">756</span> * to configuration parameters and their relatives sizes.<a name="line.756"></a>
-<span class="sourceLineNo">757</span> */<a name="line.757"></a>
-<span class="sourceLineNo">758</span> private class BlockBucket implements Comparable<BlockBucket> {<a name="line.758"></a>
-<span class="sourceLineNo">759</span><a name="line.759"></a>
-<span class="sourceLineNo">760</span> private final String name;<a name="line.760"></a>
-<span class="sourceLineNo">761</span> private LruCachedBlockQueue queue;<a name="line.761"></a>
-<span class="sourceLineNo">762</span> private long totalSize = 0;<a name="line.762"></a>
-<span class="sourceLineNo">763</span> private long bucketSize;<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span> public BlockBucket(String name, long bytesToFree, long blockSize, long bucketSize) {<a name="line.765"></a>
-<span class="sourceLineNo">766</span> this.name = name;<a name="line.766"></a>
-<span class="sourceLineNo">767</span> this.bucketSize = bucketSize;<a name="line.767"></a>
-<span class="sourceLineNo">768</span> queue = new LruCachedBlockQueue(bytesToFree, blockSize);<a name="line.768"></a>
-<span class="sourceLineNo">769</span> totalSize = 0;<a name="line.769"></a>
-<span class="sourceLineNo">770</span> }<a name="line.770"></a>
-<span class="sourceLineNo">771</span><a name="line.771"></a>
-<span class="sourceLineNo">772</span> public void add(LruCachedBlock block) {<a name="line.772"></a>
-<span class="sourceLineNo">773</span> totalSize += block.heapSize();<a name="line.773"></a>
-<span class="sourceLineNo">774</span> queue.add(block);<a name="line.774"></a>
-<span class="sourceLineNo">775</span> }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span> public long free(long toFree) {<a name="line.777"></a>
-<span class="sourceLineNo">778</span> if (LOG.isTraceEnabled()) {<a name="line.778"></a>
-<span class="sourceLineNo">779</span> LOG.trace("freeing " + StringUtils.byteDesc(toFree) + " from " + this);<a name="line.779"></a>
-<span class="sourceLineNo">780</span> }<a name="line.780"></a>
-<span class="sourceLineNo">781</span> LruCachedBlock cb;<a name="line.781"></a>
-<span class="sourceLineNo">782</span> long freedBytes = 0;<a name="line.782"></a>
-<span class="sourceLineNo">783</span> while ((cb = queue.pollLast()) != null) {<a name="line.783"></a>
-<span class="sourceLineNo">784</span> freedBytes += evictBlock(cb, true);<a name="line.784"></a>
-<span class="sourceLineNo">785</span> if (freedBytes >= toFree) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span> return freedBytes;<a name="line.786"></a>
-<span class="sourceLineNo">787</span> }<a name="line.787"></a>
-<span class="sourceLineNo">788</span> }<a name="line.788"></a>
-<span class="sourceLineNo">789</span> if (LOG.isTraceEnabled()) {<a name="line.789"></a>
-<span class="sourceLineNo">790</span> LOG.trace("freed " + StringUtils.byteDesc(freedBytes) + " from " + this);<a name="line.790"></a>
-<span class="sourceLineNo">791</span> }<a name="line.791"></a>
-<span class="sourceLineNo">792</span> return freedBytes;<a name="line.792"></a>
+<span class="sourceLineNo">752</span> public BlockBucket(String name, long bytesToFree, long blockSize, long bucketSize) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span> this.name = name;<a name="line.753"></a>
+<span class="sourceLineNo">754</span> this.bucketSize = bucketSize;<a name="line.754"></a>
+<span class="sourceLineNo">755</span> queue = new LruCachedBlockQueue(bytesToFree, blockSize);<a name="line.755"></a>
+<span class="sourceLineNo">756</span> totalSize = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span> }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span> public void add(LruCachedBlock block) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span> totalSize += block.heapSize();<a name="line.760"></a>
+<span class="sourceLineNo">761</span> queue.add(block);<a name="line.761"></a>
+<span class="sourceLineNo">762</span> }<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span> public long free(long toFree) {<a name="line.764"></a>
+<span class="sourceLineNo">765</span> if (LOG.isTraceEnabled()) {<a name="line.765"></a>
+<span class="sourceLineNo">766</span> LOG.trace("freeing " + StringUtils.byteDesc(toFree) + " from " + this);<a name="line.766"></a>
+<span class="sourceLineNo">767</span> }<a name="line.767"></a>
+<span class="sourceLineNo">768</span> LruCachedBlock cb;<a name="line.768"></a>
+<span class="sourceLineNo">769</span> long freedBytes = 0;<a name="line.769"></a>
+<span class="sourceLineNo">770</span> while ((cb = queue.pollLast()) != null) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span> freedBytes += evictBlock(cb, true);<a name="line.771"></a>
+<span class="sourceLineNo">772</span> if (freedBytes >= toFree) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span> return freedBytes;<a name="line.773"></a>
+<span class="sourceLineNo">774</span> }<a name="line.774"></a>
+<span class="sourceLineNo">775</span> }<a name="line.775"></a>
+<span class="sourceLineNo">776</span> if (LOG.isTraceEnabled()) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span> LOG.trace("freed " + StringUtils.byteDesc(freedBytes) + " from " + this);<a name="line.777"></a>
+<span class="sourceLineNo">778</span> }<a name="line.778"></a>
+<span class="sourceLineNo">779</span> return freedBytes;<a name="line.779"></a>
+<span class="sourceLineNo">780</span> }<a name="line.780"></a>
+<span class="sourceLineNo">781</span><a name="line.781"></a>
+<span class="sourceLineNo">782</span> public long overflow() {<a name="line.782"></a>
+<span class="sourceLineNo">783</span> return totalSize - bucketSize;<a name="line.783"></a>
+<span class="sourceLineNo">784</span> }<a name="line.784"></a>
+<span class="sourceLineNo">785</span><a name="line.785"></a>
+<span class="sourceLineNo">786</span> public long totalSize() {<a name="line.786"></a>
+<span class="sourceLineNo">787</span> return totalSize;<a name="line.787"></a>
+<span class="sourceLineNo">788</span> }<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span> @Override<a name="line.790"></a>
+<span class="sourceLineNo">791</span> public int compareTo(BlockBucket that) {<a name="line.791"></a>
+<span class="sourceLineNo">792</span> return Long.compare(this.overflow(), that.overflow());<a name="line.792"></a>
<span class="sourceLineNo">793</span> }<a name="line.793"></a>
<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span> public long overflow() {<a name="line.795"></a>
-<span class="sourceLineNo">796</span> return totalSize - bucketSize;<a name="line.796"></a>
-<span class="sourceLineNo">797</span> }<a name="line.797"></a>
-<span class="sourceLineNo">798</span><a name="line.798"></a>
-<span class="sourceLineNo">799</span> public long totalSize() {<a name="line.799"></a>
-<span class="sourceLineNo">800</span> return totalSize;<a name="line.800"></a>
+<span class="sourceLineNo">795</span> @Override<a name="line.795"></a>
+<span class="sourceLineNo">796</span> public boolean equals(Object that) {<a name="line.796"></a>
+<span class="sourceLineNo">797</span> if (that == null || !(that instanceof BlockBucket)) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span> return false;<a name="line.798"></a>
+<span class="sourceLineNo">799</span> }<a name="line.799"></a>
+<span class="sourceLineNo">800</span> return compareTo((BlockBucket)that) == 0;<a name="line.800"></a>
<span class="sourceLineNo">801</span> }<a name="line.801"></a>
<span class="sourceLineNo">802</span><a name="line.802"></a>
<span class="sourceLineNo">803</span> @Override<a name="line.803"></a>
-<span class="sourceLineNo">804</span> public int compareTo(BlockBucket that) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span> return Long.compare(this.overflow(), that.overflow());<a name="line.805"></a>
+<span class="sourceLineNo">804</span> public int hashCode() {<a name="line.804"></a>
+<span class="sourceLineNo">805</span> return Objects.hashCode(name, bucketSize, queue, totalSize);<a name="line.805"></a>
<span class="sourceLineNo">806</span> }<a name="line.806"></a>
<span class="sourceLineNo">807</span><a name="line.807"></a>
<span class="sourceLineNo">808</span> @Override<a name="line.808"></a>
-<span class="sourceLineNo">809</span> public boolean equals(Object that) {<a name="line.809"></a>
-<span class="sourceLineNo">810</span> if (that == null || !(that instanceof BlockBucket)) {<a name="line.810"></a>
-<span class="sourceLineNo">811</span> return false;<a name="line.811"></a>
-<span class="sourceLineNo">812</span> }<a name="line.812"></a>
-<span class="sourceLineNo">813</span> return compareTo((BlockBucket)that) == 0;<a name="line.813"></a>
-<span class="sourceLineNo">814</span> }<a name="line.814"></a>
-<span class="sourceLineNo">815</span><a name="line.815"></a>
-<span class="sourceLineNo">816</span> @Override<a name="line.816"></a>
-<span class="sourceLineNo">817</span> public int hashCode() {<a name="line.817"></a>
-<span class="sourceLineNo">818</span> return Objects.hashCode(name, bucketSize, queue, totalSize);<a name="line.818"></a>
-<span class="sourceLineNo">819</span> }<a name="line.819"></a>
-<span class="sourceLineNo">820</span><a name="line.820"></a>
-<span class="sourceLineNo">821</span> @Override<a name="line.821"></a>
-<span class="sourceLineNo">822</span> public String toString() {<a name="line.822"></a>
-<span class="sourceLineNo">823</span> return MoreObjects.toStringHelper(this)<a name="line.823"></a>
-<span class="sourceLineNo">824</span> .add("name", name)<a name="line.824"></a>
-<span class="sourceLineNo">825</span> .add("totalSize", StringUtils.byteDesc(totalSize))<a name="line.825"></a>
-<span class="sourceLineNo">826</span> .add("bucketSize", StringUtils.byteDesc(bucketSize))<a name="line.826"></a>
-<span class="sourceLineNo">827</span> .toString();<a name="line.827"></a>
-<span class="sourceLineNo">828</span> }<a name="line.828"></a>
-<span class="sourceLineNo">829</span> }<a name="line.829"></a>
-<span class="sourceLineNo">830</span><a name="line.830"></a>
-<span class="sourceLineNo">831</span> /**<a name="line.831"></a>
-<span class="sourceLineNo">832</span> * Get the maximum size of this cache.<a name="line.832"></a>
-<span class="sourceLineNo">833</span> *<a name="line.833"></a>
-<span class="sourceLineNo">834</span> * @return max size in bytes<a name="line.834"></a>
-<span class="sourceLineNo">835</span> */<a name="line.835"></a>
-<span class="sourceLineNo">836</span><a name="line.836"></a>
-<span class="sourceLineNo">837</span> @Override<a name="line.837"></a>
-<span class="sourceLineNo">838</span> public long getMaxSize() {<a name="line.838"></a>
-<span class="sourceLineNo">839</span> return this.maxSize;<a name="line.839"></a>
-<span class="sourceLineNo">840</span> }<a name="line.840"></a>
-<span class="sourceLineNo">841</span><a name="line.841"></a>
-<span class="sourceLineNo">842</span> @Override<a name="line.842"></a>
-<span class="sourceLineNo">843</span> public long getCurrentSize() {<a name="line.843"></a>
-<span class="sourceLineNo">844</span> return this.size.get();<a name="line.844"></a>
-<span class="sourceLineNo">845</span> }<a name="line.845"></a>
-<span class="sourceLineNo">846</span><a name="line.846"></a>
-<span class="sourceLineNo">847</span> @Override<a name="line.847"></a>
-<span class="sourceLineNo">848</span> public long getCurrentDataSize() {<a name="line.848"></a>
-<span class="sourceLineNo">849</span> return this.dataBlockSize.sum();<a name="line.849"></a>
-<span class="sourceLineNo">850</span> }<a name="line.850"></a>
-<span class="sourceLineNo">851</span><a name="line.851"></a>
-<span class="sourceLineNo">852</span> @Override<a name="line.852"></a>
-<span class="sourceLineNo">853</span> public long getFreeSize() {<a name="line.853"></a>
-<span class="sourceLineNo">854</span> return getMaxSize() - getCurrentSize();<a name="line.854"></a>
-<span class="sourceLineNo">855</span> }<a name="line.855"></a>
-<span class="sourceLineNo">856</span><a name="line.856"></a>
-<span class="sourceLineNo">857</span> @Override<a name="line.857"></a>
-<span class="sourceLineNo">858</span> public long size() {<a name="line.858"></a>
-<span class="sourceLineNo">859</span> return getMaxSize();<a name="line.859"></a>
-<span class="sourceLineNo">860</span> }<a name="line.860"></a>
-<span class="sourceLineNo">861</span><a name="line.861"></a>
-<span class="sourceLineNo">862</span> @Override<a name="line.862"></a>
-<span class="sourceLineNo">863</span> public long getBlockCount() {<a name="line.863"></a>
-<span class="sourceLineNo">864</span> return this.elements.get();<a name="line.864"></a>
-<span class="sourceLineNo">865</span> }<a name="line.865"></a>
-<span class="sourceLineNo">866</span><a name="line.866"></a>
-<span class="sourceLineNo">867</span> @Override<a name="line.867"></a>
-<span class="sourceLineNo">868</span> public long getDataBlockCount() {<a name="line.868"></a>
-<span class="sourceLineNo">869</span> return this.dataBlockElements.sum();<a name="line.869"></a>
-<span class="sourceLineNo">870</span> }<a name="line.870"></a>
-<span class="sourceLineNo">871</span><a name="line.871"></a>
-<span class="sourceLineNo">872</span> EvictionThread getEvictionThread() {<a name="line.872"></a>
-<span class="sourceLineNo">873</span> return this.evictionThread;<a name="line.873"></a>
-<span class="sourceLineNo">874</span> }<a name="line.874"></a>
+<span class="sourceLineNo">809</span> public String toString() {<a name="line.809"></a>
+<span class="sourceLineNo">810</span> return MoreObjects.toStringHelper(this)<a name="line.810"></a>
+<span class="sourceLineNo">811</span> .add("name", name)<a name="line.811"></a>
+<span class="sourceLineNo">812</span> .add("totalSize", StringUtils.byteDesc(totalSize))<a name="line.812"></a>
+<span class="sourceLineNo">813</span> .add("bucketSize", StringUtils.byteDesc(bucketSize))<a name="line.813"></a>
+<span class="sourceLineNo">814</span> .toString();<a name="line.814"></a>
+<span class="sourceLineNo">815</span> }<a name="line.815"></a>
+<span class="sourceLineNo">816</span> }<a name="line.816"></a>
+<span class="sourceLineNo">817</span><a name="line.817"></a>
+<span class="sourceLineNo">818</span> /**<a name="line.818"></a>
+<span class="sourceLineNo">819</span> * Get the maximum size of this cache.<a name="line.819"></a>
+<span class="sourceLineNo">820</span> *<a name="line.820"></a>
+<span class="sourceLineNo">821</span> * @return max size in bytes<a name="line.821"></a>
+<span class="sourceLineNo">822</span> */<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span> @Override<a name="line.824"></a>
+<span class="sourceLineNo">825</span> public long getMaxSize() {<a name="line.825"></a>
+<span class="sourceLineNo">826</span> return this.maxSize;<a name="line.826"></a>
+<span class="sourceLineNo">827</span> }<a name="line.827"></a>
+<span class="sourceLineNo">828</span><a name="line.828"></a>
+<span class="sourceLineNo">829</span> @Override<a name="line.829"></a>
+<span class="sourceLineNo">830</span> public long getCurrentSize() {<a name="line.830"></a>
+<span class="sourceLineNo">831</span> return this.size.get();<a name="line.831"></a>
+<span class="sourceLineNo">832</span> }<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span> @Override<a name="line.834"></a>
+<span class="sourceLineNo">835</span> public long getCurrentDataSize() {<a name="line.835"></a>
+<span class="sourceLineNo">836</span> return this.dataBlockSize.sum();<a name="line.836"></a>
+<span class="sourceLineNo">837</span> }<a name="line.837"></a>
+<span class="sourceLineNo">838</span><a name="line.838"></a>
+<span class="sourceLineNo">839</span> @Override<a name="line.839"></a>
+<span class="sourceLineNo">840</span> public long getFreeSize() {<a name="line.840"></a>
+<span class="sourceLineNo">841</span> return getMaxSize() - getCurrentSize();<a name="line.841"></a>
+<span class="sourceLineNo">842</span> }<a name="line.842"></a>
+<span class="sourceLineNo">843</span><a name="line.843"></a>
+<span clas
<TRUNCATED>
[23/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html
index 432cba4..8851d0f 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
<hr>
<br>
<pre>@InterfaceAudience.Private
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.80">ReplicationSource</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.84">ReplicationSource</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceInterface</a></pre>
<div class="block">Class that handles the source of a replication stream.
@@ -369,55 +369,65 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
</td>
</tr>
<tr id="i9" class="rowColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getFileSize-org.apache.hadoop.fs.Path-">getFileSize</a></span>(org.apache.hadoop.fs.Path currentPath)</code> </td>
+</tr>
+<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationPeer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getPeer--">getPeer</a></span>()</code>
<div class="block">Get the replication peer instance.</div>
</td>
</tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getQueueId--">getQueueId</a></span>()</code>
<div class="block">Get the queue id that the source is replicating to</div>
</td>
</tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueStorage.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationQueueStorage</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getQueueStorage--">getQueueStorage</a></span>()</code> </td>
</tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationEndpoint</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getReplicationEndpoint--">getReplicationEndpoint</a></span>()</code> </td>
</tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getServer--">getServer</a></span>()</code> </td>
</tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getServerWALsBelongTo--">getServerWALsBelongTo</a></span>()</code>
<div class="block">The queue of WALs only belong to one region server.</div>
</td>
</tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getSourceManager--">getSourceManager</a></span>()</code> </td>
</tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getSourceMetrics--">getSourceMetrics</a></span>()</code> </td>
</tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getStats--">getStats</a></span>()</code>
<div class="block">Get a string representation of the current statistics
for this source</div>
</td>
</tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALFileLengthProvider.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">WALFileLengthProvider</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getWALFileLengthProvider--">getWALFileLengthProvider</a></span>()</code> </td>
</tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getWalGroupStatus--">getWalGroupStatus</a></span>()</code>
+<div class="block">get the stat of replication for each wal group.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#init-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceManager-org.apache.hadoop.hbase.replication.ReplicationQueueStorage-org.apache.hadoop.hbase.replication.ReplicationPeer-org.apache.hadoop.hbase.Server-java.lang.String-java.util.UUID-org.apache.hadoop.hbase.replication.regionserver.WALFileLengthProvider-org.apache.hadoop.hbase.replication.regionserver.MetricsSource-">init</a></span>(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.fs.FileSystem fs,
@@ -432,77 +442,77 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<div class="block">Instantiation method used by region servers</div>
</td>
</tr>
-<tr id="i20" class="altColor">
+<tr id="i22" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#initAndStartReplicationEndpoint-org.apache.hadoop.hbase.replication.ReplicationEndpoint-">initAndStartReplicationEndpoint</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationEndpoint</a> replicationEndpoint)</code> </td>
</tr>
-<tr id="i21" class="rowColor">
+<tr id="i23" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#initialize--">initialize</a></span>()</code> </td>
</tr>
-<tr id="i22" class="altColor">
+<tr id="i24" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#initializeWALEntryFilter-java.util.UUID-">initializeWALEntryFilter</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> peerClusterId)</code> </td>
</tr>
-<tr id="i23" class="rowColor">
+<tr id="i25" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#isSourceActive--">isSourceActive</a></span>()</code> </td>
</tr>
-<tr id="i24" class="altColor">
+<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#postShipEdits-java.util.List-int-">postShipEdits</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>> entries,
int batchSize)</code>
<div class="block">Call this after the shipper thread ship some entries to peer cluster.</div>
</td>
</tr>
-<tr id="i25" class="rowColor">
+<tr id="i27" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#removeWorker-org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceShipper-">removeWorker</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper</a> worker)</code> </td>
</tr>
-<tr id="i26" class="altColor">
+<tr id="i28" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#sleepForRetries-java.lang.String-int-">sleepForRetries</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg,
int sleepMultiplier)</code>
<div class="block">Do the sleeping logic</div>
</td>
</tr>
-<tr id="i27" class="rowColor">
+<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#startup--">startup</a></span>()</code>
<div class="block">Start the replication</div>
</td>
</tr>
-<tr id="i28" class="altColor">
+<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#terminate-java.lang.String-">terminate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason)</code>
<div class="block">End the replication</div>
</td>
</tr>
-<tr id="i29" class="rowColor">
+<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#terminate-java.lang.String-java.lang.Exception-">terminate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> cause)</code>
<div class="block">End the replication</div>
</td>
</tr>
-<tr id="i30" class="altColor">
+<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#terminate-java.lang.String-java.lang.Exception-boolean-">terminate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> cause,
boolean join)</code> </td>
</tr>
-<tr id="i31" class="rowColor">
+<tr id="i33" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#tryStartNewShipper-java.lang.String-java.util.concurrent.PriorityBlockingQueue-">tryStartNewShipper</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroupId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">PriorityBlockingQueue</a><org.apache.hadoop.fs.Path> queue)</code> </td>
</tr>
-<tr id="i32" class="altColor">
+<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#tryThrottle-int-">tryThrottle</a></span>(int batchSize)</code>
<div class="block">Try to throttle when the peer config with a bandwidth</div>
</td>
</tr>
-<tr id="i33" class="rowColor">
+<tr id="i35" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#uncaughtException-java.lang.Thread-java.lang.Throwable-">uncaughtException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a> t,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a> e)</code> </td>
@@ -542,7 +552,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
-<pre>private static final org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.82">LOG</a></pre>
+<pre>private static final org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.86">LOG</a></pre>
</li>
</ul>
<a name="queues">
@@ -551,7 +561,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>queues</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">PriorityBlockingQueue</a><org.apache.hadoop.fs.Path>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.85">queues</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">PriorityBlockingQueue</a><org.apache.hadoop.fs.Path>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.89">queues</a></pre>
</li>
</ul>
<a name="queueSizePerGroup">
@@ -560,7 +570,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>queueSizePerGroup</h4>
-<pre>protected int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.87">queueSizePerGroup</a></pre>
+<pre>protected int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.91">queueSizePerGroup</a></pre>
</li>
</ul>
<a name="queueStorage">
@@ -569,7 +579,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>queueStorage</h4>
-<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueStorage.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationQueueStorage</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.88">queueStorage</a></pre>
+<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueStorage.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationQueueStorage</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.92">queueStorage</a></pre>
</li>
</ul>
<a name="replicationPeer">
@@ -578,7 +588,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>replicationPeer</h4>
-<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationPeer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.89">replicationPeer</a></pre>
+<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationPeer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.93">replicationPeer</a></pre>
</li>
</ul>
<a name="conf">
@@ -587,7 +597,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>conf</h4>
-<pre>protected org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.91">conf</a></pre>
+<pre>protected org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.95">conf</a></pre>
</li>
</ul>
<a name="replicationQueueInfo">
@@ -596,7 +606,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>replicationQueueInfo</h4>
-<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueInfo.html" title="class in org.apache.hadoop.hbase.replication">ReplicationQueueInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.92">replicationQueueInfo</a></pre>
+<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueInfo.html" title="class in org.apache.hadoop.hbase.replication">ReplicationQueueInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.96">replicationQueueInfo</a></pre>
</li>
</ul>
<a name="manager">
@@ -605,7 +615,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>manager</h4>
-<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.95">manager</a></pre>
+<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.99">manager</a></pre>
</li>
</ul>
<a name="server">
@@ -614,7 +624,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>server</h4>
-<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.97">server</a></pre>
+<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.101">server</a></pre>
</li>
</ul>
<a name="sleepForRetries">
@@ -623,7 +633,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>sleepForRetries</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.99">sleepForRetries</a></pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.103">sleepForRetries</a></pre>
</li>
</ul>
<a name="fs">
@@ -632,7 +642,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>fs</h4>
-<pre>protected org.apache.hadoop.fs.FileSystem <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.100">fs</a></pre>
+<pre>protected org.apache.hadoop.fs.FileSystem <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.104">fs</a></pre>
</li>
</ul>
<a name="clusterId">
@@ -641,7 +651,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>clusterId</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.102">clusterId</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.106">clusterId</a></pre>
</li>
</ul>
<a name="totalReplicatedEdits">
@@ -650,7 +660,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>totalReplicatedEdits</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.104">totalReplicatedEdits</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.108">totalReplicatedEdits</a></pre>
</li>
</ul>
<a name="queueId">
@@ -659,7 +669,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>queueId</h4>
-<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.106">queueId</a></pre>
+<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.110">queueId</a></pre>
</li>
</ul>
<a name="maxRetriesMultiplier">
@@ -668,7 +678,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>maxRetriesMultiplier</h4>
-<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.108">maxRetriesMultiplier</a></pre>
+<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.112">maxRetriesMultiplier</a></pre>
</li>
</ul>
<a name="sourceRunning">
@@ -677,7 +687,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>sourceRunning</h4>
-<pre>private volatile boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.110">sourceRunning</a></pre>
+<pre>private volatile boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.114">sourceRunning</a></pre>
</li>
</ul>
<a name="metrics">
@@ -686,7 +696,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>metrics</h4>
-<pre>private <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsSource</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.112">metrics</a></pre>
+<pre>private <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsSource</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.116">metrics</a></pre>
</li>
</ul>
<a name="logQueueWarnThreshold">
@@ -695,7 +705,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>logQueueWarnThreshold</h4>
-<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.114">logQueueWarnThreshold</a></pre>
+<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.118">logQueueWarnThreshold</a></pre>
</li>
</ul>
<a name="replicationEndpoint">
@@ -704,7 +714,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>replicationEndpoint</h4>
-<pre>private volatile <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationEndpoint</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.116">replicationEndpoint</a></pre>
+<pre>private volatile <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationEndpoint</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.120">replicationEndpoint</a></pre>
</li>
</ul>
<a name="walEntryFilter">
@@ -713,7 +723,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>walEntryFilter</h4>
-<pre>protected volatile <a href="../../../../../../org/apache/hadoop/hbase/replication/WALEntryFilter.html" title="interface in org.apache.hadoop.hbase.replication">WALEntryFilter</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.118">walEntryFilter</a></pre>
+<pre>protected volatile <a href="../../../../../../org/apache/hadoop/hbase/replication/WALEntryFilter.html" title="interface in org.apache.hadoop.hbase.replication">WALEntryFilter</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.122">walEntryFilter</a></pre>
</li>
</ul>
<a name="throttler">
@@ -722,7 +732,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>throttler</h4>
-<pre>private <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationThrottler.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationThrottler</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.120">throttler</a></pre>
+<pre>private <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationThrottler.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationThrottler</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.124">throttler</a></pre>
</li>
</ul>
<a name="defaultBandwidth">
@@ -731,7 +741,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>defaultBandwidth</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.121">defaultBandwidth</a></pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.125">defaultBandwidth</a></pre>
</li>
</ul>
<a name="currentBandwidth">
@@ -740,7 +750,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>currentBandwidth</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.122">currentBandwidth</a></pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.126">currentBandwidth</a></pre>
</li>
</ul>
<a name="walFileLengthProvider">
@@ -749,7 +759,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>walFileLengthProvider</h4>
-<pre>private <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALFileLengthProvider.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">WALFileLengthProvider</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.123">walFileLengthProvider</a></pre>
+<pre>private <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALFileLengthProvider.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">WALFileLengthProvider</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.127">walFileLengthProvider</a></pre>
</li>
</ul>
<a name="workerThreads">
@@ -758,7 +768,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>workerThreads</h4>
-<pre>protected final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentHashMap</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.125">workerThreads</a></pre>
+<pre>protected final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentHashMap</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.129">workerThreads</a></pre>
</li>
</ul>
<a name="totalBufferUsed">
@@ -767,7 +777,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>totalBufferUsed</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.128">totalBufferUsed</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.132">totalBufferUsed</a></pre>
</li>
</ul>
<a name="WAIT_ON_ENDPOINT_SECONDS">
@@ -776,7 +786,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>WAIT_ON_ENDPOINT_SECONDS</h4>
-<pre>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.130">WAIT_ON_ENDPOINT_SECONDS</a></pre>
+<pre>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.134">WAIT_ON_ENDPOINT_SECONDS</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.replication.regionserver.ReplicationSource.WAIT_ON_ENDPOINT_SECONDS">Constant Field Values</a></dd>
@@ -789,7 +799,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_WAIT_ON_ENDPOINT_SECONDS</h4>
-<pre>public static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.132">DEFAULT_WAIT_ON_ENDPOINT_SECONDS</a></pre>
+<pre>public static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.136">DEFAULT_WAIT_ON_ENDPOINT_SECONDS</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.replication.regionserver.ReplicationSource.DEFAULT_WAIT_ON_ENDPOINT_SECONDS">Constant Field Values</a></dd>
@@ -802,7 +812,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>waitOnEndpointSeconds</h4>
-<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.133">waitOnEndpointSeconds</a></pre>
+<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.137">waitOnEndpointSeconds</a></pre>
</li>
</ul>
<a name="initThread">
@@ -811,7 +821,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockListLast">
<li class="blockList">
<h4>initThread</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.135">initThread</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.139">initThread</a></pre>
</li>
</ul>
</li>
@@ -828,7 +838,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockListLast">
<li class="blockList">
<h4>ReplicationSource</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.80">ReplicationSource</a>()</pre>
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.84">ReplicationSource</a>()</pre>
</li>
</ul>
</li>
@@ -845,7 +855,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.148">init</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.152">init</a>(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.fs.FileSystem fs,
<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a> manager,
<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueStorage.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationQueueStorage</a> queueStorage,
@@ -879,7 +889,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>decorateConf</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.182">decorateConf</a>()</pre>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.186">decorateConf</a>()</pre>
</li>
</ul>
<a name="enqueueLog-org.apache.hadoop.fs.Path-">
@@ -888,7 +898,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>enqueueLog</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.190">enqueueLog</a>(org.apache.hadoop.fs.Path log)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.194">enqueueLog</a>(org.apache.hadoop.fs.Path log)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#enqueueLog-org.apache.hadoop.fs.Path-">ReplicationSourceInterface</a></code></span></div>
<div class="block">Add a log to the list of logs to replicate</div>
<dl>
@@ -905,7 +915,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>addHFileRefs</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.219">addHFileRefs</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.223">addHFileRefs</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName,
byte[] family,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path>> pairs)
throws <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a></pre>
@@ -930,7 +940,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>createReplicationEndpoint</h4>
-<pre>private <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationEndpoint</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.241">createReplicationEndpoint</a>()
+<pre>private <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationEndpoint</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.245">createReplicationEndpoint</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InstantiationException.html?is-external=true" title="class or interface in java.lang">InstantiationException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalAccessException.html?is-external=true" title="class or interface in java.lang">IllegalAccessException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a>,
@@ -950,7 +960,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>initAndStartReplicationEndpoint</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.274">initAndStartReplicationEndpoint</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationEndpoint</a> replicationEndpoint)
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.278">initAndStartReplicationEndpoint</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationEndpoint</a> replicationEndpoint)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeoutException.html?is-external=true" title="class or interface in java.util.concurrent">TimeoutException</a></pre>
<dl>
@@ -966,7 +976,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>initializeWALEntryFilter</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.287">initializeWALEntryFilter</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> peerClusterId)</pre>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.291">initializeWALEntryFilter</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> peerClusterId)</pre>
</li>
</ul>
<a name="tryStartNewShipper-java.lang.String-java.util.concurrent.PriorityBlockingQueue-">
@@ -975,17 +985,48 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>tryStartNewShipper</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.299">tryStartNewShipper</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroupId,
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.303">tryStartNewShipper</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroupId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">PriorityBlockingQueue</a><org.apache.hadoop.fs.Path> queue)</pre>
</li>
</ul>
+<a name="getWalGroupStatus--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWalGroupStatus</h4>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.320">getWalGroupStatus</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getWalGroupStatus--">ReplicationSourceInterface</a></code></span></div>
+<div class="block">get the stat of replication for each wal group.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getWalGroupStatus--">getWalGroupStatus</a></code> in interface <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceInterface</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>stat of replication</dd>
+</dl>
+</li>
+</ul>
+<a name="getFileSize-org.apache.hadoop.fs.Path-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFileSize</h4>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.352">getFileSize</a>(org.apache.hadoop.fs.Path currentPath)
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
<a name="createNewShipper-java.lang.String-java.util.concurrent.PriorityBlockingQueue-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createNewShipper</h4>
-<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.315">createNewShipper</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroupId,
+<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.363">createNewShipper</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroupId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">PriorityBlockingQueue</a><org.apache.hadoop.fs.Path> queue)</pre>
</li>
</ul>
@@ -995,7 +1036,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>createNewWALReader</h4>
-<pre>private <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceWALReader</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.320">createNewWALReader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroupId,
+<pre>private <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceWALReader</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.368">createNewWALReader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroupId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">PriorityBlockingQueue</a><org.apache.hadoop.fs.Path> queue,
long startPosition)</pre>
</li>
@@ -1006,7 +1047,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>uncaughtException</h4>
-<pre>protected final void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.327">uncaughtException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a> t,
+<pre>protected final void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.375">uncaughtException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a> t,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a> e)</pre>
</li>
</ul>
@@ -1016,7 +1057,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>getReplicationEndpoint</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationEndpoint</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.334">getReplicationEndpoint</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationEndpoint</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.382">getReplicationEndpoint</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getReplicationEndpoint--">getReplicationEndpoint</a></code> in interface <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceInterface</a></code></dd>
@@ -1031,7 +1072,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>getSourceManager</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.339">getSourceManager</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.387">getSourceManager</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getSourceManager--">getSourceManager</a></code> in interface <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceInterface</a></code></dd>
@@ -1046,7 +1087,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>tryThrottle</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.344">tryThrottle</a>(int batchSize)
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.392">tryThrottle</a>(int batchSize)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#tryThrottle-int-">ReplicationSourceInterface</a></code></span></div>
<div class="block">Try to throttle when the peer config with a bandwidth</div>
@@ -1066,7 +1107,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>checkBandwidthChangeAndResetThrottler</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.359">checkBandwidthChangeAndResetThrottler</a>()</pre>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.407">checkBandwidthChangeAndResetThrottler</a>()</pre>
</li>
</ul>
<a name="getCurrentBandwidth--">
@@ -1075,7 +1116,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>getCurrentBandwidth</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.369">getCurrentBandwidth</a>()</pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.417">getCurrentBandwidth</a>()</pre>
</li>
</ul>
<a name="sleepForRetries-java.lang.String-int-">
@@ -1084,7 +1125,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>sleepForRetries</h4>
-<pre>protected boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.381">sleepForRetries</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg,
+<pre>protected boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.429">sleepForRetries</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg,
int sleepMultiplier)</pre>
<div class="block">Do the sleeping logic</div>
<dl>
@@ -1102,7 +1143,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.394">initialize</a>()</pre>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.442">initialize</a>()</pre>
</li>
</ul>
<a name="startup--">
@@ -1111,7 +1152,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>startup</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.460">startup</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.508">startup</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#startup--">ReplicationSourceInterface</a></code></span></div>
<div class="block">Start the replication</div>
<dl>
@@ -1126,7 +1167,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>terminate</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.470">terminate</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.518">terminate</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#terminate-java.lang.String-">ReplicationSourceInterface</a></code></span></div>
<div class="block">End the replication</div>
<dl>
@@ -1143,7 +1184,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>terminate</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.475">terminate</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.523">terminate</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> cause)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#terminate-java.lang.String-java.lang.Exception-">ReplicationSourceInterface</a></code></span></div>
<div class="block">End the replication</div>
@@ -1162,7 +1203,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>terminate</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.479">terminate</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.527">terminate</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> cause,
boolean join)</pre>
</li>
@@ -1173,7 +1214,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>getQueueId</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.543">getQueueId</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.591">getQueueId</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getQueueId--">ReplicationSourceInterface</a></code></span></div>
<div class="block">Get the queue id that the source is replicating to</div>
<dl>
@@ -1190,7 +1231,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>getCurrentPath</h4>
-<pre>public org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.548">getCurrentPath</a>()</pre>
+<pre>public org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.596">getCurrentPath</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getCurrentPath--">ReplicationSourceInterface</a></code></span></div>
<div class="block">Get the current log that's replicated</div>
<dl>
@@ -1207,7 +1248,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>isSourceActive</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.559">isSourceActive</a>()</pre>
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.607">isSourceActive</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#isSourceActive--">isSourceActive</a></code> in interface <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceInterface</a></code></dd>
@@ -1222,7 +1263,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>getStats</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.589">getStats</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.637">getStats</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getStats--">ReplicationSourceInterface</a></code></span></div>
<div class="block">Get a string representation of the current statistics
for this source</div>
@@ -1240,7 +1281,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>getSourceMetrics</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsSource</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.610">getSourceMetrics</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsSource</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.658">getSourceMetrics</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getSourceMetrics--">getSourceMetrics</a></code> in interface <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceInterface</a></code></dd>
@@ -1255,7 +1296,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>postShipEdits</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.616">postShipEdits</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>> entries,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.664">postShipEdits</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>> entries,
int batchSize)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#postShipEdits-java.util.List-int-">ReplicationSourceInterface</a></code></span></div>
<div class="block">Call this after the shipper thread ship some entries to peer cluster.</div>
@@ -1274,7 +1315,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>getWALFileLengthProvider</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALFileLengthProvider.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">WALFileLengthProvider</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.625">getWALFileLengthProvider</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALFileLengthProvider.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">WALFileLengthProvider</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.673">getWALFileLengthProvider</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getWALFileLengthProvider--">getWALFileLengthProvider</a></code> in interface <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceInterface</a></code></dd>
@@ -1289,7 +1330,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>getServerWALsBelongTo</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.630">getServerWALsBelongTo</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.678">getServerWALsBelongTo</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getServerWALsBelongTo--">ReplicationSourceInterface</a></code></span></div>
<div class="block">The queue of WALs only belong to one region server. This will return the server name which all
WALs belong to.</div>
@@ -1307,7 +1348,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>getPeer</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationPeer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.635">getPeer</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationPeer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.683">getPeer</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getPeer--">ReplicationSourceInterface</a></code></span></div>
<div class="block">Get the replication peer instance.</div>
<dl>
@@ -1324,7 +1365,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>getServer</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.639">getServer</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.687">getServer</a>()</pre>
</li>
</ul>
<a name="getQueueStorage--">
@@ -1333,7 +1374,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockList">
<li class="blockList">
<h4>getQueueStorage</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueStorage.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationQueueStorage</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.643">getQueueStorage</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueStorage.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationQueueStorage</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.691">getQueueStorage</a>()</pre>
</li>
</ul>
<a name="removeWorker-org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceShipper-">
@@ -1342,7 +1383,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/replication/region
<ul class="blockListLast">
<li class="blockList">
<h4>removeWorker</h4>
-<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.647">removeWorker</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper</a> worker)</pre>
+<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.695">removeWorker</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper</a> worker)</pre>
</li>
</ul>
</li>
[14/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html
index 05e032c..40ef9f4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html
@@ -25,767 +25,805 @@
<span class="sourceLineNo">017</span> */<a name="line.17"></a>
<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.io.asyncfs;<a name="line.18"></a>
<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.21"></a>
+<span class="sourceLineNo">020</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.21"></a>
<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import com.google.protobuf.CodedOutputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.io.IOException;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.lang.reflect.Field;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.lang.reflect.InvocationTargetException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.lang.reflect.Method;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.net.InetAddress;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import java.net.InetSocketAddress;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import java.nio.ByteBuffer;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import java.security.GeneralSecurityException;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import java.util.Arrays;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import java.util.Collections;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import java.util.List;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import java.util.Map;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import java.util.Set;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import java.util.concurrent.TimeUnit;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>import javax.security.auth.callback.Callback;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import javax.security.auth.callback.CallbackHandler;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import javax.security.auth.callback.NameCallback;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import javax.security.auth.callback.PasswordCallback;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import javax.security.sasl.RealmCallback;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import javax.security.sasl.Sasl;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import javax.security.sasl.SaslClient;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import javax.security.sasl.SaslException;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.commons.codec.binary.Base64;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.commons.lang3.StringUtils;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.conf.Configuration;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.slf4j.Logger;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.slf4j.LoggerFactory;<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>import com.google.protobuf.ByteString;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.security.token.Token;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>/**<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@InterfaceAudience.Private<a name="line.109"></a>
-<span class="sourceLineNo">110</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.110"></a>
-<span class="sourceLineNo">111</span> private static final Logger LOG =<a name="line.111"></a>
-<span class="sourceLineNo">112</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.112"></a>
+<span class="sourceLineNo">023</span>import com.google.protobuf.ByteString;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import com.google.protobuf.CodedOutputStream;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.lang.reflect.Field;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.lang.reflect.InvocationTargetException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.lang.reflect.Method;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.net.InetAddress;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.net.InetSocketAddress;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.ByteBuffer;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.security.GeneralSecurityException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.Arrays;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.List;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Map;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.Set;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import java.util.concurrent.TimeUnit;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import javax.security.auth.callback.Callback;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import javax.security.auth.callback.CallbackHandler;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import javax.security.auth.callback.NameCallback;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import javax.security.auth.callback.PasswordCallback;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import javax.security.sasl.RealmCallback;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import javax.security.sasl.Sasl;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import javax.security.sasl.SaslClient;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import javax.security.sasl.SaslException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.commons.codec.binary.Base64;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.commons.lang3.StringUtils;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.conf.Configuration;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.crypto.key.KeyProvider;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.security.token.Token;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.slf4j.Logger;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.slf4j.LoggerFactory;<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>/**<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.104"></a>
+<span class="sourceLineNo">105</span> */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>@InterfaceAudience.Private<a name="line.106"></a>
+<span class="sourceLineNo">107</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> private static final Logger LOG =<a name="line.108"></a>
+<span class="sourceLineNo">109</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span> }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span> private static final String SERVER_NAME = "0";<a name="line.117"></a>
-<span class="sourceLineNo">118</span> private static final String PROTOCOL = "hdfs";<a name="line.118"></a>
-<span class="sourceLineNo">119</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.119"></a>
-<span class="sourceLineNo">120</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> private static final String NAME_DELIMITER = " ";<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span> private interface SaslAdaptor {<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.127"></a>
+<span class="sourceLineNo">114</span> private static final String SERVER_NAME = "0";<a name="line.114"></a>
+<span class="sourceLineNo">115</span> private static final String PROTOCOL = "hdfs";<a name="line.115"></a>
+<span class="sourceLineNo">116</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.116"></a>
+<span class="sourceLineNo">117</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> private static final String NAME_DELIMITER = " ";<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span> private interface SaslAdaptor {<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> }<a name="line.127"></a>
<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> }<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.132"></a>
+<span class="sourceLineNo">129</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span> // helper class for convert protos.<a name="line.131"></a>
+<span class="sourceLineNo">132</span> private interface PBHelper {<a name="line.132"></a>
<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span> // helper class for convert protos.<a name="line.134"></a>
-<span class="sourceLineNo">135</span> private interface PBHelper {<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.137"></a>
+<span class="sourceLineNo">134</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.139"></a>
-<span class="sourceLineNo">140</span> }<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span> private static final PBHelper PB_HELPER;<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> private interface TransparentCryptoHelper {<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.146"></a>
-<span class="sourceLineNo">147</span> throws IOException;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span> private static SaslAdaptor createSaslAdaptor()<a name="line.152"></a>
-<span class="sourceLineNo">153</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.153"></a>
-<span class="sourceLineNo">154</span> Field saslPropsResolverField =<a name="line.154"></a>
-<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.155"></a>
-<span class="sourceLineNo">156</span> saslPropsResolverField.setAccessible(true);<a name="line.156"></a>
-<span class="sourceLineNo">157</span> Field trustedChannelResolverField =<a name="line.157"></a>
-<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.158"></a>
-<span class="sourceLineNo">159</span> trustedChannelResolverField.setAccessible(true);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> Field fallbackToSimpleAuthField =<a name="line.160"></a>
-<span class="sourceLineNo">161</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.161"></a>
-<span class="sourceLineNo">162</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.162"></a>
-<span class="sourceLineNo">163</span> return new SaslAdaptor() {<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> @Override<a name="line.165"></a>
-<span class="sourceLineNo">166</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span> try {<a name="line.167"></a>
-<span class="sourceLineNo">168</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.168"></a>
-<span class="sourceLineNo">169</span> } catch (IllegalAccessException e) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> throw new RuntimeException(e);<a name="line.170"></a>
-<span class="sourceLineNo">171</span> }<a name="line.171"></a>
-<span class="sourceLineNo">172</span> }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span> @Override<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> try {<a name="line.176"></a>
-<span class="sourceLineNo">177</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> } catch (IllegalAccessException e) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span> throw new RuntimeException(e);<a name="line.179"></a>
-<span class="sourceLineNo">180</span> }<a name="line.180"></a>
-<span class="sourceLineNo">181</span> }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span> @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span> try {<a name="line.185"></a>
-<span class="sourceLineNo">186</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.186"></a>
-<span class="sourceLineNo">187</span> } catch (IllegalAccessException e) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> throw new RuntimeException(e);<a name="line.188"></a>
-<span class="sourceLineNo">189</span> }<a name="line.189"></a>
-<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span> };<a name="line.191"></a>
-<span class="sourceLineNo">192</span> }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.194"></a>
-<span class="sourceLineNo">195</span> Class<?> helperClass;<a name="line.195"></a>
-<span class="sourceLineNo">196</span> try {<a name="line.196"></a>
-<span class="sourceLineNo">197</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.197"></a>
-<span class="sourceLineNo">198</span> } catch (ClassNotFoundException e) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.199"></a>
-<span class="sourceLineNo">200</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.200"></a>
-<span class="sourceLineNo">201</span> }<a name="line.201"></a>
-<span class="sourceLineNo">202</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> Method convertCipherOptionProtosMethod =<a name="line.203"></a>
-<span class="sourceLineNo">204</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.204"></a>
-<span class="sourceLineNo">205</span> return new PBHelper() {<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span> @SuppressWarnings("unchecked")<a name="line.207"></a>
-<span class="sourceLineNo">208</span> @Override<a name="line.208"></a>
-<span class="sourceLineNo">209</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span> try {<a name="line.210"></a>
-<span class="sourceLineNo">211</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span> throw new RuntimeException(e);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> }<a name="line.214"></a>
-<span class="sourceLineNo">215</span> }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> @SuppressWarnings("unchecked")<a name="line.217"></a>
-<span class="sourceLineNo">218</span> @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span> try {<a name="line.220"></a>
-<span class="sourceLineNo">221</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.221"></a>
-<span class="sourceLineNo">222</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span> throw new RuntimeException(e);<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span> }<a name="line.225"></a>
-<span class="sourceLineNo">226</span> };<a name="line.226"></a>
-<span class="sourceLineNo">227</span> }<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.229"></a>
-<span class="sourceLineNo">230</span> throws NoSuchMethodException {<a name="line.230"></a>
-<span class="sourceLineNo">231</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.231"></a>
-<span class="sourceLineNo">232</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.232"></a>
-<span class="sourceLineNo">233</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span> return new TransparentCryptoHelper() {<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span> @Override<a name="line.236"></a>
-<span class="sourceLineNo">237</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.237"></a>
-<span class="sourceLineNo">238</span> DFSClient client) throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span> try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> KeyVersion decryptedKey =<a name="line.240"></a>
-<span class="sourceLineNo">241</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.241"></a>
-<span class="sourceLineNo">242</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.242"></a>
-<span class="sourceLineNo">243</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.243"></a>
-<span class="sourceLineNo">244</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.244"></a>
-<span class="sourceLineNo">245</span> return encryptor;<a name="line.245"></a>
-<span class="sourceLineNo">246</span> } catch (InvocationTargetException e) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.247"></a>
-<span class="sourceLineNo">248</span> throw new RuntimeException(e.getTargetException());<a name="line.248"></a>
-<span class="sourceLineNo">249</span> } catch (GeneralSecurityException e) {<a name="line.249"></a>
-<span class="sourceLineNo">250</span> throw new IOException(e);<a name="line.250"></a>
-<span class="sourceLineNo">251</span> } catch (IllegalAccessException e) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> throw new RuntimeException(e);<a name="line.252"></a>
-<span class="sourceLineNo">253</span> }<a name="line.253"></a>
-<span class="sourceLineNo">254</span> }<a name="line.254"></a>
-<span class="sourceLineNo">255</span> };<a name="line.255"></a>
-<span class="sourceLineNo">256</span> }<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span> static {<a name="line.258"></a>
-<span class="sourceLineNo">259</span> try {<a name="line.259"></a>
-<span class="sourceLineNo">260</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.260"></a>
-<span class="sourceLineNo">261</span> PB_HELPER = createPBHelper();<a name="line.261"></a>
-<span class="sourceLineNo">262</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.262"></a>
-<span class="sourceLineNo">263</span> } catch (Exception e) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.264"></a>
-<span class="sourceLineNo">265</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.265"></a>
-<span class="sourceLineNo">266</span> + "HBASE-16110 for more information.";<a name="line.266"></a>
-<span class="sourceLineNo">267</span> LOG.error(msg, e);<a name="line.267"></a>
-<span class="sourceLineNo">268</span> throw new Error(msg, e);<a name="line.268"></a>
-<span class="sourceLineNo">269</span> }<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span> /**<a name="line.272"></a>
-<span class="sourceLineNo">273</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.273"></a>
-<span class="sourceLineNo">274</span> */<a name="line.274"></a>
-<span class="sourceLineNo">275</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span> private final char[] password;<a name="line.277"></a>
-<span class="sourceLineNo">278</span> private final String userName;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span> /**<a name="line.280"></a>
-<span class="sourceLineNo">281</span> * Creates a new SaslClientCallbackHandler.<a name="line.281"></a>
-<span class="sourceLineNo">282</span> * @param userName SASL user name<a name="line.282"></a>
-<span class="sourceLineNo">283</span> * @Param password SASL password<a name="line.283"></a>
-<span class="sourceLineNo">284</span> */<a name="line.284"></a>
-<span class="sourceLineNo">285</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span> this.password = password;<a name="line.286"></a>
-<span class="sourceLineNo">287</span> this.userName = userName;<a name="line.287"></a>
-<span class="sourceLineNo">288</span> }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span> @Override<a name="line.290"></a>
-<span class="sourceLineNo">291</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.291"></a>
-<span class="sourceLineNo">292</span> NameCallback nc = null;<a name="line.292"></a>
-<span class="sourceLineNo">293</span> PasswordCallback pc = null;<a name="line.293"></a>
-<span class="sourceLineNo">294</span> RealmCallback rc = null;<a name="line.294"></a>
-<span class="sourceLineNo">295</span> for (Callback callback : callbacks) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span> if (callback instanceof RealmChoiceCallback) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span> continue;<a name="line.297"></a>
-<span class="sourceLineNo">298</span> } else if (callback instanceof NameCallback) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span> nc = (NameCallback) callback;<a name="line.299"></a>
-<span class="sourceLineNo">300</span> } else if (callback instanceof PasswordCallback) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span> pc = (PasswordCallback) callback;<a name="line.301"></a>
-<span class="sourceLineNo">302</span> } else if (callback instanceof RealmCallback) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span> rc = (RealmCallback) callback;<a name="line.303"></a>
-<span class="sourceLineNo">304</span> } else {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span> }<a name="line.307"></a>
-<span class="sourceLineNo">308</span> if (nc != null) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span> nc.setName(userName);<a name="line.309"></a>
-<span class="sourceLineNo">310</span> }<a name="line.310"></a>
-<span class="sourceLineNo">311</span> if (pc != null) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> pc.setPassword(password);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span> if (rc != null) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span> rc.setText(rc.getDefaultText());<a name="line.315"></a>
-<span class="sourceLineNo">316</span> }<a name="line.316"></a>
-<span class="sourceLineNo">317</span> }<a name="line.317"></a>
-<span class="sourceLineNo">318</span> }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span> private final Configuration conf;<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span> private final Map<String, String> saslProps;<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span> private final SaslClient saslClient;<a name="line.326"></a>
+<span class="sourceLineNo">139</span> private static final PBHelper PB_HELPER;<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span> private interface TransparentCryptoHelper {<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.143"></a>
+<span class="sourceLineNo">144</span> throws IOException;<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span> private static SaslAdaptor createSaslAdaptor()<a name="line.149"></a>
+<span class="sourceLineNo">150</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Field saslPropsResolverField =<a name="line.151"></a>
+<span class="sourceLineNo">152</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.152"></a>
+<span class="sourceLineNo">153</span> saslPropsResolverField.setAccessible(true);<a name="line.153"></a>
+<span class="sourceLineNo">154</span> Field trustedChannelResolverField =<a name="line.154"></a>
+<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.155"></a>
+<span class="sourceLineNo">156</span> trustedChannelResolverField.setAccessible(true);<a name="line.156"></a>
+<span class="sourceLineNo">157</span> Field fallbackToSimpleAuthField =<a name="line.157"></a>
+<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.158"></a>
+<span class="sourceLineNo">159</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.159"></a>
+<span class="sourceLineNo">160</span> return new SaslAdaptor() {<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span> @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span> try {<a name="line.164"></a>
+<span class="sourceLineNo">165</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.165"></a>
+<span class="sourceLineNo">166</span> } catch (IllegalAccessException e) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span> throw new RuntimeException(e);<a name="line.167"></a>
+<span class="sourceLineNo">168</span> }<a name="line.168"></a>
+<span class="sourceLineNo">169</span> }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span> @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span> try {<a name="line.173"></a>
+<span class="sourceLineNo">174</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.174"></a>
+<span class="sourceLineNo">175</span> } catch (IllegalAccessException e) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span> throw new RuntimeException(e);<a name="line.176"></a>
+<span class="sourceLineNo">177</span> }<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span> @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span> try {<a name="line.182"></a>
+<span class="sourceLineNo">183</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.183"></a>
+<span class="sourceLineNo">184</span> } catch (IllegalAccessException e) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span> throw new RuntimeException(e);<a name="line.185"></a>
+<span class="sourceLineNo">186</span> }<a name="line.186"></a>
+<span class="sourceLineNo">187</span> }<a name="line.187"></a>
+<span class="sourceLineNo">188</span> };<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.191"></a>
+<span class="sourceLineNo">192</span> Class<?> helperClass;<a name="line.192"></a>
+<span class="sourceLineNo">193</span> try {<a name="line.193"></a>
+<span class="sourceLineNo">194</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.194"></a>
+<span class="sourceLineNo">195</span> } catch (ClassNotFoundException e) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.197"></a>
+<span class="sourceLineNo">198</span> }<a name="line.198"></a>
+<span class="sourceLineNo">199</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.199"></a>
+<span class="sourceLineNo">200</span> Method convertCipherOptionProtosMethod =<a name="line.200"></a>
+<span class="sourceLineNo">201</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.201"></a>
+<span class="sourceLineNo">202</span> return new PBHelper() {<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span> @SuppressWarnings("unchecked")<a name="line.204"></a>
+<span class="sourceLineNo">205</span> @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> try {<a name="line.207"></a>
+<span class="sourceLineNo">208</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.208"></a>
+<span class="sourceLineNo">209</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span> throw new RuntimeException(e);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> }<a name="line.211"></a>
+<span class="sourceLineNo">212</span> }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span> @SuppressWarnings("unchecked")<a name="line.214"></a>
+<span class="sourceLineNo">215</span> @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> try {<a name="line.217"></a>
+<span class="sourceLineNo">218</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span> throw new RuntimeException(e);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> };<a name="line.223"></a>
+<span class="sourceLineNo">224</span> }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span> private static TransparentCryptoHelper createTransparentCryptoHelper27()<a name="line.226"></a>
+<span class="sourceLineNo">227</span> throws NoSuchMethodException {<a name="line.227"></a>
+<span class="sourceLineNo">228</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.228"></a>
+<span class="sourceLineNo">229</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> return new TransparentCryptoHelper() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.234"></a>
+<span class="sourceLineNo">235</span> DFSClient client) throws IOException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span> try {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> KeyVersion decryptedKey =<a name="line.237"></a>
+<span class="sourceLineNo">238</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.238"></a>
+<span class="sourceLineNo">239</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.239"></a>
+<span class="sourceLineNo">240</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.241"></a>
+<span class="sourceLineNo">242</span> return encryptor;<a name="line.242"></a>
+<span class="sourceLineNo">243</span> } catch (InvocationTargetException e) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.244"></a>
+<span class="sourceLineNo">245</span> throw new RuntimeException(e.getTargetException());<a name="line.245"></a>
+<span class="sourceLineNo">246</span> } catch (GeneralSecurityException e) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> throw new IOException(e);<a name="line.247"></a>
+<span class="sourceLineNo">248</span> } catch (IllegalAccessException e) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span> throw new RuntimeException(e);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span> }<a name="line.251"></a>
+<span class="sourceLineNo">252</span> };<a name="line.252"></a>
+<span class="sourceLineNo">253</span> }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span> private static TransparentCryptoHelper createTransparentCryptoHelper28()<a name="line.255"></a>
+<span class="sourceLineNo">256</span> throws ClassNotFoundException, NoSuchMethodException {<a name="line.256"></a>
+<span class="sourceLineNo">257</span> Class<?> hdfsKMSUtilCls = Class.forName("org.apache.hadoop.hdfs.HdfsKMSUtil");<a name="line.257"></a>
+<span class="sourceLineNo">258</span> Method decryptEncryptedDataEncryptionKeyMethod = hdfsKMSUtilCls.getDeclaredMethod(<a name="line.258"></a>
+<span class="sourceLineNo">259</span> "decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class, KeyProvider.class);<a name="line.259"></a>
+<span class="sourceLineNo">260</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.260"></a>
+<span class="sourceLineNo">261</span> return new TransparentCryptoHelper() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span> @Override<a name="line.263"></a>
+<span class="sourceLineNo">264</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.264"></a>
+<span class="sourceLineNo">265</span> DFSClient client) throws IOException {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> try {<a name="line.266"></a>
+<span class="sourceLineNo">267</span> KeyVersion decryptedKey = (KeyVersion) decryptEncryptedDataEncryptionKeyMethod<a name="line.267"></a>
+<span class="sourceLineNo">268</span> .invoke(null, feInfo, client.getKeyProvider());<a name="line.268"></a>
+<span class="sourceLineNo">269</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.269"></a>
+<span class="sourceLineNo">270</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.270"></a>
+<span class="sourceLineNo">271</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.271"></a>
+<span class="sourceLineNo">272</span> return encryptor;<a name="line.272"></a>
+<span class="sourceLineNo">273</span> } catch (InvocationTargetException e) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.274"></a>
+<span class="sourceLineNo">275</span> throw new RuntimeException(e.getTargetException());<a name="line.275"></a>
+<span class="sourceLineNo">276</span> } catch (GeneralSecurityException e) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> throw new IOException(e);<a name="line.277"></a>
+<span class="sourceLineNo">278</span> } catch (IllegalAccessException e) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> throw new RuntimeException(e);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> }<a name="line.280"></a>
+<span class="sourceLineNo">281</span> }<a name="line.281"></a>
+<span class="sourceLineNo">282</span> };<a name="line.282"></a>
+<span class="sourceLineNo">283</span> }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.285"></a>
+<span class="sourceLineNo">286</span> throws NoSuchMethodException, ClassNotFoundException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> try {<a name="line.287"></a>
+<span class="sourceLineNo">288</span> return createTransparentCryptoHelper27();<a name="line.288"></a>
+<span class="sourceLineNo">289</span> } catch (NoSuchMethodException e) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> LOG.debug("No decryptEncryptedDataEncryptionKey method in DFSClient, should be hadoop 2.8+",<a name="line.290"></a>
+<span class="sourceLineNo">291</span> e);<a name="line.291"></a>
+<span class="sourceLineNo">292</span> }<a name="line.292"></a>
+<span class="sourceLineNo">293</span> return createTransparentCryptoHelper28();<a name="line.293"></a>
+<span class="sourceLineNo">294</span> }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span> static {<a name="line.296"></a>
+<span class="sourceLineNo">297</span> try {<a name="line.297"></a>
+<span class="sourceLineNo">298</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.298"></a>
+<span class="sourceLineNo">299</span> PB_HELPER = createPBHelper();<a name="line.299"></a>
+<span class="sourceLineNo">300</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.300"></a>
+<span class="sourceLineNo">301</span> } catch (Exception e) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.302"></a>
+<span class="sourceLineNo">303</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.303"></a>
+<span class="sourceLineNo">304</span> + "HBASE-16110 for more information.";<a name="line.304"></a>
+<span class="sourceLineNo">305</span> LOG.error(msg, e);<a name="line.305"></a>
+<span class="sourceLineNo">306</span> throw new Error(msg, e);<a name="line.306"></a>
+<span class="sourceLineNo">307</span> }<a name="line.307"></a>
+<span class="sourceLineNo">308</span> }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span> /**<a name="line.310"></a>
+<span class="sourceLineNo">311</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.311"></a>
+<span class="sourceLineNo">312</span> */<a name="line.312"></a>
+<span class="sourceLineNo">313</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span> private final char[] password;<a name="line.315"></a>
+<span class="sourceLineNo">316</span> private final String userName;<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span> /**<a name="line.318"></a>
+<span class="sourceLineNo">319</span> * Creates a new SaslClientCallbackHandler.<a name="line.319"></a>
+<span class="sourceLineNo">320</span> * @param userName SASL user name<a name="line.320"></a>
+<span class="sourceLineNo">321</span> * @Param password SASL password<a name="line.321"></a>
+<span class="sourceLineNo">322</span> */<a name="line.322"></a>
+<span class="sourceLineNo">323</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span> this.password = password;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> this.userName = userName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> }<a name="line.326"></a>
<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span> private final int timeoutMs;<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span> private final Promise<Void> promise;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span> private int step = 0;<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.334"></a>
-<span class="sourceLineNo">335</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.335"></a>
-<span class="sourceLineNo">336</span> this.conf = conf;<a name="line.336"></a>
-<span class="sourceLineNo">337</span> this.saslProps = saslProps;<a name="line.337"></a>
-<span class="sourceLineNo">338</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.338"></a>
-<span class="sourceLineNo">339</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.339"></a>
-<span class="sourceLineNo">340</span> this.timeoutMs = timeoutMs;<a name="line.340"></a>
-<span class="sourceLineNo">341</span> this.promise = promise;<a name="line.341"></a>
-<span class="sourceLineNo">342</span> }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.344"></a>
-<span class="sourceLineNo">345</span> sendSaslMessage(ctx, payload, null);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.349"></a>
-<span class="sourceLineNo">350</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.350"></a>
-<span class="sourceLineNo">351</span> // values for future expansion.<a name="line.351"></a>
-<span class="sourceLineNo">352</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span> return null;<a name="line.354"></a>
-<span class="sourceLineNo">355</span> }<a name="line.355"></a>
-<span class="sourceLineNo">356</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.357"></a>
-<span class="sourceLineNo">358</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.358"></a>
-<span class="sourceLineNo">359</span> }<a name="line.359"></a>
-<span class="sourceLineNo">360</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.360"></a>
-<span class="sourceLineNo">361</span> }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.363"></a>
-<span class="sourceLineNo">364</span> List<CipherOption> options) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.365"></a>
-<span class="sourceLineNo">366</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.366"></a>
-<span class="sourceLineNo">367</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> if (payload != null) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.369"></a>
-<span class="sourceLineNo">370</span> // and we want to keep that out of hbase-server.<a name="line.370"></a>
-<span class="sourceLineNo">371</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.371"></a>
-<span class="sourceLineNo">372</span> }<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (options != null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.376"></a>
-<span class="sourceLineNo">377</span> int size = proto.getSerializedSize();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.378"></a>
-<span class="sourceLineNo">379</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.379"></a>
-<span class="sourceLineNo">380</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> ctx.write(buf);<a name="line.381"></a>
-<span class="sourceLineNo">382</span> }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span> @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.385"></a>
-<span class="sourceLineNo">386</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.386"></a>
-<span class="sourceLineNo">387</span> sendSaslMessage(ctx, new byte[0]);<a name="line.387"></a>
-<span class="sourceLineNo">388</span> ctx.flush();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> step++;<a name="line.389"></a>
-<span class="sourceLineNo">390</span> }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span> @Override<a name="line.392"></a>
-<span class="sourceLineNo">393</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.393"></a>
-<span class="sourceLineNo">394</span> saslClient.dispose();<a name="line.394"></a>
-<span class="sourceLineNo">395</span> }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.399"></a>
-<span class="sourceLineNo">400</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span> throw new IOException(proto.getMessage());<a name="line.401"></a>
-<span class="sourceLineNo">402</span> }<a name="line.402"></a>
-<span class="sourceLineNo">403</span> }<a name="line.403"></a>
-<span class="sourceLineNo">404</span><a name="line.404"></a>
-<span class="sourceLineNo">405</span> private String getNegotiatedQop() {<a name="line.405"></a>
-<span class="sourceLineNo">406</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.406"></a>
-<span class="sourceLineNo">407</span> }<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span> private boolean isNegotiatedQopPrivacy() {<a name="line.409"></a>
-<span class="sourceLineNo">410</span> String qop = getNegotiatedQop();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> return qop != null && "auth-conf".equalsIgnoreCase(qop);<a name="line.411"></a>
-<span class="sourceLineNo">412</span> }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span> private boolean requestedQopContainsPrivacy() {<a name="line.414"></a>
-<span class="sourceLineNo">415</span> Set<String> requestedQop =<a name="line.415"></a>
-<span class="sourceLineNo">416</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.416"></a>
-<span class="sourceLineNo">417</span> return requestedQop.contains("auth-conf");<a name="line.417"></a>
-<span class="sourceLineNo">418</span> }<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span> private void checkSaslComplete() throws IOException {<a name="line.420"></a>
-<span class="sourceLineNo">421</span> if (!saslClient.isComplete()) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> throw new IOException("Failed to complete SASL handshake");<a name="line.422"></a>
-<span class="sourceLineNo">423</span> }<a name="line.423"></a>
-<span class="sourceLineNo">424</span> Set<String> requestedQop =<a name="line.424"></a>
-<span class="sourceLineNo">425</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.425"></a>
-<span class="sourceLineNo">426</span> String negotiatedQop = getNegotiatedQop();<a name="line.426"></a>
-<span class="sourceLineNo">427</span> LOG.debug(<a name="line.427"></a>
-<span class="sourceLineNo">428</span> "Verifying QOP, requested QOP = " + requestedQop + ", negotiated QOP = " + negotiatedQop);<a name="line.428"></a>
-<span class="sourceLineNo">429</span> if (!requestedQop.contains(negotiatedQop)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span> throw new IOException(String.format("SASL handshake completed, but "<a name="line.430"></a>
-<span class="sourceLineNo">431</span> + "channel does not have acceptable quality of protection, "<a name="line.431"></a>
-<span class="sourceLineNo">432</span> + "requested = %s, negotiated = %s",<a name="line.432"></a>
-<span class="sourceLineNo">433</span> requestedQop, negotiatedQop));<a name="line.433"></a>
-<span class="sourceLineNo">434</span> }<a name="line.434"></a>
-<span class="sourceLineNo">435</span> }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span> private boolean useWrap() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> String qop = (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> return qop != null && !"auth".equalsIgnoreCase(qop);<a name="line.439"></a>
-<span class="sourceLineNo">440</span> }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span> private CipherOption unwrap(CipherOption option, SaslClient saslClient) throws IOException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> byte[] inKey = option.getInKey();<a name="line.443"></a>
-<span class="sourceLineNo">444</span> if (inKey != null) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span> inKey = saslClient.unwrap(inKey, 0, inKey.length);<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> byte[] outKey = option.getOutKey();<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (outKey != null) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> outKey = saslClient.unwrap(outKey, 0, outKey.length);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> }<a name="line.450"></a>
-<span class="sourceLineNo">451</span> return new CipherOption(option.getCipherSuite(), inKey, option.getInIv(), outKey,<a name="line.451"></a>
-<span class="sourceLineNo">452</span> option.getOutIv());<a name="line.452"></a>
-<span class="sourceLineNo">453</span> }<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span> private CipherOption getCipherOption(DataTransferEncryptorMessageProto proto,<a name="line.455"></a>
-<span class="sourceLineNo">456</span> boolean isNegotiatedQopPrivacy, SaslClient saslClient) throws IOException {<a name="line.456"></a>
-<span class="sourceLineNo">457</span> List<CipherOption> cipherOptions =<a name="line.457"></a>
-<span class="sourceLineNo">458</span> PB_HELPER.convertCipherOptionProtos(proto.getCipherOptionList());<a name="line.458"></a>
-<span class="sourceLineNo">459</span> if (cipherOptions == null || cipherOptions.isEmpty()) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span> return null;<a name="line.460"></a>
+<span class="sourceLineNo">328</span> @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.329"></a>
+<span class="sourceLineNo">330</span> NameCallback nc = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span> PasswordCallback pc = null;<a name="line.331"></a>
+<span class="sourceLineNo">332</span> RealmCallback rc = null;<a name="line.332"></a>
+<span class="sourceLineNo">333</span> for (Callback callback : callbacks) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span> if (callback instanceof RealmChoiceCallback) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span> continue;<a name="line.335"></a>
+<span class="sourceLineNo">336</span> } else if (callback instanceof NameCallback) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span> nc = (NameCallback) callback;<a name="line.337"></a>
+<span class="sourceLineNo">338</span> } else if (callback instanceof PasswordCallback) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span> pc = (PasswordCallback) callback;<a name="line.339"></a>
+<span class="sourceLineNo">340</span> } else if (callback instanceof RealmCallback) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span> rc = (RealmCallback) callback;<a name="line.341"></a>
+<span class="sourceLineNo">342</span> } else {<a name="line.342"></a>
+<span class="sourceLineNo">343</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.343"></a>
+<span class="sourceLineNo">344</span> }<a name="line.344"></a>
+<span class="sourceLineNo">345</span> }<a name="line.345"></a>
+<span class="sourceLineNo">346</span> if (nc != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> nc.setName(userName);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span> if (pc != null) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span> pc.setPassword(password);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> }<a name="line.351"></a>
+<span class="sourceLineNo">352</span> if (rc != null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span> rc.setText(rc.getDefaultText());<a name="line.353"></a>
+<span class="sourceLineNo">354</span> }<a name="line.354"></a>
+<span class="sourceLineNo">355</span> }<a name="line.355"></a>
+<span class="sourceLineNo">356</span> }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span> private final Configuration conf;<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span> private final Map<String, String> saslProps;<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span> private final SaslClient saslClient;<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span> private final int timeoutMs;<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span> private final Promise<Void> promise;<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span> private int step = 0;<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.372"></a>
+<span class="sourceLineNo">373</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span> this.conf = conf;<a name="line.374"></a>
+<span class="sourceLineNo">375</span> this.saslProps = saslProps;<a name="line.375"></a>
+<span class="sourceLineNo">376</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.376"></a>
+<span class="sourceLineNo">377</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.377"></a>
+<span class="sourceLineNo">378</span> this.timeoutMs = timeoutMs;<a name="line.378"></a>
+<span class="sourceLineNo">379</span> this.promise = promise;<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> sendSaslMessage(ctx, payload, null);<a name="line.383"></a>
+<span class="sourceLineNo">384</span> }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.386"></a>
+<span class="sourceLineNo">387</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.387"></a>
+<span class="sourceLineNo">388</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.388"></a>
+<span class="sourceLineNo">389</span> // values for future expansion.<a name="line.389"></a>
+<span class="sourceLineNo">390</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.390"></a>
+<span class="sourceLineNo">391</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span> return null;<a name="line.392"></a>
+<span class="sourceLineNo">393</span> }<a name="line.393"></a>
+<span class="sourceLineNo">394</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.395"></a>
+<span class="sourceLineNo">396</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.396"></a>
+<span class="sourceLineNo">397</span> }<a name="line.397"></a>
+<span class="sourceLineNo">398</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.398"></a>
+<span class="sourceLineNo">399</span> }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.401"></a>
+<span class="sourceLineNo">402</span> List<CipherOption> options) throws IOException {<a name="line.402"></a>
+<span class="sourceLineNo">403</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.403"></a>
+<span class="sourceLineNo">404</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.404"></a>
+<span class="sourceLineNo">405</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.405"></a>
+<span class="sourceLineNo">406</span> if (payload != null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.407"></a>
+<span class="sourceLineNo">408</span> // and we want to keep that out of hbase-server.<a name="line.408"></a>
+<span class="sourceLineNo">409</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.409"></a>
+<span class="sourceLineNo">410</span> }<a name="line.410"></a>
+<span class="sourceLineNo">411</span> if (options != null) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.412"></a>
+<span class="sourceLineNo">413</span> }<a name="line.413"></a>
+<span class="sourceLineNo">414</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.414"></a>
+<span class="sourceLineNo">415</span> int size = proto.getSerializedSize();<a name="line.415"></a>
+<span class="sourceLineNo">416</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.416"></a>
+<span class="sourceLineNo">417</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.417"></a>
+<span class="sourceLineNo">418</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.418"></a>
+<span class="sourceLineNo">419</span> ctx.write(buf);<a name="line.419"></a>
+<span class="sourceLineNo">420</span> }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span> @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.424"></a>
+<span class="sourceLineNo">425</span> sendSaslMessage(ctx, new byte[0]);<a name="line.425"></a>
+<span class="sourceLineNo">426</span> ctx.flush();<a name="line.426"></a>
+<span class="sourceLineNo">427</span> step++;<a name="line.427"></a>
+<span class="sourceLineNo">428</span> }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span> @Override<a name="line.430"></a>
+<span class="sourceLineNo">431</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.431"></a>
+<span class="sourceLineNo">432</span> saslClient.dispose();<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.435"></a>
+<span class="sourceLineNo">436</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.437"></a>
+<span class="sourceLineNo">438</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span> throw new IOException(proto.getMessage());<a name="line.439"></a>
+<span class="sourceLineNo">440</span> }<a name="line.440"></a>
+<span class="sourceLineNo">441</span> }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span> private String getNegotiatedQop() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span> private boolean isNegotiatedQopPrivacy() {<a name="line.447"></a>
+<sp
<TRUNCATED>
[27/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html
index e23e8f7..cf50fff 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -186,37 +186,29 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
long offHeapSizeDelta)</code> </td>
</tr>
<tr id="i1" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#blockUpdates--">blockUpdates</a></span>()</code> </td>
-</tr>
-<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#getInMemoryCompactionPool--">getInMemoryCompactionPool</a></span>()</code> </td>
</tr>
-<tr id="i3" class="rowColor">
+<tr id="i2" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#getMemStoreFlushSize--">getMemStoreFlushSize</a></span>()</code> </td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i3" class="rowColor">
<td class="colFirst"><code>(package private) long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#getMemStoreSize--">getMemStoreSize</a></span>()</code> </td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#getNumStores--">getNumStores</a></span>()</code> </td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#getRegionInfo--">getRegionInfo</a></span>()</code> </td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#getWAL--">getWAL</a></span>()</code> </td>
</tr>
-<tr id="i8" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#unblockUpdates--">unblockUpdates</a></span>()</code> </td>
-</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -295,31 +287,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<!-- -->
</a>
<h3>Method Detail</h3>
-<a name="blockUpdates--">
-<!-- -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>blockUpdates</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.60">blockUpdates</a>()</pre>
-</li>
-</ul>
-<a name="unblockUpdates--">
-<!-- -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>unblockUpdates</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.64">unblockUpdates</a>()</pre>
-</li>
-</ul>
<a name="addMemStoreSize-long-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addMemStoreSize</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.68">addMemStoreSize</a>(long dataSizeDelta,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.60">addMemStoreSize</a>(long dataSizeDelta,
long heapSizeDelta,
long offHeapSizeDelta)</pre>
</li>
@@ -330,7 +304,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getRegionInfo</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.72">getRegionInfo</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.64">getRegionInfo</a>()</pre>
</li>
</ul>
<a name="getWAL--">
@@ -339,7 +313,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getWAL</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.76">getWAL</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.68">getWAL</a>()</pre>
</li>
</ul>
<a name="getInMemoryCompactionPool--">
@@ -348,7 +322,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getInMemoryCompactionPool</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.80">getInMemoryCompactionPool</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.72">getInMemoryCompactionPool</a>()</pre>
</li>
</ul>
<a name="getMemStoreFlushSize--">
@@ -357,7 +331,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getMemStoreFlushSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.82">getMemStoreFlushSize</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.74">getMemStoreFlushSize</a>()</pre>
</li>
</ul>
<a name="getNumStores--">
@@ -366,7 +340,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getNumStores</h4>
-<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.86">getNumStores</a>()</pre>
+<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.78">getNumStores</a>()</pre>
</li>
</ul>
<a name="getMemStoreSize--">
@@ -375,7 +349,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>getMemStoreSize</h4>
-<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.91">getMemStoreSize</a>()</pre>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#line.83">getMemStoreSize</a>()</pre>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html b/devapidocs/org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html
index 84a1668..5d9b1ff 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":6,"i1":6,"i2":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
<hr>
<br>
<pre>@InterfaceAudience.Private
-public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#line.30">ReplicationSourceService</a>
+public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#line.31">ReplicationSourceService</a>
extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationService</a></pre>
<div class="block">A source for a replication stream has to expose this service. This service allows an application
to hook into the regionserver and watch for new transactions.</div>
@@ -139,12 +139,18 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Replication
</td>
</tr>
<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#getReplicationManager--">getReplicationManager</a></span>()</code>
+<div class="block">Returns the replication manager</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeers.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeers</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#getReplicationPeers--">getReplicationPeers</a></span>()</code>
<div class="block">Return the replication peers.</div>
</td>
</tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/SyncReplicationPeerInfoProvider.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">SyncReplicationPeerInfoProvider</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#getSyncReplicationPeerInfoProvider--">getSyncReplicationPeerInfoProvider</a></span>()</code>
<div class="block">Returns an info provider for sync replication peer.</div>
@@ -178,7 +184,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Replication
<ul class="blockList">
<li class="blockList">
<h4>getSyncReplicationPeerInfoProvider</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/SyncReplicationPeerInfoProvider.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">SyncReplicationPeerInfoProvider</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#line.35">getSyncReplicationPeerInfoProvider</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/SyncReplicationPeerInfoProvider.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">SyncReplicationPeerInfoProvider</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#line.36">getSyncReplicationPeerInfoProvider</a>()</pre>
<div class="block">Returns an info provider for sync replication peer.</div>
</li>
</ul>
@@ -188,20 +194,30 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Replication
<ul class="blockList">
<li class="blockList">
<h4>getPeerProcedureHandler</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/PeerProcedureHandler.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">PeerProcedureHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#line.40">getPeerProcedureHandler</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/PeerProcedureHandler.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">PeerProcedureHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#line.41">getPeerProcedureHandler</a>()</pre>
<div class="block">Returns a Handler to handle peer procedures.</div>
</li>
</ul>
<a name="getReplicationPeers--">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>getReplicationPeers</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeers.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeers</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#line.45">getReplicationPeers</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeers.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeers</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#line.46">getReplicationPeers</a>()</pre>
<div class="block">Return the replication peers.</div>
</li>
</ul>
+<a name="getReplicationManager--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getReplicationManager</h4>
+<pre><a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#line.51">getReplicationManager</a>()</pre>
+<div class="block">Returns the replication manager</div>
+</li>
+</ul>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/Segment.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/Segment.html b/devapidocs/org/apache/hadoop/hbase/regionserver/Segment.html
index 8d6eb3c..cb39bb0 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/Segment.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/Segment.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":6,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":6,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
<hr>
<br>
<pre>@InterfaceAudience.Private
-public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.48">Segment</a>
+public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.50">Segment</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></pre>
<div class="block">This is an abstraction of a segment maintained in a memstore, e.g., the active
@@ -180,6 +180,10 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TimeRangeTracker</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#timeRangeTracker">timeRangeTracker</a></span></code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updatesLock">updatesLock</a></span></code> </td>
+</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.regionserver.MemStoreSizing">
@@ -251,132 +255,142 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> right)</code> </td>
</tr>
<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareAndSetDataSize-long-long-">compareAndSetDataSize</a></span>(long expected,
+ long updated)</code> </td>
+</tr>
+<tr id="i3" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> left,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> right)</code> </td>
</tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#decScannerCount--">decScannerCount</a></span>()</code> </td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#dump-org.slf4j.Logger-">dump</a></span>(org.slf4j.Logger log)</code>
<div class="block">Dumps all cells of the segment into the given log</div>
</td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code>(package private) static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellLength-org.apache.hadoop.hbase.Cell-">getCellLength</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code>
<div class="block">Get cell length after serialized in <a href="../../../../../org/apache/hadoop/hbase/KeyValue.html" title="class in org.apache.hadoop.hbase"><code>KeyValue</code></a></div>
</td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellsCount--">getCellsCount</a></span>()</code> </td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellSet--">getCellSet</a></span>()</code> </td>
</tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getComparator--">getComparator</a></span>()</code>
<div class="block">Returns the Cell comparator used by this segment</div>
</td>
</tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getDataSize--">getDataSize</a></span>()</code> </td>
</tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getHeapSize--">getHeapSize</a></span>()</code> </td>
</tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreLAB--">getMemStoreLAB</a></span>()</code> </td>
</tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreSize--">getMemStoreSize</a></span>()</code> </td>
</tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMinSequenceId--">getMinSequenceId</a></span>()</code> </td>
</tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getOffHeapSize--">getOffHeapSize</a></span>()</code> </td>
</tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanner-long-">getScanner</a></span>(long readPoint)</code>
<div class="block">Creates the scanner for the given read point</div>
</td>
</tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanners-long-">getScanners</a></span>(long readPoint)</code> </td>
</tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TimeRangeTracker</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getTimeRangeTracker--">getTimeRangeTracker</a></span>()</code> </td>
</tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getUpdatesLock--">getUpdatesLock</a></span>()</code> </td>
+</tr>
+<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#headSet-org.apache.hadoop.hbase.Cell-">headSet</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstKeyOnRow)</code> </td>
</tr>
-<tr id="i19" class="rowColor">
+<tr id="i21" class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#heapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">heapSizeChange</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
- boolean succ)</code> </td>
+ boolean allocated)</code> </td>
</tr>
-<tr id="i20" class="altColor">
+<tr id="i22" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incMemStoreSize-long-long-long-">incMemStoreSize</a></span>(long delta,
long heapOverhead,
long offHeapOverhead)</code> </td>
</tr>
-<tr id="i21" class="rowColor">
+<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incScannerCount--">incScannerCount</a></span>()</code> </td>
</tr>
-<tr id="i22" class="altColor">
+<tr id="i24" class="altColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOffHeapSize-boolean-">indexEntryOffHeapSize</a></span>(boolean offHeap)</code> </td>
</tr>
-<tr id="i23" class="rowColor">
+<tr id="i25" class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOnHeapSize-boolean-">indexEntryOnHeapSize</a></span>(boolean onHeap)</code> </td>
</tr>
-<tr id="i24" class="altColor">
+<tr id="i26" class="altColor">
<td class="colFirst"><code>protected abstract long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntrySize--">indexEntrySize</a></span>()</code> </td>
</tr>
-<tr id="i25" class="rowColor">
+<tr id="i27" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">internalAdd</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
</tr>
-<tr id="i26" class="altColor">
+<tr id="i28" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isEmpty--">isEmpty</a></span>()</code> </td>
</tr>
-<tr id="i27" class="rowColor">
+<tr id="i29" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isTagsPresent--">isTagsPresent</a></span>()</code> </td>
</tr>
-<tr id="i28" class="altColor">
+<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#iterator--">iterator</a></span>()</code> </td>
</tr>
-<tr id="i29" class="rowColor">
+<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#last--">last</a></span>()</code> </td>
</tr>
-<tr id="i30" class="altColor">
+<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean forceCloneOfBigCell)</code>
@@ -386,12 +400,12 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
When a cell's size is too big (bigger than maxAlloc), it is not allocated on MSLAB.</div>
</td>
</tr>
-<tr id="i31" class="rowColor">
+<tr id="i33" class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#offHeapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">offHeapSizeChange</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
- boolean succ)</code> </td>
+ boolean allocated)</code> </td>
</tr>
-<tr id="i32" class="altColor">
+<tr id="i34" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#setCellSet-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.CellSet-">setCellSet</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> cellSetOld,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> cellSetNew)</code>
@@ -399,34 +413,47 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
immutable CellSet after its creation in immutable segment constructor</div>
</td>
</tr>
-<tr id="i33" class="rowColor">
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#sharedLock--">sharedLock</a></span>()</code> </td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#sharedUnlock--">sharedUnlock</a></span>()</code> </td>
+</tr>
+<tr id="i37" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#shouldSeek-org.apache.hadoop.hbase.io.TimeRange-long-">shouldSeek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a> tr,
long oldestUnexpiredTS)</code> </td>
</tr>
-<tr id="i34" class="altColor">
+<tr id="i38" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#tailSet-org.apache.hadoop.hbase.Cell-">tailSet</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstCell)</code>
<div class="block">Returns a subset of the segment cell set, which starts with the given cell</div>
</td>
</tr>
-<tr id="i35" class="rowColor">
+<tr id="i39" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#toString--">toString</a></span>()</code> </td>
</tr>
-<tr id="i36" class="altColor">
+<tr id="i40" class="altColor">
<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">updateMetaInfo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
boolean succ,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
</tr>
-<tr id="i37" class="rowColor">
+<tr id="i41" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
boolean succ,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#waitForUpdates--">waitForUpdates</a></span>()</code> </td>
+</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -462,7 +489,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>FIXED_OVERHEAD</h4>
-<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.50">FIXED_OVERHEAD</a></pre>
+<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.52">FIXED_OVERHEAD</a></pre>
</li>
</ul>
<a name="DEEP_OVERHEAD">
@@ -471,7 +498,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>DEEP_OVERHEAD</h4>
-<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.55">DEEP_OVERHEAD</a></pre>
+<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.57">DEEP_OVERHEAD</a></pre>
</li>
</ul>
<a name="cellSet">
@@ -480,7 +507,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>cellSet</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.58">cellSet</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.61">cellSet</a></pre>
</li>
</ul>
<a name="comparator">
@@ -489,7 +516,16 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>comparator</h4>
-<pre>private final <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.59">comparator</a></pre>
+<pre>private final <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.62">comparator</a></pre>
+</li>
+</ul>
+<a name="updatesLock">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updatesLock</h4>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.63">updatesLock</a></pre>
</li>
</ul>
<a name="minSequenceId">
@@ -498,7 +534,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>minSequenceId</h4>
-<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.60">minSequenceId</a></pre>
+<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.64">minSequenceId</a></pre>
</li>
</ul>
<a name="memStoreLAB">
@@ -507,7 +543,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>memStoreLAB</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.61">memStoreLAB</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.65">memStoreLAB</a></pre>
</li>
</ul>
<a name="memStoreSizing">
@@ -516,7 +552,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>memStoreSizing</h4>
-<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.64">memStoreSizing</a></pre>
+<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.68">memStoreSizing</a></pre>
</li>
</ul>
<a name="timeRangeTracker">
@@ -525,7 +561,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>timeRangeTracker</h4>
-<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TimeRangeTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.65">timeRangeTracker</a></pre>
+<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TimeRangeTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.69">timeRangeTracker</a></pre>
</li>
</ul>
<a name="tagsPresent">
@@ -534,7 +570,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockListLast">
<li class="blockList">
<h4>tagsPresent</h4>
-<pre>protected volatile boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.66">tagsPresent</a></pre>
+<pre>protected volatile boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.70">tagsPresent</a></pre>
</li>
</ul>
</li>
@@ -551,7 +587,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>Segment</h4>
-<pre>protected <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.70">Segment</a>(<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> comparator,
+<pre>protected <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.74">Segment</a>(<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> comparator,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TimeRangeTracker</a> trt)</pre>
</li>
</ul>
@@ -561,7 +597,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>Segment</h4>
-<pre>protected <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.78">Segment</a>(<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> comparator,
+<pre>protected <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.82">Segment</a>(<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> comparator,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a>> segments,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TimeRangeTracker</a> trt)</pre>
</li>
@@ -572,7 +608,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>Segment</h4>
-<pre>protected <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.97">Segment</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> cellSet,
+<pre>protected <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.102">Segment</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> cellSet,
<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> comparator,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a> memStoreLAB,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TimeRangeTracker</a> trt)</pre>
@@ -584,7 +620,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockListLast">
<li class="blockList">
<h4>Segment</h4>
-<pre>protected <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.109">Segment</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a> segment)</pre>
+<pre>protected <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.115">Segment</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a> segment)</pre>
</li>
</ul>
</li>
@@ -601,7 +637,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getScanner</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.123">getScanner</a>(long readPoint)</pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.130">getScanner</a>(long readPoint)</pre>
<div class="block">Creates the scanner for the given read point</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -615,7 +651,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getScanners</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.127">getScanners</a>(long readPoint)</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.134">getScanners</a>(long readPoint)</pre>
</li>
</ul>
<a name="isEmpty--">
@@ -624,7 +660,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>isEmpty</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.134">isEmpty</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.141">isEmpty</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether the segment has any cells</dd>
@@ -637,7 +673,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getCellsCount</h4>
-<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.141">getCellsCount</a>()</pre>
+<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.148">getCellsCount</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of cells in segment</dd>
@@ -650,7 +686,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.148">close</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.155">close</a>()</pre>
<div class="block">Closing a segment before it is being discarded</div>
</li>
</ul>
@@ -660,7 +696,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>maybeCloneWithAllocator</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.167">maybeCloneWithAllocator</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.174">maybeCloneWithAllocator</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean forceCloneOfBigCell)</pre>
<div class="block">If the segment has a memory allocator the cell is being cloned to this space, and returned;
otherwise the given cell is returned
@@ -681,7 +717,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getCellLength</h4>
-<pre>static int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.185">getCellLength</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</pre>
+<pre>static int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.192">getCellLength</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</pre>
<div class="block">Get cell length after serialized in <a href="../../../../../org/apache/hadoop/hbase/KeyValue.html" title="class in org.apache.hadoop.hbase"><code>KeyValue</code></a></div>
</li>
</ul>
@@ -691,7 +727,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>shouldSeek</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.189">shouldSeek</a>(<a href="../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a> tr,
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.197">shouldSeek</a>(<a href="../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a> tr,
long oldestUnexpiredTS)</pre>
</li>
</ul>
@@ -701,7 +737,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>isTagsPresent</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.195">isTagsPresent</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.203">isTagsPresent</a>()</pre>
</li>
</ul>
<a name="incScannerCount--">
@@ -710,7 +746,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>incScannerCount</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.199">incScannerCount</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.207">incScannerCount</a>()</pre>
</li>
</ul>
<a name="decScannerCount--">
@@ -719,7 +755,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>decScannerCount</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.205">decScannerCount</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.213">decScannerCount</a>()</pre>
</li>
</ul>
<a name="setCellSet-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.CellSet-">
@@ -728,7 +764,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>setCellSet</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.217">setCellSet</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> cellSetOld,
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.225">setCellSet</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> cellSetOld,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> cellSetNew)</pre>
<div class="block">Setting the CellSet of the segment - used only for flat immutable segment for setting
immutable CellSet after its creation in immutable segment constructor</div>
@@ -744,7 +780,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getMemStoreSize</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.223">getMemStoreSize</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.231">getMemStoreSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getMemStoreSize--">getMemStoreSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></code></dd>
@@ -760,7 +796,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getDataSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.228">getDataSize</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.236">getDataSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getDataSize--">getDataSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></code></dd>
@@ -773,7 +809,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getHeapSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.233">getHeapSize</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.241">getHeapSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getHeapSize--">getHeapSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></code></dd>
@@ -786,7 +822,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getOffHeapSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.238">getOffHeapSize</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.246">getOffHeapSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getOffHeapSize--">getOffHeapSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></code></dd>
@@ -799,7 +835,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>incMemStoreSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.243">incMemStoreSize</a>(long delta,
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.251">incMemStoreSize</a>(long delta,
long heapOverhead,
long offHeapOverhead)</pre>
<dl>
@@ -810,13 +846,54 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
</dl>
</li>
</ul>
+<a name="sharedLock--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sharedLock</h4>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.255">sharedLock</a>()</pre>
+</li>
+</ul>
+<a name="sharedUnlock--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sharedUnlock</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.259">sharedUnlock</a>()</pre>
+</li>
+</ul>
+<a name="waitForUpdates--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitForUpdates</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.263">waitForUpdates</a>()</pre>
+</li>
+</ul>
+<a name="compareAndSetDataSize-long-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compareAndSetDataSize</h4>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.270">compareAndSetDataSize</a>(long expected,
+ long updated)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#compareAndSetDataSize-long-long-">compareAndSetDataSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></code></dd>
+</dl>
+</li>
+</ul>
<a name="getMinSequenceId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinSequenceId</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.247">getMinSequenceId</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.274">getMinSequenceId</a>()</pre>
</li>
</ul>
<a name="getTimeRangeTracker--">
@@ -825,7 +902,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getTimeRangeTracker</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TimeRangeTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.251">getTimeRangeTracker</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TimeRangeTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.278">getTimeRangeTracker</a>()</pre>
</li>
</ul>
<a name="last--">
@@ -834,7 +911,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>last</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.256">last</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.283">last</a>()</pre>
</li>
</ul>
<a name="iterator--">
@@ -843,7 +920,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>iterator</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.260">iterator</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.287">iterator</a>()</pre>
</li>
</ul>
<a name="headSet-org.apache.hadoop.hbase.Cell-">
@@ -852,7 +929,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>headSet</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.264">headSet</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstKeyOnRow)</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.291">headSet</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstKeyOnRow)</pre>
</li>
</ul>
<a name="compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">
@@ -861,7 +938,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>compare</h4>
-<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.268">compare</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> left,
+<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.295">compare</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> left,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> right)</pre>
</li>
</ul>
@@ -871,7 +948,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>compareRows</h4>
-<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.272">compareRows</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> left,
+<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.299">compareRows</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> left,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> right)</pre>
</li>
</ul>
@@ -881,7 +958,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getCellSet</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.279">getCellSet</a>()</pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.306">getCellSet</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a set of all cells in the segment</dd>
@@ -894,7 +971,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getComparator</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.287">getComparator</a>()</pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.314">getComparator</a>()</pre>
<div class="block">Returns the Cell comparator used by this segment</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -902,27 +979,29 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
</dl>
</li>
</ul>
-<a name="internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
+<a name="internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>internalAdd</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.291">internalAdd</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.318">internalAdd</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</pre>
</li>
</ul>
-<a name="updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
+<a name="updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateMetaInfo</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.296">updateMetaInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.324">updateMetaInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
boolean succ,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</pre>
</li>
</ul>
<a name="updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
@@ -931,7 +1010,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>updateMetaInfo</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.322">updateMetaInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.354">updateMetaInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
boolean succ,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
</li>
@@ -942,8 +1021,8 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>heapSizeChange</h4>
-<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.330">heapSizeChange</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
- boolean succ)</pre>
+<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.362">heapSizeChange</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ boolean allocated)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The increase in heap size because of this cell addition. This includes this cell POJO's
@@ -957,8 +1036,8 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>offHeapSizeChange</h4>
-<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.347">offHeapSizeChange</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
- boolean succ)</pre>
+<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.379">offHeapSizeChange</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ boolean allocated)</pre>
</li>
</ul>
<a name="indexEntryOnHeapSize-boolean-">
@@ -967,7 +1046,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>indexEntryOnHeapSize</h4>
-<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.364">indexEntryOnHeapSize</a>(boolean onHeap)</pre>
+<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.396">indexEntryOnHeapSize</a>(boolean onHeap)</pre>
</li>
</ul>
<a name="indexEntryOffHeapSize-boolean-">
@@ -976,7 +1055,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>indexEntryOffHeapSize</h4>
-<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.370">indexEntryOffHeapSize</a>(boolean offHeap)</pre>
+<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.402">indexEntryOffHeapSize</a>(boolean offHeap)</pre>
</li>
</ul>
<a name="indexEntrySize--">
@@ -985,7 +1064,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>indexEntrySize</h4>
-<pre>protected abstract long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.376">indexEntrySize</a>()</pre>
+<pre>protected abstract long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.408">indexEntrySize</a>()</pre>
</li>
</ul>
<a name="tailSet-org.apache.hadoop.hbase.Cell-">
@@ -994,7 +1073,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>tailSet</h4>
-<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.383">tailSet</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstCell)</pre>
+<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.415">tailSet</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstCell)</pre>
<div class="block">Returns a subset of the segment cell set, which starts with the given cell</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1010,7 +1089,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getMemStoreLAB</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.388">getMemStoreLAB</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.420">getMemStoreLAB</a>()</pre>
</li>
</ul>
<a name="dump-org.slf4j.Logger-">
@@ -1019,23 +1098,32 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>dump</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.396">dump</a>(org.slf4j.Logger log)</pre>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.428">dump</a>(org.slf4j.Logger log)</pre>
<div class="block">Dumps all cells of the segment into the given log</div>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.403">toString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.435">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
+<a name="getUpdatesLock--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getUpdatesLock</h4>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/Segment.html#line.446">getUpdatesLock</a>()</pre>
+</li>
+</ul>
</li>
</ul>
</li>
[40/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/Cacheable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/Cacheable.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/Cacheable.html
index deef407..4a3c74b 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/Cacheable.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/Cacheable.html
@@ -329,6 +329,15 @@
</td>
</tr>
<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheUtil.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#shouldReplaceExistingCacheBlock-org.apache.hadoop.hbase.io.hfile.BlockCache-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-">shouldReplaceExistingCacheBlock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> blockCache,
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> newBlock)</code>
+<div class="block">Because of the region splitting, it's possible that the split key locate in the middle of a
+ block.</div>
+</td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><span class="typeNameLabel">BlockCacheUtil.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#validateBlockAddition-org.apache.hadoop.hbase.io.hfile.Cacheable-org.apache.hadoop.hbase.io.hfile.Cacheable-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">validateBlockAddition</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> existing,
<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> newBlock,
@@ -478,7 +487,7 @@
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
+<td class="colFirst"><code>private void</code></td>
<td class="colLast"><span class="typeNameLabel">BucketCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#cacheBlockWithWait-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-boolean-boolean-">cacheBlockWithWait</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> cachedItem,
boolean inMemory,
@@ -487,6 +496,13 @@
</td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">BucketCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#cacheBlockWithWaitInternal-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-boolean-boolean-">cacheBlockWithWaitInternal</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> cachedItem,
+ boolean inMemory,
+ boolean wait)</code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="typeNameLabel">BucketCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#returnBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-">returnBlock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> block)</code> </td>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index f742eab..4864878 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -273,12 +273,12 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
index 8411756..e0d6d30 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
@@ -1192,7 +1192,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockListLast">
<li class="blockList">
<h4>NIO_BUFFER_LIMIT</h4>
-<pre>protected static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.562">NIO_BUFFER_LIMIT</a></pre>
+<pre>protected static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.569">NIO_BUFFER_LIMIT</a></pre>
<div class="block">When the read or write buffer size is larger than this limit, i/o will be
done in chunks of this size. Most RPC requests and responses would be
be smaller.</div>
@@ -1407,7 +1407,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>setErrorHandler</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.518">setErrorHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a> handler)</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.525">setErrorHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a> handler)</pre>
<div class="block">Set the handler for calling out of RPC for error conditions.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1423,7 +1423,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>getErrorHandler</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.523">getErrorHandler</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.530">getErrorHandler</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#getErrorHandler--">getErrorHandler</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a></code></dd>
@@ -1436,7 +1436,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>getMetrics</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServer.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.531">getMetrics</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServer.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.538">getMetrics</a>()</pre>
<div class="block">Returns the metrics instance for reporting RPC call statistics</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1450,7 +1450,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>addCallSize</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.536">addCallSize</a>(long diff)</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.543">addCallSize</a>(long diff)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#addCallSize-long-">RpcServerInterface</a></code></span></div>
<div class="block">Add/subtract from the current size of all outstanding calls. Called on setup of a call to add
call total size and then again at end of a call to remove the call size.</div>
@@ -1468,7 +1468,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>authorize</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.547">authorize</a>(org.apache.hadoop.security.UserGroupInformation user,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.554">authorize</a>(org.apache.hadoop.security.UserGroupInformation user,
org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ConnectionHeader connection,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a> addr)
throws org.apache.hadoop.security.authorize.AuthorizationException</pre>
@@ -1489,7 +1489,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>channelRead</h4>
-<pre>protected int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.576">channelRead</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a> channel,
+<pre>protected int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.583">channelRead</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a> channel,
<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> buffer)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">This is a wrapper around <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true#read-java.nio.ByteBuffer-" title="class or interface in java.nio.channels"><code>ReadableByteChannel.read(java.nio.ByteBuffer)</code></a>.
@@ -1515,7 +1515,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>channelIO</h4>
-<pre>private static int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.598">channelIO</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a> readCh,
+<pre>private static int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.605">channelIO</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a> readCh,
<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/WritableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">WritableByteChannel</a> writeCh,
<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> buf)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1541,7 +1541,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>allocateByteBuffToReadInto</h4>
-<pre>static <a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>,<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServer.CallCleanup</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.636">allocateByteBuffToReadInto</a>(<a href="../../../../../org/apache/hadoop/hbase/io/ByteBufferPool.html" title="class in org.apache.hadoop.hbase.io">ByteBufferPool</a> pool,
+<pre>static <a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>,<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServer.CallCleanup</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.643">allocateByteBuffToReadInto</a>(<a href="../../../../../org/apache/hadoop/hbase/io/ByteBufferPool.html" title="class in org.apache.hadoop.hbase.io">ByteBufferPool</a> pool,
int minSizeForPoolUse,
int reqLen)</pre>
<div class="block">This is extracted to a static method for better unit testing. We try to get buffer(s) from pool
@@ -1561,7 +1561,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>getCurrentCall</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a><<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCall.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCall</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.681">getCurrentCall</a>()</pre>
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a><<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCall.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCall</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.688">getCurrentCall</a>()</pre>
<div class="block">Needed for features such as delayed calls. We need to be able to store the current call
so that we can complete it later or ask questions of what is supported by the current ongoing
call.</div>
@@ -1577,7 +1577,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>isInRpcCallContext</h4>
-<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.685">isInRpcCallContext</a>()</pre>
+<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.692">isInRpcCallContext</a>()</pre>
</li>
</ul>
<a name="getRequestUser--">
@@ -1586,7 +1586,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>getRequestUser</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a><<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.694">getRequestUser</a>()</pre>
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a><<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.701">getRequestUser</a>()</pre>
<div class="block">Returns the user credentials associated with the current RPC request or not present if no
credentials were provided.</div>
<dl>
@@ -1601,7 +1601,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>getNumOpenConnections</h4>
-<pre>public abstract int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.703">getNumOpenConnections</a>()</pre>
+<pre>public abstract int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.710">getNumOpenConnections</a>()</pre>
<div class="block">The number of open RPC conections</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -1615,7 +1615,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>getRequestUserName</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.709">getRequestUserName</a>()</pre>
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.716">getRequestUserName</a>()</pre>
<div class="block">Returns the username for any user associated with the current RPC
request or not present if no user is set.</div>
</li>
@@ -1626,7 +1626,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>getRemoteAddress</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.716">getRemoteAddress</a>()</pre>
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.723">getRemoteAddress</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Address of remote client if a request is ongoing, else null</dd>
@@ -1639,7 +1639,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>getServiceAndInterface</h4>
-<pre>protected static <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.725">getServiceAndInterface</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>> services,
+<pre>protected static <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.732">getServiceAndInterface</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>> services,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> serviceName)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1656,7 +1656,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>getServiceInterface</h4>
-<pre>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><?> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.740">getServiceInterface</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>> services,
+<pre>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><?> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.747">getServiceInterface</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>> services,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> serviceName)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1673,7 +1673,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>getService</h4>
-<pre>protected static org.apache.hbase.thirdparty.com.google.protobuf.BlockingService <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.753">getService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>> services,
+<pre>protected static org.apache.hbase.thirdparty.com.google.protobuf.BlockingService <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.760">getService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>> services,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> serviceName)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1690,7 +1690,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>getStatus</h4>
-<pre>protected static <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredRPCHandler.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredRPCHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.761">getStatus</a>()</pre>
+<pre>protected static <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredRPCHandler.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredRPCHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.768">getStatus</a>()</pre>
</li>
</ul>
<a name="getRemoteIp--">
@@ -1699,7 +1699,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>getRemoteIp</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.777">getRemoteIp</a>()</pre>
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.784">getRemoteIp</a>()</pre>
<div class="block">Returns the remote side ip address when invoked inside an RPC
Returns null incase of an error.</div>
<dl>
@@ -1714,7 +1714,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockList">
<li class="blockList">
<h4>getScheduler</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.786">getScheduler</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.793">getScheduler</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#getScheduler--">getScheduler</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a></code></dd>
@@ -1727,7 +1727,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
<ul class="blockListLast">
<li class="blockList">
<h4>setRsRpcServices</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.791">setRsRpcServices</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a> rsRpcServices)</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.798">setRsRpcServices</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a> rsRpcServices)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#setRsRpcServices-org.apache.hadoop.hbase.regionserver.RSRpcServices-">setRsRpcServices</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a></code></dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index 29a79fd..1f90dde 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -349,9 +349,9 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
index bb1360e..e510000 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
@@ -1444,7 +1444,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addRegion-org.apache.hadoop.hbase.regionserver.HRegion-">addRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addToMovedRegions-java.lang.String-org.apache.hadoop.hbase.ServerName-long-">addToMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#checkFileSystem--">checkFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cleanMovedRegions--">cleanMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clearRegionBlockCache-org.apache.hadoop.hbase.regionserver.Region-">clearRegionBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAllRegions-boolean-">closeAllRegions</a
>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAndOfflineRegionForSplitOrMerge-java.util.List-">closeAndOfflineRegionForSplitOrMerge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeRegion-java.lang.String-boolean-org.apache.hadoop.hbase.ServerName-">closeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#constructRegionServer-java.lang.Class-org.apache.hadoop.conf.Configuration-">constructRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#convertThrowableToIOE-java.lang.Throwable-java.lang.String-">convertThrowableToIOE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createClusterConnection--">createClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createConnection-org.apache.hadoop.conf.Configuration-">createConnection</a>, <
a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionLoad-java.lang.String-">createRegionLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub--">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub-boolean-">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#execRegionServerService-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest-">execRegionServerService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executeProcedure-long-org.apache.hadoop.hbase.procedure2.RSProcedureCallable-">executeProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCacheConfig
--">getCacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getChoreService--">getChoreService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterConnection--">getClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterId--">getClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionPressure--">getCompactionPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionRequestor--">getCompactionRequestor</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactSplitThread--">getCompactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfig
urationManager--">getConfigurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConnection--">getConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCoordinatedStateManager--">getCoordinatedStateManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getEventLoopGroupConfig--">getEventLoopGroupConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getExecutorService--">getExecutorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFavoredNodesForRegion-java.lang.String-">getFavoredNodesForRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFileSystem--">getFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushPressure--">getFlushPressure</a>, <a href="../../../../../org/apache/had
oop/hbase/regionserver/HRegionServer.html#getFlushRequester--">getFlushRequester</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushThroughputController--">getFlushThroughputController</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFsTableDescriptors--">getFsTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getHeapMemoryManager--">getHeapMemoryManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getInfoServer--">getInfoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLastSequenceId-byte:A-">getLastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLeases--">getLeases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMasterAddressTracker--">getMasterAddressTracker</a>, <a href="../.
./../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetaTableLocator--">getMetaTableLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMostLoadedRegions--">getMostLoadedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNonceManager--">getNonceManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNumberOfOnlineRegions--">getNumberOfOnlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegion-byte:A-">getOnlineRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegionsLocalContext--">getOnlineRegionsLocalContext</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineTables--">getOnlineTabl
es</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-byte:A-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-java.lang.String-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionBlockLocations-java.lang.String-">getRegionBlockLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-byte:A-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions--">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions-org.apache.hadoop.hbase.TableName-">getRegions</a>, <a href="../../../../../org/apache/hado
op/hbase/regionserver/HRegionServer.html#getRegionServerAccounting--">getRegionServerAccounting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessorHost--">getRegionServerCoprocessorHost</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessors--">getRegionServerCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerMetrics--">getRegionServerMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerSpaceQuotaManager--">getRegionServerSpaceQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionsInTransitionInRS--">getRegionsInTransitionInRS</a>, <a href="../../../../.
./org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSinkService--">getReplicationSinkService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSourceService--">getReplicationSourceService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRootDir--">getRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRpcServer--">getRpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRSRpcServices--">getRSRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getSecureBulkLoadManager--">getSecureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getStartcode--">getStartcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getThreadWakeFrequency--">getThreadWakeFrequency</a>, <a
href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWAL-org.apache.hadoop.hbase.client.RegionInfo-">getWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALFileSystem--">getWALFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalRoller--">getWalRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALRootDir--">getWALRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALs--">getWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">handleReportForDutyResponse</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeMemStoreChunkCreator--">initializeMemStoreChunkCreator</a>, <a hr
ef="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isAborted--">isAborted</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isClusterUp--">isClusterUp</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isOnline--">isOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isShutDown--">isShutDown</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopped--">isStopped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopping--">isStopping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#kill--">kill</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegionCleanerPeriod--">movedRegionCleanerPeriod</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onConfigurationChange-org.apache
.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionLock-java.util.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#remoteProcedureComplete-long-java.lang.Throwable-">remoteProcedureComplete</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeRegion-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.ServerName-">removeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportFileArchivalForQuotas-org.apache.hadoop.hbase.TableName-java.util.Collection-">reportFileArchivalForQuotas</a>, <a href=
"../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionSizesForQuotas-org.apache.hadoop.hbase.quotas.RegionSizeStore-">reportRegionSizesForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">sendShutdownInterrupt</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupClusterConnection--">setupClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-boolean-org.apache.hadoop.hbase.security.User-">stop</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/regions
erver/HRegionServer.html#tryRegionServerReport-long-long-">tryRegionServerReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#unassign-byte:A-">unassign</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateConfiguration--">updateConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateRegionFavoredNodesMapping-java.lang.String-java.util.List-">updateRegionFavoredNodesMapping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForServerOnline--">waitForServerOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRollRequestFinished--">walRollRequestFinished</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addRegion-org.apache.hadoop.hbase.regionserver.HRegion-">addRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addToMovedRegions-java.lang.String-org.apache.hadoop.hbase.ServerName-long-">addToMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#checkFileSystem--">checkFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cleanMovedRegions--">cleanMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clearRegionBlockCache-org.apache.hadoop.hbase.regionserver.Region-">clearRegionBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAllRegions-boolean-">closeAllRegions</a
>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAndOfflineRegionForSplitOrMerge-java.util.List-">closeAndOfflineRegionForSplitOrMerge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeRegion-java.lang.String-boolean-org.apache.hadoop.hbase.ServerName-">closeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#constructRegionServer-java.lang.Class-org.apache.hadoop.conf.Configuration-">constructRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#convertThrowableToIOE-java.lang.Throwable-java.lang.String-">convertThrowableToIOE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createClusterConnection--">createClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createConnection-org.apache.hadoop.conf.Configuration-">createConnection</a>, <
a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionLoad-java.lang.String-">createRegionLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub--">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub-boolean-">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#execRegionServerService-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest-">execRegionServerService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executeProcedure-long-org.apache.hadoop.hbase.procedure2.RSProcedureCallable-">executeProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCacheConfig
--">getCacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getChoreService--">getChoreService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterConnection--">getClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterId--">getClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionPressure--">getCompactionPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionRequestor--">getCompactionRequestor</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactSplitThread--">getCompactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfig
urationManager--">getConfigurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConnection--">getConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCoordinatedStateManager--">getCoordinatedStateManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getEventLoopGroupConfig--">getEventLoopGroupConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getExecutorService--">getExecutorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFavoredNodesForRegion-java.lang.String-">getFavoredNodesForRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFileSystem--">getFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushPressure--">getFlushPressure</a>, <a href="../../../../../org/apache/had
oop/hbase/regionserver/HRegionServer.html#getFlushRequester--">getFlushRequester</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushThroughputController--">getFlushThroughputController</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFsTableDescriptors--">getFsTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getHeapMemoryManager--">getHeapMemoryManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getInfoServer--">getInfoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLastSequenceId-byte:A-">getLastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLeases--">getLeases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMasterAddressTracker--">getMasterAddressTracker</a>, <a href="../.
./../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetaTableLocator--">getMetaTableLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMostLoadedRegions--">getMostLoadedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNonceManager--">getNonceManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNumberOfOnlineRegions--">getNumberOfOnlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegion-byte:A-">getOnlineRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegionsLocalContext--">getOnlineRegionsLocalContext</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineTables--">getOnlineTabl
es</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-byte:A-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-java.lang.String-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionBlockLocations-java.lang.String-">getRegionBlockLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-byte:A-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions--">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions-org.apache.hadoop.hbase.TableName-">getRegions</a>, <a href="../../../../../org/apache/hado
op/hbase/regionserver/HRegionServer.html#getRegionServerAccounting--">getRegionServerAccounting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessorHost--">getRegionServerCoprocessorHost</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessors--">getRegionServerCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerMetrics--">getRegionServerMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerSpaceQuotaManager--">getRegionServerSpaceQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionsInTransitionInRS--">getRegionsInTransitionInRS</a>, <a href="../../../../.
./org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSinkService--">getReplicationSinkService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSourceService--">getReplicationSourceService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRootDir--">getRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRpcServer--">getRpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRSRpcServices--">getRSRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getSecureBulkLoadManager--">getSecureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getStartcode--">getStartcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getThreadWakeFrequency--">getThreadWakeFrequency</a>, <a
href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWAL-org.apache.hadoop.hbase.client.RegionInfo-">getWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALFileSystem--">getWALFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalGroupsReplicationStatus--">getWalGroupsReplicationStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalRoller--">getWalRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALRootDir--">getWALRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALs--">getWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">handleReportForDutyResponse</a>, <a href
="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeMemStoreChunkCreator--">initializeMemStoreChunkCreator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isAborted--">isAborted</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isClusterUp--">isClusterUp</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isOnline--">isOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isShutDown--">isShutDown</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopped--">isStopped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopping--">isStopping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#kill--">kill</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegionCleanerPeri
od--">movedRegionCleanerPeriod</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionLock-java.util.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#remoteProcedureComplete-long-java.lang.Throwable-">remoteProcedureComplete</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeRegion-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.ServerName-">removeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserv
er/HRegionServer.html#reportFileArchivalForQuotas-org.apache.hadoop.hbase.TableName-java.util.Collection-">reportFileArchivalForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionSizesForQuotas-org.apache.hadoop.hbase.quotas.RegionSizeStore-">reportRegionSizesForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">sendShutdownInterrupt</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupClusterConnection--">setupClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-boolean-org.apache.hadoop.hbase.security.User-">stop</a>, <a href="../.
./../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tryRegionServerReport-long-long-">tryRegionServerReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#unassign-byte:A-">unassign</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateConfiguration--">updateConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateRegionFavoredNodesMapping-java.lang.String-java.util.List-">updateRegionFavoredNodesMapping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForServerOnline--">waitForServerOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRollRequestFinished--">walRollRequestFinished</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.HasThread">
[47/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index 2f39ae8..7d256c8 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,8 +25,8 @@ under the License.
<language>en-us</language>
<copyright>©2007 - 2018 The Apache Software Foundation</copyright>
<item>
- <title>File: 3688,
- Errors: 15817,
+ <title>File: 3690,
+ Errors: 15801,
Warnings: 0,
Infos: 0
</title>
@@ -8838,6 +8838,20 @@ under the License.
</tr>
<tr>
<td>
+ <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.replication.TestReplicationMetricsforUI.java">org/apache/hadoop/hbase/replication/TestReplicationMetricsforUI.java</a>
+ </td>
+ <td>
+ 0
+ </td>
+ <td>
+ 0
+ </td>
+ <td>
+ 0
+ </td>
+ </tr>
+ <tr>
+ <td>
<a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.HBaseCluster.java">org/apache/hadoop/hbase/HBaseCluster.java</a>
</td>
<td>
@@ -8959,7 +8973,7 @@ under the License.
0
</td>
<td>
- 7
+ 6
</td>
</tr>
<tr>
@@ -13103,7 +13117,7 @@ under the License.
0
</td>
<td>
- 38
+ 36
</td>
</tr>
<tr>
@@ -14125,7 +14139,7 @@ under the License.
0
</td>
<td>
- 4
+ 3
</td>
</tr>
<tr>
@@ -27341,7 +27355,7 @@ under the License.
0
</td>
<td>
- 4
+ 3
</td>
</tr>
<tr>
@@ -28111,7 +28125,7 @@ under the License.
0
</td>
<td>
- 4
+ 0
</td>
</tr>
<tr>
@@ -35545,7 +35559,7 @@ under the License.
0
</td>
<td>
- 8
+ 6
</td>
</tr>
<tr>
@@ -36222,6 +36236,20 @@ under the License.
</tr>
<tr>
<td>
+ <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.java</a>
+ </td>
+ <td>
+ 0
+ </td>
+ <td>
+ 0
+ </td>
+ <td>
+ 0
+ </td>
+ </tr>
+ <tr>
+ <td>
<a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.util.IncrementingEnvironmentEdge.java">org/apache/hadoop/hbase/util/IncrementingEnvironmentEdge.java</a>
</td>
<td>
@@ -39157,7 +39185,7 @@ under the License.
0
</td>
<td>
- 39
+ 38
</td>
</tr>
<tr>
@@ -48733,7 +48761,7 @@ under the License.
0
</td>
<td>
- 218
+ 214
</td>
</tr>
<tr>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index 422d15f..11da242 100644
--- a/coc.html
+++ b/coc.html
@@ -7,7 +7,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta name="Date-Revision-yyyymmdd" content="20180630" />
+ <meta name="Date-Revision-yyyymmdd" content="20180703" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase –
Code of Conduct Policy
@@ -375,7 +375,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-06-30</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-07-03</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index fcdbf47..ead57dc 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -7,7 +7,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta name="Date-Revision-yyyymmdd" content="20180630" />
+ <meta name="Date-Revision-yyyymmdd" content="20180703" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Project Dependencies</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -440,7 +440,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-06-30</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-07-03</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 77dccba..ba4c725 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -7,7 +7,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta name="Date-Revision-yyyymmdd" content="20180630" />
+ <meta name="Date-Revision-yyyymmdd" content="20180703" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Reactor Dependency Convergence</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -905,7 +905,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-06-30</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-07-03</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index 02b2f38..5a88bbb 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -7,7 +7,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta name="Date-Revision-yyyymmdd" content="20180630" />
+ <meta name="Date-Revision-yyyymmdd" content="20180703" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Dependency Information</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -313,7 +313,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-06-30</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-07-03</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index d99af0b..1809da5 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -7,7 +7,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta name="Date-Revision-yyyymmdd" content="20180630" />
+ <meta name="Date-Revision-yyyymmdd" content="20180703" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Project Dependency Management</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -1011,7 +1011,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-06-30</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-07-03</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-frame.html b/devapidocs/allclasses-frame.html
index 00cea22..f1cf659 100644
--- a/devapidocs/allclasses-frame.html
+++ b/devapidocs/allclasses-frame.html
@@ -2191,6 +2191,12 @@
<li><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">ReplicationSourceShipper.WorkerState</a></li>
<li><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALActionListener.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">ReplicationSourceWALActionListener</a></li>
<li><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">ReplicationSourceWALReader</a></li>
+<li><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">ReplicationStatus</a></li>
+<li><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">ReplicationStatus.ReplicationStatusBuilder</a></li>
+<li><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame">ReplicationStatusTmpl</a></li>
+<li><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame">ReplicationStatusTmpl.ImplData</a></li>
+<li><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame"><span class="interfaceName">ReplicationStatusTmpl.Intf</span></a></li>
+<li><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame">ReplicationStatusTmplImpl</a></li>
<li><a href="org/apache/hadoop/hbase/replication/ReplicationStorageFactory.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">ReplicationStorageFactory</a></li>
<li><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">ReplicationSyncUp</a></li>
<li><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationThrottler.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">ReplicationThrottler</a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-noframe.html b/devapidocs/allclasses-noframe.html
index bf8703b..71ea0c1 100644
--- a/devapidocs/allclasses-noframe.html
+++ b/devapidocs/allclasses-noframe.html
@@ -2191,6 +2191,12 @@
<li><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper.WorkerState</a></li>
<li><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALActionListener.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceWALActionListener</a></li>
<li><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceWALReader</a></li>
+<li><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></li>
+<li><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></li>
+<li><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl</a></li>
+<li><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></li>
+<li><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="interfaceName">ReplicationStatusTmpl.Intf</span></a></li>
+<li><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmplImpl</a></li>
<li><a href="org/apache/hadoop/hbase/replication/ReplicationStorageFactory.html" title="class in org.apache.hadoop.hbase.replication">ReplicationStorageFactory</a></li>
<li><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSyncUp</a></li>
<li><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationThrottler.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationThrottler</a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 9370278..8d968cd 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3782,21 +3782,21 @@
<!-- -->
</a><code>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Sat Jun 30 17:13:05 UTC 2018"</code></td>
+<td class="colLast"><code>"Tue Jul 3 19:56:40 UTC 2018"</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
<!-- -->
</a><code>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"34e23fe425e62f240a65c435d41adfbbe211522d"</code></td>
+<td class="colLast"><code>"0f23784182ab88649de340d75804e0ff20dcd0fc"</code></td>
</tr>
<tr class="altColor">
<td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
<!-- -->
</a><code>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"347800161f61d858e14faba963857be6"</code></td>
+<td class="colLast"><code>"2d59bf0d31a96d5e7e8ecd09c2fa180c"</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
@@ -17835,11 +17835,11 @@
<td class="colLast"><code>"hbase.hregion.compacting.memstore.type"</code></td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.CompactingMemStore.IN_MEMORY_FLUSH_THRESHOLD_FACTOR_DEFAULT">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.CompactingMemStore.IN_MEMORY_FLUSH_MULTIPLIER">
<!-- -->
-</a><code>private static final double</code></td>
-<td><code><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#IN_MEMORY_FLUSH_THRESHOLD_FACTOR_DEFAULT">IN_MEMORY_FLUSH_THRESHOLD_FACTOR_DEFAULT</a></code></td>
-<td class="colLast"><code>0.014</code></td>
+</a><code>private static final int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#IN_MEMORY_FLUSH_MULTIPLIER">IN_MEMORY_FLUSH_MULTIPLIER</a></code></td>
+<td class="colLast"><code>1</code></td>
</tr>
<tr class="altColor">
<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.CompactingMemStore.IN_MEMORY_FLUSH_THRESHOLD_FACTOR_KEY">
@@ -23773,6 +23773,25 @@
</li>
<li class="blockList">
<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceShipper.DEFAULT_TIMEOUT">
+<!-- -->
+</a><code>private final int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#DEFAULT_TIMEOUT">DEFAULT_TIMEOUT</a></code></td>
+<td class="colLast"><code>20000</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
<caption><span>org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSyncUp</a></span><span class="tabEnd"> </span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
[45/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index f7aa217..1e43e89 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -167,10 +167,10 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/class-use/Cell.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/Cell.html b/devapidocs/org/apache/hadoop/hbase/class-use/Cell.html
index 510c7b7..bd11d5f 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/Cell.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/Cell.html
@@ -5351,7 +5351,8 @@ service.</div>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CellChunkImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#copyCellIntoMSLAB-org.apache.hadoop.hbase.Cell-">copyCellIntoMSLAB</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">CellChunkImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#copyCellIntoMSLAB-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">copyCellIntoMSLAB</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
@@ -5531,21 +5532,22 @@ service.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean forceCloneOfBigCell)</code>
<div class="block">If the segment has a memory allocator the cell is being cloned to this space, and returned;
- Otherwise the given cell is returned
+ otherwise the given cell is returned
When a cell's size is too big (bigger than maxAlloc), it is not allocated on MSLAB.</div>
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean forceCloneOfBigCell)</code>
<div class="block">If the segment has a memory allocator the cell is being cloned to this space, and returned;
- otherwise the given cell is returned
+ Otherwise the given cell is returned
When a cell's size is too big (bigger than maxAlloc), it is not allocated on MSLAB.</div>
</td>
@@ -6043,9 +6045,10 @@ service.</div>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#add-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">add</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colLast"><span class="typeNameLabel">MutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#add-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">add</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing)</code>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing,
+ boolean sizeAddedPreOperation)</code>
<div class="block">Adds the given cell into the segment</div>
</td>
</tr>
@@ -6154,11 +6157,19 @@ service.</div>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">CompactingMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#checkAndAddToActiveSize-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">checkAndAddToActiveSize</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code>
+<div class="block">Check whether anything need to be done based on the current active set size.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><span class="typeNameLabel">StoreFileReader.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html#checkGeneralBloomFilter-byte:A-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.util.BloomFilter-">checkGeneralBloomFilter</a></span>(byte[] key,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> kvKey,
<a href="../../../../../org/apache/hadoop/hbase/util/BloomFilter.html" title="interface in org.apache.hadoop.hbase.util">BloomFilter</a> bloomFilter)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><span class="typeNameLabel">StoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#checkScanOrder-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.CellComparator-">checkScanOrder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> prevKV,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> kv,
@@ -6166,70 +6177,71 @@ service.</div>
<div class="block">Check whether scan as expected order</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><span class="typeNameLabel">ReversedStoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.html#checkScanOrder-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.CellComparator-">checkScanOrder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> prevKV,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> kv,
<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> comparator)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="typeNameLabel">CompositeImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> left,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> right)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="typeNameLabel">KeyValueHeap.KVScannerComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.KVScannerComparator.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> left,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> right)</code>
<div class="block">Compares two KeyValue</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> left,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> right)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="typeNameLabel">CompositeImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> left,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> right)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="typeNameLabel">ReversedKeyValueHeap.ReversedKVScannerComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedKeyValueHeap.ReversedKVScannerComparator.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> left,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> right)</code>
<div class="block">Compares rows of two KeyValue</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> left,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> right)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">MemStoreLAB.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#copyCellInto-org.apache.hadoop.hbase.Cell-">copyCellInto</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code>
<div class="block">Allocates slice in this LAB and copy the passed Cell into this area.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">ImmutableMemStoreLAB.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableMemStoreLAB.html#copyCellInto-org.apache.hadoop.hbase.Cell-">copyCellInto</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">MemStoreLABImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#copyCellInto-org.apache.hadoop.hbase.Cell-">copyCellInto</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">MemStoreLABImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#copyCellInto-org.apache.hadoop.hbase.Cell-int-">copyCellInto</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
int maxAlloc)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CellChunkImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#copyCellIntoMSLAB-org.apache.hadoop.hbase.Cell-">copyCellIntoMSLAB</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">CellChunkImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#copyCellIntoMSLAB-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">copyCellIntoMSLAB</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">MemStoreLABImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#copyToChunkCell-org.apache.hadoop.hbase.Cell-java.nio.ByteBuffer-int-int-">copyToChunkCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> buf,
@@ -6239,16 +6251,36 @@ service.</div>
out of it</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#deepCopyIfNeeded-org.apache.hadoop.hbase.Cell-">deepCopyIfNeeded</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#doAdd-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">doAdd</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#doAddOrUpsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">doAddOrUpsert</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ long readpoint,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean doAdd)</code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><span class="typeNameLabel">NonLazyKeyValueScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html#doRealSeek-org.apache.hadoop.hbase.regionserver.KeyValueScanner-org.apache.hadoop.hbase.Cell-boolean-">doRealSeek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a> scanner,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> kv,
boolean forward)</code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#doUpsert-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">doUpsert</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ long readpoint,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
<td class="colLast"><span class="typeNameLabel">MobReferenceOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MobReferenceOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
@@ -6388,7 +6420,7 @@ service.</div>
<tr class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#heapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">heapSizeChange</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
- boolean succ)</code> </td>
+ boolean allocated)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
@@ -6410,19 +6442,22 @@ service.</div>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">CompositeImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colLast"><span class="typeNameLabel">CompositeImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">internalAdd</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> toAdd,
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">internalAdd</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#internalAdd-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> toAdd,
boolean mslabUsed,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
</tr>
@@ -6459,21 +6494,22 @@ service.</div>
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean forceCloneOfBigCell)</code>
<div class="block">If the segment has a memory allocator the cell is being cloned to this space, and returned;
- Otherwise the given cell is returned
+ otherwise the given cell is returned
When a cell's size is too big (bigger than maxAlloc), it is not allocated on MSLAB.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean forceCloneOfBigCell)</code>
<div class="block">If the segment has a memory allocator the cell is being cloned to this space, and returned;
- otherwise the given cell is returned
+ Otherwise the given cell is returned
When a cell's size is too big (bigger than maxAlloc), it is not allocated on MSLAB.</div>
</td>
@@ -6504,7 +6540,7 @@ service.</div>
<tr class="altColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#offHeapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">offHeapSizeChange</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
- boolean succ)</code> </td>
+ boolean allocated)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private void</code></td>
@@ -6561,11 +6597,35 @@ service.</div>
</td>
</tr>
<tr class="altColor">
+<td class="colFirst"><code>protected abstract boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code>
+<div class="block">Issue any synchronization and test needed before applying the update</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">CompactingMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code>
+<div class="block">Issue any synchronization and test needed before applying the update
+ For compacting memstore this means checking the update can increase the size without
+ overflow</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">DefaultMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">CellFlatMap.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CellFlatMap.html#put-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">put</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> k,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> v)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">HMobStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#readCell-java.util.List-java.lang.String-org.apache.hadoop.hbase.Cell-boolean-long-boolean-">readCell</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.fs.Path> locations,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> fileName,
@@ -6576,7 +6636,7 @@ service.</div>
<div class="block">Reads the cell from a mob file.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">HRegion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#reckonDelta-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-byte:A-long-org.apache.hadoop.hbase.client.Mutation-java.util.function.Function-">reckonDelta</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> delta,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentCell,
@@ -6585,7 +6645,7 @@ service.</div>
<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a> mutation,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>,byte[]> supplier)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">KeyValueHeap.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#requestSeek-org.apache.hadoop.hbase.Cell-boolean-boolean-">requestSeek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key,
boolean forward,
@@ -6595,13 +6655,13 @@ service.</div>
row/column combination specified by the kv parameter.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">ReversedKeyValueHeap.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedKeyValueHeap.html#requestSeek-org.apache.hadoop.hbase.Cell-boolean-boolean-">requestSeek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key,
boolean forward,
boolean useBloom)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">KeyValueScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#requestSeek-org.apache.hadoop.hbase.Cell-boolean-boolean-">requestSeek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> kv,
boolean forward,
@@ -6611,19 +6671,19 @@ service.</div>
row/column combination specified by the kv parameter.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">SegmentScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SegmentScanner.html#requestSeek-org.apache.hadoop.hbase.Cell-boolean-boolean-">requestSeek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c,
boolean forward,
boolean useBloom)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">NonLazyKeyValueScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html#requestSeek-org.apache.hadoop.hbase.Cell-boolean-boolean-">requestSeek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> kv,
boolean forward,
boolean useBloom)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">StoreFileScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileScanner.html#requestSeek-org.apache.hadoop.hbase.Cell-boolean-boolean-">requestSeek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> kv,
boolean forward,
@@ -6631,62 +6691,62 @@ service.</div>
<div class="block">Pretend we have done a seek but don't do it yet, if possible.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">KeyValueHeap.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#reseek-org.apache.hadoop.hbase.Cell-">reseek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> seekKey)</code>
<div class="block">This function is identical to the <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#seek-org.apache.hadoop.hbase.Cell-"><code>KeyValueHeap.seek(Cell)</code></a> function except
that scanner.seek(seekKey) is changed to scanner.reseek(seekKey).</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">ReversedKeyValueHeap.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedKeyValueHeap.html#reseek-org.apache.hadoop.hbase.Cell-">reseek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> seekKey)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">KeyValueScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#reseek-org.apache.hadoop.hbase.Cell-">reseek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key)</code>
<div class="block">Reseek the scanner at or after the specified KeyValue.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">SegmentScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SegmentScanner.html#reseek-org.apache.hadoop.hbase.Cell-">reseek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code>
<div class="block">Reseek the scanner at or after the specified KeyValue.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">StoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#reseek-org.apache.hadoop.hbase.Cell-">reseek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> kv)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">StoreFileScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileScanner.html#reseek-org.apache.hadoop.hbase.Cell-">reseek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">SnapshotSegmentScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SnapshotSegmentScanner.html#reseek-org.apache.hadoop.hbase.Cell-">reseek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> seekCell)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">ReversedStoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.html#reseek-org.apache.hadoop.hbase.Cell-">reseek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> kv)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>(package private) static boolean</code></td>
<td class="colLast"><span class="typeNameLabel">StoreFileScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileScanner.html#reseekAtOrAfter-org.apache.hadoop.hbase.io.hfile.HFileScanner-org.apache.hadoop.hbase.Cell-">reseekAtOrAfter</a></span>(<a href="../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileScanner</a> s,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> k)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><span class="typeNameLabel">StoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#resetQueryMatcher-org.apache.hadoop.hbase.Cell-">resetQueryMatcher</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> lastTopKey)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">HMobStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#resolve-org.apache.hadoop.hbase.Cell-boolean-">resolve</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> reference,
boolean cacheBlocks)</code>
<div class="block">Reads the cell from the mob file, and the read point does not count.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">HMobStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#resolve-org.apache.hadoop.hbase.Cell-boolean-long-boolean-">resolve</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> reference,
boolean cacheBlocks,
@@ -6695,7 +6755,7 @@ service.</div>
<div class="block">Reads the cell from the mob file.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><span class="typeNameLabel">HRegion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#restoreEdit-org.apache.hadoop.hbase.regionserver.HStore-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">restoreEdit</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a> s,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
@@ -6703,84 +6763,84 @@ service.</div>
<div class="block">Used by tests</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><span class="typeNameLabel">StripeMultiFileWriter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StripeMultiFileWriter.html#sanityCheckLeft-byte:A-org.apache.hadoop.hbase.Cell-">sanityCheckLeft</a></span>(byte[] left,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code>
<div class="block">Subclasses can call this method to make sure the first KV is within multi-writer range.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><span class="typeNameLabel">StripeMultiFileWriter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StripeMultiFileWriter.html#sanityCheckRight-byte:A-org.apache.hadoop.hbase.Cell-">sanityCheckRight</a></span>(byte[] right,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code>
<div class="block">Subclasses can call this method to make sure the last KV is within multi-writer range.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">KeyValueHeap.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#seek-org.apache.hadoop.hbase.Cell-">seek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> seekKey)</code>
<div class="block">Seeks all scanners at or below the specified seek key.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">ReversedKeyValueHeap.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedKeyValueHeap.html#seek-org.apache.hadoop.hbase.Cell-">seek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> seekKey)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">KeyValueScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#seek-org.apache.hadoop.hbase.Cell-">seek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key)</code>
<div class="block">Seek the scanner at or after the specified KeyValue.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">SegmentScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SegmentScanner.html#seek-org.apache.hadoop.hbase.Cell-">seek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code>
<div class="block">Seek the scanner at or after the specified Cell.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">StoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seek-org.apache.hadoop.hbase.Cell-">seek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">StoreFileScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileScanner.html#seek-org.apache.hadoop.hbase.Cell-">seek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">SnapshotSegmentScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SnapshotSegmentScanner.html#seek-org.apache.hadoop.hbase.Cell-">seek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> seekCell)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">ReversedStoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.html#seek-org.apache.hadoop.hbase.Cell-">seek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><span class="typeNameLabel">StoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekAsDirection-org.apache.hadoop.hbase.Cell-">seekAsDirection</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> kv)</code>
<div class="block">Do a reseek in a normal StoreScanner(scan forward)</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><span class="typeNameLabel">ReversedStoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.html#seekAsDirection-org.apache.hadoop.hbase.Cell-">seekAsDirection</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> kv)</code>
<div class="block">Do a backwardSeek in a reversed StoreScanner(scan backward)</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><span class="typeNameLabel">StoreFileScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileScanner.html#seekAtOrAfter-org.apache.hadoop.hbase.io.hfile.HFileScanner-org.apache.hadoop.hbase.Cell-">seekAtOrAfter</a></span>(<a href="../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileScanner</a> s,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> k)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><span class="typeNameLabel">StoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekOrSkipToNextColumn-org.apache.hadoop.hbase.Cell-">seekOrSkipToNextColumn</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><span class="typeNameLabel">StoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekOrSkipToNextRow-org.apache.hadoop.hbase.Cell-">seekOrSkipToNextRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><span class="typeNameLabel">StoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekScanners-java.util.List-org.apache.hadoop.hbase.Cell-boolean-boolean-">seekScanners</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> scanners,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> seekKey,
@@ -6789,63 +6849,69 @@ service.</div>
<div class="block">Seek the specified scanners with the given key</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><span class="typeNameLabel">ReversedStoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.html#seekScanners-java.util.List-org.apache.hadoop.hbase.Cell-boolean-boolean-">seekScanners</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> scanners,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> seekKey,
boolean isLazy,
boolean isParallelSeek)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><span class="typeNameLabel">StoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekToNextRow-org.apache.hadoop.hbase.Cell-">seekToNextRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><span class="typeNameLabel">ReversedStoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.html#seekToNextRow-org.apache.hadoop.hbase.Cell-">seekToNextRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> kv)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">NonReversedNonLazyKeyValueScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonReversedNonLazyKeyValueScanner.html#seekToPreviousRow-org.apache.hadoop.hbase.Cell-">seekToPreviousRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">ReversedKeyValueHeap.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedKeyValueHeap.html#seekToPreviousRow-org.apache.hadoop.hbase.Cell-">seekToPreviousRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> seekKey)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">KeyValueScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#seekToPreviousRow-org.apache.hadoop.hbase.Cell-">seekToPreviousRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key)</code>
<div class="block">Seek the scanner at the first Cell of the row which is the previous row
of specified key</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">SegmentScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SegmentScanner.html#seekToPreviousRow-org.apache.hadoop.hbase.Cell-">seekToPreviousRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code>
<div class="block">Seek the scanner at the first Cell of the row which is the previous row
of specified key</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">StoreFileScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileScanner.html#seekToPreviousRow-org.apache.hadoop.hbase.Cell-">seekToPreviousRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> originalKey)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">ReversedStoreScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.html#seekToPreviousRow-org.apache.hadoop.hbase.Cell-">seekToPreviousRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><span class="typeNameLabel">StoreFileScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileScanner.html#setCurrentCell-org.apache.hadoop.hbase.Cell-">setCurrentCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> newVal)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><span class="typeNameLabel">ScannerContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html#setLastPeekedCell-org.apache.hadoop.hbase.Cell-">setLastPeekedCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> lastPeekedCell)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">CellFlatMap.CellFlatMapEntry.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CellFlatMap.CellFlatMapEntry.html#setValue-org.apache.hadoop.hbase.Cell-">setValue</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> value)</code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">CompactingMemStore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#shouldFlushInMemory-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">shouldFlushInMemory</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><span class="typeNameLabel">HRegion.RegionScannerImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#shouldStop-org.apache.hadoop.hbase.Cell-">shouldStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentRowCell)</code> </td>
@@ -6959,17 +7025,19 @@ service.</div>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">CompositeImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+<td class="colLast"><span class="typeNameLabel">CompositeImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">updateMetaInfo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
boolean succ,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">updateMetaInfo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
boolean succ,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
@@ -6985,9 +7053,10 @@ service.</div>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#upsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">upsert</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colLast"><span class="typeNameLabel">MutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#upsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">upsert</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
long readpoint,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing)</code> </td>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
</tr>
</tbody>
</table>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
index cd300cc..cae92f5 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -552,24 +552,24 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
index e67b778..329f62f 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
@@ -201,8 +201,8 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.MetaTableOps.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">MetaTableMetrics.MetaTableOps</span></a></li>
<li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.MutationType.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">RegionObserver.MutationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.MetaTableOps.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">MetaTableMetrics.MetaTableOps</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
index ae0124e..ce950b0 100644
--- a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
@@ -104,8 +104,8 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
</ul>
</li>
</ul>
[24/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.html
index f836972..fd055a3 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.html
@@ -257,7 +257,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/regionser
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSource</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#addHFileRefs-org.apache.hadoop.hbase.TableName-byte:A-java.util.List-">addHFileRefs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#enqueueLog-org.apache.hadoop.fs.Path-">enqueueLog</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getCurrentPath--">getCurrentPath</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getPeer--">getPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getQueueId--">getQueueId</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getQueueStorage--">getQueueStorage</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getReplicationEndpoint
--">getReplicationEndpoint</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getServer--">getServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getSourceManager--">getSourceManager</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getSourceMetrics--">getSourceMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getStats--">getStats</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getWALFileLengthProvider--">getWALFileLengthProvider</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#isSourceActive--">isSourceActive</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#postShipEdits-java.util.List-int-">pos
tShipEdits</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#removeWorker-org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceShipper-">removeWorker</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#sleepForRetries-java.lang.String-int-">sleepForRetries</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#startup--">startup</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#terminate-java.lang.String-">terminate</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#terminate-java.lang.String-java.lang.Exception-">terminate</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#terminate-java.lang.String-java.lang.Exception-boolean-">terminate</a>, <a href="../../.
./../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#tryThrottle-int-">tryThrottle</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#uncaughtException-java.lang.Thread-java.lang.Throwable-">uncaughtException</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#addHFileRefs-org.apache.hadoop.hbase.TableName-byte:A-java.util.List-">addHFileRefs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#enqueueLog-org.apache.hadoop.fs.Path-">enqueueLog</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getCurrentPath--">getCurrentPath</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getPeer--">getPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getQueueId--">getQueueId</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getQueueStorage--">getQueueStorage</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getReplicationEndpoint
--">getReplicationEndpoint</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getServer--">getServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getSourceManager--">getSourceManager</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getSourceMetrics--">getSourceMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getStats--">getStats</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getWALFileLengthProvider--">getWALFileLengthProvider</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getWalGroupStatus--">getWalGroupStatus</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#isSourceActive--">isSourceActive
</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#postShipEdits-java.util.List-int-">postShipEdits</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#removeWorker-org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceShipper-">removeWorker</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#sleepForRetries-java.lang.String-int-">sleepForRetries</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#startup--">startup</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#terminate-java.lang.String-">terminate</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#terminate-java.lang.String-java.lang.Exception-">terminate</a>, <a href="../../../../../../org/apache/hadoop
/hbase/replication/regionserver/ReplicationSource.html#terminate-java.lang.String-java.lang.Exception-boolean-">terminate</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#tryThrottle-int-">tryThrottle</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#uncaughtException-java.lang.Thread-java.lang.Throwable-">uncaughtException</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/Replication.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/Replication.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/Replication.html
index ccbbd07..9d52369 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/Replication.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/Replication.html
@@ -624,6 +624,8 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Repli
<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/Replication.html#line.214">getReplicationManager</a>()</pre>
<div class="block">Get the replication sources manager</div>
<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#getReplicationManager--">getReplicationManager</a></code> in interface <code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the manager if replication is enabled, else returns false</dd>
</dl>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html
index fc44bfc..18cea15 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html
@@ -18,8 +18,8 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
@@ -180,7 +180,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
@@ -193,26 +193,32 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
</td>
</tr>
<tr id="i1" class="rowColor">
+<td class="colFirst"><code>(package private) static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#calculateReplicationDelay-long-long-int-">calculateReplicationDelay</a></span>(long ageOfLastShippedOp,
+ long timeStampOfLastShippedOp,
+ int sizeOfLogQueue)</code> </td>
+</tr>
+<tr id="i2" class="altColor">
<td class="colFirst"><code>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ReplicationLoadSink</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#getReplicationLoadSink--">getReplicationLoadSink</a></span>()</code> </td>
</tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ReplicationLoadSource></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#getReplicationLoadSourceList--">getReplicationLoadSourceList</a></span>()</code> </td>
</tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#sinkToString--">sinkToString</a></span>()</code>
<div class="block">sinkToString</div>
</td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#sourceToString--">sourceToString</a></span>()</code>
<div class="block">sourceToString</div>
</td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#toString--">toString</a></span>()</code> </td>
</tr>
@@ -325,13 +331,24 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
</dl>
</li>
</ul>
+<a name="calculateReplicationDelay-long-long-int-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calculateReplicationDelay</h4>
+<pre>static long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#line.106">calculateReplicationDelay</a>(long ageOfLastShippedOp,
+ long timeStampOfLastShippedOp,
+ int sizeOfLogQueue)</pre>
+</li>
+</ul>
<a name="sourceToString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sourceToString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#line.121">sourceToString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#line.133">sourceToString</a>()</pre>
<div class="block">sourceToString</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -345,7 +362,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>sinkToString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#line.144">sinkToString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#line.156">sinkToString</a>()</pre>
<div class="block">sinkToString</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -359,7 +376,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getReplicationLoadSink</h4>
-<pre>public org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ReplicationLoadSink <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#line.158">getReplicationLoadSink</a>()</pre>
+<pre>public org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ReplicationLoadSink <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#line.170">getReplicationLoadSink</a>()</pre>
</li>
</ul>
<a name="getReplicationLoadSourceList--">
@@ -368,7 +385,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getReplicationLoadSourceList</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ReplicationLoadSource> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#line.162">getReplicationLoadSourceList</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ReplicationLoadSource> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#line.174">getReplicationLoadSourceList</a>()</pre>
</li>
</ul>
<a name="toString--">
@@ -377,7 +394,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#line.170">toString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#line.182">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.LogsComparator.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.LogsComparator.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.LogsComparator.html
index b7bc40c..f40053c 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.LogsComparator.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.LogsComparator.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.566">ReplicationSource.LogsComparator</a>
+<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#line.614">ReplicationSource.LogsComparator</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a><org.apache.hadoop.fs.Path></pre>
<div class="block">Comparator used to compare logs together based on their start time</div>
@@ -203,7 +203,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparat
<ul class="blockListLast">
<li class="blockList">
<h4>LogsComparator</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.LogsComparator.html#line.566">LogsComparator</a>()</pre>
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.LogsComparator.html#line.614">LogsComparator</a>()</pre>
</li>
</ul>
</li>
@@ -220,7 +220,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparat
<ul class="blockList">
<li class="blockList">
<h4>compare</h4>
-<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.LogsComparator.html#line.569">compare</a>(org.apache.hadoop.fs.Path o1,
+<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.LogsComparator.html#line.617">compare</a>(org.apache.hadoop.fs.Path o1,
org.apache.hadoop.fs.Path o2)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -234,7 +234,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparat
<ul class="blockListLast">
<li class="blockList">
<h4>getTS</h4>
-<pre>private static long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.LogsComparator.html#line.583">getTS</a>(org.apache.hadoop.fs.Path p)</pre>
+<pre>private static long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.LogsComparator.html#line.631">getTS</a>(org.apache.hadoop.fs.Path p)</pre>
<div class="block"><p>
Split a path to get the start time
</p>
[20/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.html
new file mode 100644
index 0000000..18dd8e4
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.html
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatus.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus" class="title">Uses of Class<br>org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.replication.regionserver">org.apache.hadoop.hbase.replication.regionserver</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.tmpl.regionserver">org.apache.hadoop.hbase.tmpl.regionserver</a></td>
+<td class="colLast"> </td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.regionserver">
+<!-- -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a> in <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> that return types with arguments of type <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">HRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalGroupsReplicationStatus--">getWalGroupsReplicationStatus</a></span>()</code> </td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.replication.regionserver">
+<!-- -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a> in <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/package-summary.html">org.apache.hadoop.hbase.replication.regionserver</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/package-summary.html">org.apache.hadoop.hbase.replication.regionserver</a> that return <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatus.ReplicationStatusBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#build--">build</a></span>()</code> </td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/package-summary.html">org.apache.hadoop.hbase.replication.regionserver</a> that return types with arguments of type <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationSourceInterface.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getWalGroupStatus--">getWalGroupStatus</a></span>()</code>
+<div class="block">get the stat of replication for each wal group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationSource.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getWalGroupStatus--">getWalGroupStatus</a></span>()</code> </td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.tmpl.regionserver">
+<!-- -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a> in <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a> with type arguments of type <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatusTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#Z:Z__jamon_innerUnit__currentLog-java.io.Writer-java.util.Map-">__jamon_innerUnit__currentLog</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>> metrics)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatusTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#Z:Z__jamon_innerUnit__replicationDelay-java.io.Writer-java.util.Map-">__jamon_innerUnit__replicationDelay</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>> metrics)</code> </td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatus.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/WALEntryBatch.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/WALEntryBatch.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/WALEntryBatch.html
index 4bcc8df..bae9ef0 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/WALEntryBatch.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/WALEntryBatch.html
@@ -137,14 +137,18 @@
<td class="colLast"><span class="typeNameLabel">WALEntryBatch.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html#endOfFile-org.apache.hadoop.fs.Path-">endOfFile</a></span>(org.apache.hadoop.fs.Path lastWalPath)</code> </td>
</tr>
<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationSourceWALReader.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#poll-long-">poll</a></span>(long timeout)</code> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a></code></td>
<td class="colLast"><span class="typeNameLabel">SerialReplicationSourceWALReader.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html#readWALEntries-org.apache.hadoop.hbase.replication.regionserver.WALEntryStream-">readWALEntries</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a> entryStream)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a></code></td>
<td class="colLast"><span class="typeNameLabel">ReplicationSourceWALReader.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#readWALEntries-org.apache.hadoop.hbase.replication.regionserver.WALEntryStream-">readWALEntries</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a> entryStream)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a></code></td>
<td class="colLast"><span class="typeNameLabel">ReplicationSourceWALReader.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#take--">take</a></span>()</code>
<div class="block">Retrieves the next batch of WAL entries from the queue, waiting up to the specified time for a
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-frame.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-frame.html
index 90efa85..4913ff3 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-frame.html
@@ -68,6 +68,8 @@
<li><a href="ReplicationSourceShipper.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">ReplicationSourceShipper</a></li>
<li><a href="ReplicationSourceWALActionListener.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">ReplicationSourceWALActionListener</a></li>
<li><a href="ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">ReplicationSourceWALReader</a></li>
+<li><a href="ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">ReplicationStatus</a></li>
+<li><a href="ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">ReplicationStatus.ReplicationStatusBuilder</a></li>
<li><a href="ReplicationSyncUp.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">ReplicationSyncUp</a></li>
<li><a href="ReplicationThrottler.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">ReplicationThrottler</a></li>
<li><a href="SerialReplicationChecker.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">SerialReplicationChecker</a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-summary.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-summary.html
index 78a929e..707fafe 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-summary.html
@@ -390,6 +390,14 @@
</td>
</tr>
<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSyncUp</a></td>
<td class="colLast">
<div class="block">In a scenario of Replication based Disaster/Recovery, when hbase Master-Cluster crashes, this
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
index 3f7893b..30c4e73 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -145,6 +145,8 @@
<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceFactory.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceFactory</span></a></li>
<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceManager</span></a> (implements org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationListener.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationListener</a>)</li>
<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALActionListener.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceWALActionListener</span></a> (implements org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationStatus.ReplicationStatusBuilder</span></a></li>
<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.DummyServer.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSyncUp.DummyServer</span></a> (implements org.apache.hadoop.hbase.<a href="../../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>)</li>
<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationThrottler.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationThrottler</span></a></li>
<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">SerialReplicationChecker</span></a></li>
@@ -205,8 +207,8 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-use.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-use.html
index 80af381..d157e8d 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-use.html
@@ -101,6 +101,10 @@
<td class="colLast"> </td>
</tr>
<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.tmpl.regionserver">org.apache.hadoop.hbase.tmpl.regionserver</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.wal">org.apache.hadoop.hbase.wal</a></td>
<td class="colLast"> </td>
</tr>
@@ -127,6 +131,14 @@
</td>
</tr>
<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationSourceManager.html#org.apache.hadoop.hbase.regionserver">ReplicationSourceManager</a>
+<div class="block">This class is responsible to manage all the replication sources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.html#org.apache.hadoop.hbase.regionserver">ReplicationStatus</a> </td>
+</tr>
+<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/class-use/SyncReplicationPeerInfoProvider.html#org.apache.hadoop.hbase.regionserver">SyncReplicationPeerInfoProvider</a>
<div class="block">Get the information for a sync replication peer.</div>
</td>
@@ -309,6 +321,12 @@
</td>
</tr>
<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.html#org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.ReplicationStatusBuilder.html#org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a> </td>
+</tr>
+<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationThrottler.html#org.apache.hadoop.hbase.replication.regionserver">ReplicationThrottler</a>
<div class="block">Per-peer per-node throttling controller for replication: enabled if
bandwidth > 0, a cycle = 100ms, by throttling we guarantee data pushed
@@ -362,6 +380,21 @@
</tbody>
</table>
</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.tmpl.regionserver">
+<!-- -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/package-summary.html">org.apache.hadoop.hbase.replication.regionserver</a> used by <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.html#org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatus</a> </td>
+</tr>
+</tbody>
+</table>
+</li>
<li class="blockList"><a name="org.apache.hadoop.hbase.wal">
<!-- -->
</a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
index 034077c..c20ff47 100644
--- a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
@@ -110,8 +110,8 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.FilterType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.FilterType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
index f594c43..8051208 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -142,9 +142,9 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
index 03e1383..2cef8bd 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -199,9 +199,9 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
index b8763da..7c04571 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
@@ -531,7 +531,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmplImpl.html
index 2cf7bba..ae4eaf9 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmplImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmplImpl.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmplImpl.html" target="_top">Frames</a></li>
@@ -415,7 +415,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmplImpl.html" target="_top">Frames</a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html
new file mode 100644
index 0000000..55d5536
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html
@@ -0,0 +1,330 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ReplicationStatusTmpl.ImplData (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="ReplicationStatusTmpl.ImplData (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReplicationStatusTmpl.ImplData.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmpl.ImplData.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.tmpl.regionserver</div>
+<h2 title="Class ReplicationStatusTmpl.ImplData" class="title">Class ReplicationStatusTmpl.ImplData</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.jamon.AbstractTemplateProxy.ImplData</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.ImplData</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#line.47">ReplicationStatusTmpl.ImplData</a>
+extends org.jamon.AbstractTemplateProxy.ImplData</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html#m_regionServer">m_regionServer</a></span></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html#ImplData--">ImplData</a></span>()</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html#getRegionServer--">getRegionServer</a></span>()</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html#setRegionServer-org.apache.hadoop.hbase.regionserver.HRegionServer-">setRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="m_regionServer">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>m_regionServer</h4>
+<pre>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html#line.60">m_regionServer</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ImplData--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ImplData</h4>
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html#line.47">ImplData</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="setRegionServer-org.apache.hadoop.hbase.regionserver.HRegionServer-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRegionServer</h4>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html#line.51">setRegionServer</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)</pre>
+</li>
+</ul>
+<a name="getRegionServer--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getRegionServer</h4>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html#line.56">getRegionServer</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReplicationStatusTmpl.ImplData.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmpl.ImplData.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html
new file mode 100644
index 0000000..96bb17f
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ReplicationStatusTmpl.Intf (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="ReplicationStatusTmpl.Intf (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReplicationStatusTmpl.Intf.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmpl.Intf.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.tmpl.regionserver</div>
+<h2 title="Interface ReplicationStatusTmpl.Intf" class="title">Interface ReplicationStatusTmpl.Intf</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd>org.jamon.AbstractTemplateProxy.Intf</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmplImpl</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#line.40">ReplicationStatusTmpl.Intf</a>
+extends org.jamon.AbstractTemplateProxy.Intf</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html#renderNoFlush-java.io.Writer-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter)</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="renderNoFlush-java.io.Writer-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>renderNoFlush</h4>
+<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html#line.44">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter)
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReplicationStatusTmpl.Intf.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmpl.Intf.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
[42/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html
index 8d21f22..7268b5e 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html
@@ -1265,7 +1265,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockListLast">
<li class="blockList">
<h4>CACHE_FIXED_OVERHEAD</h4>
-<pre>public static final long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.985">CACHE_FIXED_OVERHEAD</a></pre>
+<pre>public static final long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.972">CACHE_FIXED_OVERHEAD</a></pre>
</li>
</ul>
</li>
@@ -1422,7 +1422,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>assertCounterSanity</h4>
-<pre>private static void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.434">assertCounterSanity</a>(long mapSize,
+<pre>private static void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.421">assertCounterSanity</a>(long mapSize,
long counterVal)</pre>
<div class="block">Sanity-checking for parity between actual block cache content and metrics.
Intended only for use with TRACE level logging and -ea JVM.</div>
@@ -1434,7 +1434,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>cacheBlock</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.457">cacheBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.444">cacheBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> buf)</pre>
<div class="block">Cache the block with the specified name and buffer.
<p></div>
@@ -1453,7 +1453,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>updateSizeMetrics</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.466">updateSizeMetrics</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a> cb,
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.453">updateSizeMetrics</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a> cb,
boolean evict)</pre>
<div class="block">Helper function that updates the local size counter and also updates any
per-cf or per-blocktype metrics it can discern from given
@@ -1466,7 +1466,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>getBlock</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.491">getBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.478">getBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
boolean caching,
boolean repeat,
boolean updateCacheMetrics)</pre>
@@ -1492,7 +1492,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>containsBlock</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.525">containsBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</pre>
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.512">containsBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</pre>
<div class="block">Whether the cache contains block with specified cacheKey</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -1506,7 +1506,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>evictBlock</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.530">evictBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</pre>
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.517">evictBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#evictBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">BlockCache</a></code></span></div>
<div class="block">Evict block from cache.</div>
<dl>
@@ -1525,7 +1525,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>evictBlocksByHfileName</h4>
-<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.546">evictBlocksByHfileName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> hfileName)</pre>
+<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.533">evictBlocksByHfileName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> hfileName)</pre>
<div class="block">Evicts all blocks for a specific HFile. This is an
expensive operation implemented as a linear-time search through all blocks
in the cache. Ideally this should be a search in a log-access-time map.
@@ -1546,7 +1546,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>evictBlock</h4>
-<pre>protected long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.568">evictBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a> block,
+<pre>protected long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.555">evictBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a> block,
boolean evictedByEvictionProcess)</pre>
<div class="block">Evict the block, and it will be cached by the victim handler if exists &&
block may be read again later</div>
@@ -1565,7 +1565,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>runEviction</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.596">runEviction</a>()</pre>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.583">runEviction</a>()</pre>
<div class="block">Multi-threaded call to run the eviction process.</div>
</li>
</ul>
@@ -1575,7 +1575,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>isEvictionInProgress</h4>
-<pre>boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.605">isEvictionInProgress</a>()</pre>
+<pre>boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.592">isEvictionInProgress</a>()</pre>
</li>
</ul>
<a name="getOverhead--">
@@ -1584,7 +1584,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>getOverhead</h4>
-<pre>long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.610">getOverhead</a>()</pre>
+<pre>long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.597">getOverhead</a>()</pre>
</li>
</ul>
<a name="evict--">
@@ -1593,7 +1593,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>evict</h4>
-<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.617">evict</a>()</pre>
+<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.604">evict</a>()</pre>
<div class="block">Eviction method.</div>
</li>
</ul>
@@ -1603,7 +1603,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.736">toString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.723">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -1616,7 +1616,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>getMaxSize</h4>
-<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.838">getMaxSize</a>()</pre>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.825">getMaxSize</a>()</pre>
<div class="block">Get the maximum size of this cache.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1632,7 +1632,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>getCurrentSize</h4>
-<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.843">getCurrentSize</a>()</pre>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.830">getCurrentSize</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getCurrentSize--">BlockCache</a></code></span></div>
<div class="block">Returns the occupied size of the block cache, in bytes.</div>
<dl>
@@ -1649,7 +1649,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>getCurrentDataSize</h4>
-<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.848">getCurrentDataSize</a>()</pre>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.835">getCurrentDataSize</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getCurrentDataSize--">BlockCache</a></code></span></div>
<div class="block">Returns the occupied size of data blocks, in bytes.</div>
<dl>
@@ -1666,7 +1666,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>getFreeSize</h4>
-<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.853">getFreeSize</a>()</pre>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.840">getFreeSize</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getFreeSize--">BlockCache</a></code></span></div>
<div class="block">Returns the free size of the block cache, in bytes.</div>
<dl>
@@ -1683,7 +1683,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
-<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.858">size</a>()</pre>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.845">size</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#size--">BlockCache</a></code></span></div>
<div class="block">Returns the total size of the block cache, in bytes.</div>
<dl>
@@ -1700,7 +1700,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>getBlockCount</h4>
-<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.863">getBlockCount</a>()</pre>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.850">getBlockCount</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getBlockCount--">BlockCache</a></code></span></div>
<div class="block">Returns the number of blocks currently cached in the block cache.</div>
<dl>
@@ -1717,7 +1717,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>getDataBlockCount</h4>
-<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.868">getDataBlockCount</a>()</pre>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.855">getDataBlockCount</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getDataBlockCount--">BlockCache</a></code></span></div>
<div class="block">Returns the number of data blocks currently cached in the block cache.</div>
<dl>
@@ -1734,7 +1734,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>getEvictionThread</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.EvictionThread</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.872">getEvictionThread</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.EvictionThread</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.859">getEvictionThread</a>()</pre>
</li>
</ul>
<a name="logStats--">
@@ -1743,7 +1743,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>logStats</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.953">logStats</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.940">logStats</a>()</pre>
</li>
</ul>
<a name="getStats--">
@@ -1752,7 +1752,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>getStats</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.981">getStats</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.968">getStats</a>()</pre>
<div class="block">Get counter statistics for this cache.
<p>Includes: total accesses, hits, misses, evicted blocks, and runs
@@ -1771,7 +1771,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>heapSize</h4>
-<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.991">heapSize</a>()</pre>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.978">heapSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/HeapSize.html#heapSize--">heapSize</a></code> in interface <code><a href="../../../../../../org/apache/hadoop/hbase/io/HeapSize.html" title="interface in org.apache.hadoop.hbase.io">HeapSize</a></code></dd>
@@ -1787,7 +1787,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>calculateOverhead</h4>
-<pre>private static long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.995">calculateOverhead</a>(long maxSize,
+<pre>private static long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.982">calculateOverhead</a>(long maxSize,
long blockSize,
int concurrency)</pre>
</li>
@@ -1798,7 +1798,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>iterator</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1003">iterator</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.990">iterator</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#iterator--" title="class or interface in java.lang">iterator</a></code> in interface <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>></code></dd>
@@ -1815,7 +1815,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>acceptableSize</h4>
-<pre>long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1091">acceptableSize</a>()</pre>
+<pre>long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1078">acceptableSize</a>()</pre>
</li>
</ul>
<a name="minSize--">
@@ -1824,7 +1824,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>minSize</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1094">minSize</a>()</pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1081">minSize</a>()</pre>
</li>
</ul>
<a name="singleSize--">
@@ -1833,7 +1833,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>singleSize</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1097">singleSize</a>()</pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1084">singleSize</a>()</pre>
</li>
</ul>
<a name="multiSize--">
@@ -1842,7 +1842,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>multiSize</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1100">multiSize</a>()</pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1087">multiSize</a>()</pre>
</li>
</ul>
<a name="memorySize--">
@@ -1851,7 +1851,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>memorySize</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1103">memorySize</a>()</pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1090">memorySize</a>()</pre>
</li>
</ul>
<a name="shutdown--">
@@ -1860,7 +1860,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>shutdown</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1108">shutdown</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1095">shutdown</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#shutdown--">BlockCache</a></code></span></div>
<div class="block">Shutdown the cache.</div>
<dl>
@@ -1875,7 +1875,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>clearCache</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1134">clearCache</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1121">clearCache</a>()</pre>
<div class="block">Clears the cache. Used in tests.</div>
</li>
</ul>
@@ -1885,7 +1885,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>getCachedFileNamesForTest</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1145">getCachedFileNamesForTest</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1132">getCachedFileNamesForTest</a>()</pre>
<div class="block">Used in testing. May be very inefficient.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -1899,7 +1899,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>getBlockTypeCountsForTest</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1154">getBlockTypeCountsForTest</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1141">getBlockTypeCountsForTest</a>()</pre>
</li>
</ul>
<a name="getEncodingCountsForTest--">
@@ -1908,7 +1908,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>getEncodingCountsForTest</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1165">getEncodingCountsForTest</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1152">getEncodingCountsForTest</a>()</pre>
</li>
</ul>
<a name="setVictimCache-org.apache.hadoop.hbase.io.hfile.BlockCache-">
@@ -1917,7 +1917,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>setVictimCache</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1175">setVictimCache</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> handler)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1162">setVictimCache</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> handler)</pre>
</li>
</ul>
<a name="getMapForTests--">
@@ -1926,7 +1926,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockList">
<li class="blockList">
<h4>getMapForTests</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>,<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1181">getMapForTests</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>,<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1168">getMapForTests</a>()</pre>
</li>
</ul>
<a name="getBlockCaches--">
@@ -1935,7 +1935,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
<ul class="blockListLast">
<li class="blockList">
<h4>getBlockCaches</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1187">getBlockCaches</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.1174">getBlockCaches</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getBlockCaches--">getBlockCaches</a></code> in interface <code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html
index 7e971fc..933760d 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html
@@ -121,7 +121,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1268">BucketCache.BucketEntry</a>
+<pre>static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1286">BucketCache.BucketEntry</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
<div class="block">Item in cache. We expect this to be where most memory goes. Java uses 8
@@ -304,7 +304,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>serialVersionUID</h4>
-<pre>private static final long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1269">serialVersionUID</a></pre>
+<pre>private static final long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1287">serialVersionUID</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.BucketEntry.serialVersionUID">Constant Field Values</a></dd>
@@ -317,7 +317,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>COMPARATOR</h4>
-<pre>static final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a>> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1272">COMPARATOR</a></pre>
+<pre>static final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a>> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1290">COMPARATOR</a></pre>
</li>
</ul>
<a name="offsetBase">
@@ -326,7 +326,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>offsetBase</h4>
-<pre>private int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1280">offsetBase</a></pre>
+<pre>private int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1298">offsetBase</a></pre>
</li>
</ul>
<a name="length">
@@ -335,7 +335,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>length</h4>
-<pre>private int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1281">length</a></pre>
+<pre>private int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1299">length</a></pre>
</li>
</ul>
<a name="offset1">
@@ -344,7 +344,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>offset1</h4>
-<pre>private byte <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1282">offset1</a></pre>
+<pre>private byte <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1300">offset1</a></pre>
</li>
</ul>
<a name="deserialiserIndex">
@@ -353,7 +353,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>deserialiserIndex</h4>
-<pre>byte <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1283">deserialiserIndex</a></pre>
+<pre>byte <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1301">deserialiserIndex</a></pre>
</li>
</ul>
<a name="accessCounter">
@@ -362,7 +362,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>accessCounter</h4>
-<pre>private volatile long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1284">accessCounter</a></pre>
+<pre>private volatile long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1302">accessCounter</a></pre>
</li>
</ul>
<a name="priority">
@@ -371,7 +371,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>priority</h4>
-<pre>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockPriority</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1285">priority</a></pre>
+<pre>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockPriority</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1303">priority</a></pre>
</li>
</ul>
<a name="cachedTime">
@@ -380,7 +380,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockListLast">
<li class="blockList">
<h4>cachedTime</h4>
-<pre>private final long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1290">cachedTime</a></pre>
+<pre>private final long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1308">cachedTime</a></pre>
<div class="block">Time this block was cached. Presumes we are created just before we are added to the cache.</div>
</li>
</ul>
@@ -398,7 +398,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockListLast">
<li class="blockList">
<h4>BucketEntry</h4>
-<pre><a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1292">BucketEntry</a>(long offset,
+<pre><a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1310">BucketEntry</a>(long offset,
int length,
long accessCounter,
boolean inMemory)</pre>
@@ -418,7 +418,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>offset</h4>
-<pre>long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1303">offset</a>()</pre>
+<pre>long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1321">offset</a>()</pre>
</li>
</ul>
<a name="setOffset-long-">
@@ -427,7 +427,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>setOffset</h4>
-<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1309">setOffset</a>(long value)</pre>
+<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1327">setOffset</a>(long value)</pre>
</li>
</ul>
<a name="getLength--">
@@ -436,7 +436,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>getLength</h4>
-<pre>public int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1316">getLength</a>()</pre>
+<pre>public int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1334">getLength</a>()</pre>
</li>
</ul>
<a name="deserializerReference-org.apache.hadoop.hbase.io.hfile.bucket.UniqueIndexMap-">
@@ -445,7 +445,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>deserializerReference</h4>
-<pre>protected <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile">CacheableDeserializer</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1320">deserializerReference</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/UniqueIndexMap.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">UniqueIndexMap</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> deserialiserMap)</pre>
+<pre>protected <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile">CacheableDeserializer</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1338">deserializerReference</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/UniqueIndexMap.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">UniqueIndexMap</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> deserialiserMap)</pre>
</li>
</ul>
<a name="setDeserialiserReference-org.apache.hadoop.hbase.io.hfile.CacheableDeserializer-org.apache.hadoop.hbase.io.hfile.bucket.UniqueIndexMap-">
@@ -454,7 +454,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>setDeserialiserReference</h4>
-<pre>protected void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1326">setDeserialiserReference</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile">CacheableDeserializer</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>> deserializer,
+<pre>protected void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1344">setDeserialiserReference</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile">CacheableDeserializer</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>> deserializer,
<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/UniqueIndexMap.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">UniqueIndexMap</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> deserialiserMap)</pre>
</li>
</ul>
@@ -464,7 +464,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>access</h4>
-<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1336">access</a>(long accessCounter)</pre>
+<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1354">access</a>(long accessCounter)</pre>
<div class="block">Block has been accessed. Update its local access counter.</div>
</li>
</ul>
@@ -474,7 +474,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>getPriority</h4>
-<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockPriority</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1343">getPriority</a>()</pre>
+<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockPriority</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1361">getPriority</a>()</pre>
</li>
</ul>
<a name="getCachedTime--">
@@ -483,7 +483,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>getCachedTime</h4>
-<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1347">getCachedTime</a>()</pre>
+<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1365">getCachedTime</a>()</pre>
</li>
</ul>
<a name="getRefCount--">
@@ -492,7 +492,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>getRefCount</h4>
-<pre>protected int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1351">getRefCount</a>()</pre>
+<pre>protected int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1369">getRefCount</a>()</pre>
</li>
</ul>
<a name="incrementRefCountAndGet--">
@@ -501,7 +501,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>incrementRefCountAndGet</h4>
-<pre>protected int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1355">incrementRefCountAndGet</a>()</pre>
+<pre>protected int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1373">incrementRefCountAndGet</a>()</pre>
</li>
</ul>
<a name="decrementRefCountAndGet--">
@@ -510,7 +510,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>decrementRefCountAndGet</h4>
-<pre>protected int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1359">decrementRefCountAndGet</a>()</pre>
+<pre>protected int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1377">decrementRefCountAndGet</a>()</pre>
</li>
</ul>
<a name="isMarkedForEvict--">
@@ -519,7 +519,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockList">
<li class="blockList">
<h4>isMarkedForEvict</h4>
-<pre>protected boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1363">isMarkedForEvict</a>()</pre>
+<pre>protected boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1381">isMarkedForEvict</a>()</pre>
</li>
</ul>
<a name="markForEvict--">
@@ -528,7 +528,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
<ul class="blockListLast">
<li class="blockList">
<h4>markForEvict</h4>
-<pre>protected void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1367">markForEvict</a>()</pre>
+<pre>protected void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#line.1385">markForEvict</a>()</pre>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html
index ff22089..7122679 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1415">BucketCache.BucketEntryGroup</a>
+<pre>private class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1433">BucketCache.BucketEntryGroup</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Used to group bucket entries into priority buckets. There will be a
BucketEntryGroup for each priority (single, multi, memory). Once bucketed,
@@ -227,7 +227,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>queue</h4>
-<pre>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/CachedEntryQueue.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">CachedEntryQueue</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1417">queue</a></pre>
+<pre>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/CachedEntryQueue.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">CachedEntryQueue</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1435">queue</a></pre>
</li>
</ul>
<a name="totalSize">
@@ -236,7 +236,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>totalSize</h4>
-<pre>private long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1418">totalSize</a></pre>
+<pre>private long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1436">totalSize</a></pre>
</li>
</ul>
<a name="bucketSize">
@@ -245,7 +245,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>bucketSize</h4>
-<pre>private long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1419">bucketSize</a></pre>
+<pre>private long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1437">bucketSize</a></pre>
</li>
</ul>
</li>
@@ -262,7 +262,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>BucketEntryGroup</h4>
-<pre>public <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1421">BucketEntryGroup</a>(long bytesToFree,
+<pre>public <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1439">BucketEntryGroup</a>(long bytesToFree,
long blockSize,
long bucketSize)</pre>
</li>
@@ -281,7 +281,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
-<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1427">add</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>,<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a>> block)</pre>
+<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1445">add</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>,<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a>> block)</pre>
</li>
</ul>
<a name="free-long-">
@@ -290,7 +290,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>free</h4>
-<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1432">free</a>(long toFree)</pre>
+<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1450">free</a>(long toFree)</pre>
</li>
</ul>
<a name="overflow--">
@@ -299,7 +299,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>overflow</h4>
-<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1448">overflow</a>()</pre>
+<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1466">overflow</a>()</pre>
</li>
</ul>
<a name="totalSize--">
@@ -308,7 +308,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>totalSize</h4>
-<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1452">totalSize</a>()</pre>
+<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1470">totalSize</a>()</pre>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html
index f272ea1..7c7d1af 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1461">BucketCache.RAMQueueEntry</a>
+<pre>static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1479">BucketCache.RAMQueueEntry</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Block Entry stored in the memory with key,data and so on</div>
</li>
@@ -232,7 +232,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>key</h4>
-<pre>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1462">key</a></pre>
+<pre>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1480">key</a></pre>
</li>
</ul>
<a name="data">
@@ -241,7 +241,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>data</h4>
-<pre>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1463">data</a></pre>
+<pre>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1481">data</a></pre>
</li>
</ul>
<a name="accessCounter">
@@ -250,7 +250,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>accessCounter</h4>
-<pre>private long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1464">accessCounter</a></pre>
+<pre>private long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1482">accessCounter</a></pre>
</li>
</ul>
<a name="inMemory">
@@ -259,7 +259,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>inMemory</h4>
-<pre>private boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1465">inMemory</a></pre>
+<pre>private boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1483">inMemory</a></pre>
</li>
</ul>
</li>
@@ -276,7 +276,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>RAMQueueEntry</h4>
-<pre>public <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1467">RAMQueueEntry</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> bck,
+<pre>public <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1485">RAMQueueEntry</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> bck,
<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> data,
long accessCounter,
boolean inMemory)</pre>
@@ -296,7 +296,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getData</h4>
-<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1475">getData</a>()</pre>
+<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1493">getData</a>()</pre>
</li>
</ul>
<a name="getKey--">
@@ -305,7 +305,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getKey</h4>
-<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1479">getKey</a>()</pre>
+<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1497">getKey</a>()</pre>
</li>
</ul>
<a name="access-long-">
@@ -314,7 +314,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>access</h4>
-<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1483">access</a>(long accessCounter)</pre>
+<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1501">access</a>(long accessCounter)</pre>
</li>
</ul>
<a name="writeToCache-org.apache.hadoop.hbase.io.hfile.bucket.IOEngine-org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocator-org.apache.hadoop.hbase.io.hfile.bucket.UniqueIndexMap-java.util.concurrent.atomic.LongAdder-">
@@ -323,7 +323,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>writeToCache</h4>
-<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1487">writeToCache</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/IOEngine.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">IOEngine</a> ioEngine,
+<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1505">writeToCache</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/IOEngine.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">IOEngine</a> ioEngine,
<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator</a> bucketAllocator,
<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/UniqueIndexMap.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">UniqueIndexMap</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> deserialiserMap,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> realCacheSize)
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html
index 2e0f11c..1772d99 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1372">BucketCache.SharedMemoryBucketEntry</a>
+<pre>static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1390">BucketCache.SharedMemoryBucketEntry</a>
extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a></pre>
</li>
</ul>
@@ -251,7 +251,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/Bu
<ul class="blockList">
<li class="blockList">
<h4>serialVersionUID</h4>
-<pre>private static final long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1373">serialVersionUID</a></pre>
+<pre>private static final long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1391">serialVersionUID</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.SharedMemoryBucketEntry.serialVersionUID">Constant Field Values</a></dd>
@@ -264,7 +264,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/Bu
<ul class="blockList">
<li class="blockList">
<h4>markedForEvict</h4>
-<pre>private volatile boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1376">markedForEvict</a></pre>
+<pre>private volatile boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1394">markedForEvict</a></pre>
</li>
</ul>
<a name="refCount">
@@ -273,7 +273,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/Bu
<ul class="blockListLast">
<li class="blockList">
<h4>refCount</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1377">refCount</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1395">refCount</a></pre>
</li>
</ul>
</li>
@@ -290,7 +290,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/Bu
<ul class="blockListLast">
<li class="blockList">
<h4>SharedMemoryBucketEntry</h4>
-<pre><a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1379">SharedMemoryBucketEntry</a>(long offset,
+<pre><a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1397">SharedMemoryBucketEntry</a>(long offset,
int length,
long accessCounter,
boolean inMemory)</pre>
@@ -310,7 +310,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/Bu
<ul class="blockList">
<li class="blockList">
<h4>getRefCount</h4>
-<pre>protected int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1384">getRefCount</a>()</pre>
+<pre>protected int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1402">getRefCount</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#getRefCount--">getRefCount</a></code> in class <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a></code></dd>
@@ -323,7 +323,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/Bu
<ul class="blockList">
<li class="blockList">
<h4>incrementRefCountAndGet</h4>
-<pre>protected int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1389">incrementRefCountAndGet</a>()</pre>
+<pre>protected int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1407">incrementRefCountAndGet</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#incrementRefCountAndGet--">incrementRefCountAndGet</a></code> in class <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a></code></dd>
@@ -336,7 +336,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/Bu
<ul class="blockList">
<li class="blockList">
<h4>decrementRefCountAndGet</h4>
-<pre>protected int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1394">decrementRefCountAndGet</a>()</pre>
+<pre>protected int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1412">decrementRefCountAndGet</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#decrementRefCountAndGet--">decrementRefCountAndGet</a></code> in class <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a></code></dd>
@@ -349,7 +349,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/Bu
<ul class="blockList">
<li class="blockList">
<h4>isMarkedForEvict</h4>
-<pre>protected boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1399">isMarkedForEvict</a>()</pre>
+<pre>protected boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1417">isMarkedForEvict</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#isMarkedForEvict--">isMarkedForEvict</a></code> in class <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a></code></dd>
@@ -362,7 +362,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/Bu
<ul class="blockListLast">
<li class="blockList">
<h4>markForEvict</h4>
-<pre>protected void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1404">markForEvict</a>()</pre>
+<pre>protected void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.SharedMemoryBucketEntry.html#line.1422">markForEvict</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html#markForEvict--">markForEvict</a></code> in class <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a></code></dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html
index c4d7746..896f6bb 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.654">BucketCache.StatisticsThread</a>
+<pre>private static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.647">BucketCache.StatisticsThread</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></pre>
</li>
</ul>
@@ -239,7 +239,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockListLast">
<li class="blockList">
<h4>bucketCache</h4>
-<pre>private final <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html#line.655">bucketCache</a></pre>
+<pre>private final <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html#line.648">bucketCache</a></pre>
</li>
</ul>
</li>
@@ -256,7 +256,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockListLast">
<li class="blockList">
<h4>StatisticsThread</h4>
-<pre>public <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html#line.657">StatisticsThread</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a> bucketCache)</pre>
+<pre>public <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html#line.650">StatisticsThread</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a> bucketCache)</pre>
</li>
</ul>
</li>
@@ -273,7 +273,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockListLast">
<li class="blockList">
<h4>run</h4>
-<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html#line.664">run</a>()</pre>
+<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html#line.657">run</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code> in interface <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
[12/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html
index 05e032c..40ef9f4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html
@@ -25,767 +25,805 @@
<span class="sourceLineNo">017</span> */<a name="line.17"></a>
<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.io.asyncfs;<a name="line.18"></a>
<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.21"></a>
+<span class="sourceLineNo">020</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.21"></a>
<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import com.google.protobuf.CodedOutputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.io.IOException;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.lang.reflect.Field;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.lang.reflect.InvocationTargetException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.lang.reflect.Method;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.net.InetAddress;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import java.net.InetSocketAddress;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import java.nio.ByteBuffer;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import java.security.GeneralSecurityException;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import java.util.Arrays;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import java.util.Collections;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import java.util.List;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import java.util.Map;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import java.util.Set;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import java.util.concurrent.TimeUnit;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>import javax.security.auth.callback.Callback;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import javax.security.auth.callback.CallbackHandler;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import javax.security.auth.callback.NameCallback;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import javax.security.auth.callback.PasswordCallback;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import javax.security.sasl.RealmCallback;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import javax.security.sasl.Sasl;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import javax.security.sasl.SaslClient;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import javax.security.sasl.SaslException;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.commons.codec.binary.Base64;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.commons.lang3.StringUtils;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.conf.Configuration;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.slf4j.Logger;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.slf4j.LoggerFactory;<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>import com.google.protobuf.ByteString;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.security.token.Token;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>/**<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@InterfaceAudience.Private<a name="line.109"></a>
-<span class="sourceLineNo">110</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.110"></a>
-<span class="sourceLineNo">111</span> private static final Logger LOG =<a name="line.111"></a>
-<span class="sourceLineNo">112</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.112"></a>
+<span class="sourceLineNo">023</span>import com.google.protobuf.ByteString;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import com.google.protobuf.CodedOutputStream;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.lang.reflect.Field;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.lang.reflect.InvocationTargetException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.lang.reflect.Method;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.net.InetAddress;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.net.InetSocketAddress;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.ByteBuffer;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.security.GeneralSecurityException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.Arrays;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.List;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Map;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.Set;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import java.util.concurrent.TimeUnit;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import javax.security.auth.callback.Callback;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import javax.security.auth.callback.CallbackHandler;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import javax.security.auth.callback.NameCallback;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import javax.security.auth.callback.PasswordCallback;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import javax.security.sasl.RealmCallback;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import javax.security.sasl.Sasl;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import javax.security.sasl.SaslClient;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import javax.security.sasl.SaslException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.commons.codec.binary.Base64;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.commons.lang3.StringUtils;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.conf.Configuration;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.crypto.key.KeyProvider;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.security.token.Token;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.slf4j.Logger;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.slf4j.LoggerFactory;<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>/**<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.104"></a>
+<span class="sourceLineNo">105</span> */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>@InterfaceAudience.Private<a name="line.106"></a>
+<span class="sourceLineNo">107</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> private static final Logger LOG =<a name="line.108"></a>
+<span class="sourceLineNo">109</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span> }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span> private static final String SERVER_NAME = "0";<a name="line.117"></a>
-<span class="sourceLineNo">118</span> private static final String PROTOCOL = "hdfs";<a name="line.118"></a>
-<span class="sourceLineNo">119</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.119"></a>
-<span class="sourceLineNo">120</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> private static final String NAME_DELIMITER = " ";<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span> private interface SaslAdaptor {<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.127"></a>
+<span class="sourceLineNo">114</span> private static final String SERVER_NAME = "0";<a name="line.114"></a>
+<span class="sourceLineNo">115</span> private static final String PROTOCOL = "hdfs";<a name="line.115"></a>
+<span class="sourceLineNo">116</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.116"></a>
+<span class="sourceLineNo">117</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> private static final String NAME_DELIMITER = " ";<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span> private interface SaslAdaptor {<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> }<a name="line.127"></a>
<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> }<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.132"></a>
+<span class="sourceLineNo">129</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span> // helper class for convert protos.<a name="line.131"></a>
+<span class="sourceLineNo">132</span> private interface PBHelper {<a name="line.132"></a>
<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span> // helper class for convert protos.<a name="line.134"></a>
-<span class="sourceLineNo">135</span> private interface PBHelper {<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.137"></a>
+<span class="sourceLineNo">134</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.139"></a>
-<span class="sourceLineNo">140</span> }<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span> private static final PBHelper PB_HELPER;<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> private interface TransparentCryptoHelper {<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.146"></a>
-<span class="sourceLineNo">147</span> throws IOException;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span> private static SaslAdaptor createSaslAdaptor()<a name="line.152"></a>
-<span class="sourceLineNo">153</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.153"></a>
-<span class="sourceLineNo">154</span> Field saslPropsResolverField =<a name="line.154"></a>
-<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.155"></a>
-<span class="sourceLineNo">156</span> saslPropsResolverField.setAccessible(true);<a name="line.156"></a>
-<span class="sourceLineNo">157</span> Field trustedChannelResolverField =<a name="line.157"></a>
-<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.158"></a>
-<span class="sourceLineNo">159</span> trustedChannelResolverField.setAccessible(true);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> Field fallbackToSimpleAuthField =<a name="line.160"></a>
-<span class="sourceLineNo">161</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.161"></a>
-<span class="sourceLineNo">162</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.162"></a>
-<span class="sourceLineNo">163</span> return new SaslAdaptor() {<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> @Override<a name="line.165"></a>
-<span class="sourceLineNo">166</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span> try {<a name="line.167"></a>
-<span class="sourceLineNo">168</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.168"></a>
-<span class="sourceLineNo">169</span> } catch (IllegalAccessException e) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> throw new RuntimeException(e);<a name="line.170"></a>
-<span class="sourceLineNo">171</span> }<a name="line.171"></a>
-<span class="sourceLineNo">172</span> }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span> @Override<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> try {<a name="line.176"></a>
-<span class="sourceLineNo">177</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> } catch (IllegalAccessException e) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span> throw new RuntimeException(e);<a name="line.179"></a>
-<span class="sourceLineNo">180</span> }<a name="line.180"></a>
-<span class="sourceLineNo">181</span> }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span> @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span> try {<a name="line.185"></a>
-<span class="sourceLineNo">186</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.186"></a>
-<span class="sourceLineNo">187</span> } catch (IllegalAccessException e) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> throw new RuntimeException(e);<a name="line.188"></a>
-<span class="sourceLineNo">189</span> }<a name="line.189"></a>
-<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span> };<a name="line.191"></a>
-<span class="sourceLineNo">192</span> }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.194"></a>
-<span class="sourceLineNo">195</span> Class<?> helperClass;<a name="line.195"></a>
-<span class="sourceLineNo">196</span> try {<a name="line.196"></a>
-<span class="sourceLineNo">197</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.197"></a>
-<span class="sourceLineNo">198</span> } catch (ClassNotFoundException e) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.199"></a>
-<span class="sourceLineNo">200</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.200"></a>
-<span class="sourceLineNo">201</span> }<a name="line.201"></a>
-<span class="sourceLineNo">202</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> Method convertCipherOptionProtosMethod =<a name="line.203"></a>
-<span class="sourceLineNo">204</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.204"></a>
-<span class="sourceLineNo">205</span> return new PBHelper() {<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span> @SuppressWarnings("unchecked")<a name="line.207"></a>
-<span class="sourceLineNo">208</span> @Override<a name="line.208"></a>
-<span class="sourceLineNo">209</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span> try {<a name="line.210"></a>
-<span class="sourceLineNo">211</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span> throw new RuntimeException(e);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> }<a name="line.214"></a>
-<span class="sourceLineNo">215</span> }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> @SuppressWarnings("unchecked")<a name="line.217"></a>
-<span class="sourceLineNo">218</span> @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span> try {<a name="line.220"></a>
-<span class="sourceLineNo">221</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.221"></a>
-<span class="sourceLineNo">222</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span> throw new RuntimeException(e);<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span> }<a name="line.225"></a>
-<span class="sourceLineNo">226</span> };<a name="line.226"></a>
-<span class="sourceLineNo">227</span> }<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.229"></a>
-<span class="sourceLineNo">230</span> throws NoSuchMethodException {<a name="line.230"></a>
-<span class="sourceLineNo">231</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.231"></a>
-<span class="sourceLineNo">232</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.232"></a>
-<span class="sourceLineNo">233</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span> return new TransparentCryptoHelper() {<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span> @Override<a name="line.236"></a>
-<span class="sourceLineNo">237</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.237"></a>
-<span class="sourceLineNo">238</span> DFSClient client) throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span> try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> KeyVersion decryptedKey =<a name="line.240"></a>
-<span class="sourceLineNo">241</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.241"></a>
-<span class="sourceLineNo">242</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.242"></a>
-<span class="sourceLineNo">243</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.243"></a>
-<span class="sourceLineNo">244</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.244"></a>
-<span class="sourceLineNo">245</span> return encryptor;<a name="line.245"></a>
-<span class="sourceLineNo">246</span> } catch (InvocationTargetException e) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.247"></a>
-<span class="sourceLineNo">248</span> throw new RuntimeException(e.getTargetException());<a name="line.248"></a>
-<span class="sourceLineNo">249</span> } catch (GeneralSecurityException e) {<a name="line.249"></a>
-<span class="sourceLineNo">250</span> throw new IOException(e);<a name="line.250"></a>
-<span class="sourceLineNo">251</span> } catch (IllegalAccessException e) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> throw new RuntimeException(e);<a name="line.252"></a>
-<span class="sourceLineNo">253</span> }<a name="line.253"></a>
-<span class="sourceLineNo">254</span> }<a name="line.254"></a>
-<span class="sourceLineNo">255</span> };<a name="line.255"></a>
-<span class="sourceLineNo">256</span> }<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span> static {<a name="line.258"></a>
-<span class="sourceLineNo">259</span> try {<a name="line.259"></a>
-<span class="sourceLineNo">260</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.260"></a>
-<span class="sourceLineNo">261</span> PB_HELPER = createPBHelper();<a name="line.261"></a>
-<span class="sourceLineNo">262</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.262"></a>
-<span class="sourceLineNo">263</span> } catch (Exception e) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.264"></a>
-<span class="sourceLineNo">265</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.265"></a>
-<span class="sourceLineNo">266</span> + "HBASE-16110 for more information.";<a name="line.266"></a>
-<span class="sourceLineNo">267</span> LOG.error(msg, e);<a name="line.267"></a>
-<span class="sourceLineNo">268</span> throw new Error(msg, e);<a name="line.268"></a>
-<span class="sourceLineNo">269</span> }<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span> /**<a name="line.272"></a>
-<span class="sourceLineNo">273</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.273"></a>
-<span class="sourceLineNo">274</span> */<a name="line.274"></a>
-<span class="sourceLineNo">275</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span> private final char[] password;<a name="line.277"></a>
-<span class="sourceLineNo">278</span> private final String userName;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span> /**<a name="line.280"></a>
-<span class="sourceLineNo">281</span> * Creates a new SaslClientCallbackHandler.<a name="line.281"></a>
-<span class="sourceLineNo">282</span> * @param userName SASL user name<a name="line.282"></a>
-<span class="sourceLineNo">283</span> * @Param password SASL password<a name="line.283"></a>
-<span class="sourceLineNo">284</span> */<a name="line.284"></a>
-<span class="sourceLineNo">285</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span> this.password = password;<a name="line.286"></a>
-<span class="sourceLineNo">287</span> this.userName = userName;<a name="line.287"></a>
-<span class="sourceLineNo">288</span> }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span> @Override<a name="line.290"></a>
-<span class="sourceLineNo">291</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.291"></a>
-<span class="sourceLineNo">292</span> NameCallback nc = null;<a name="line.292"></a>
-<span class="sourceLineNo">293</span> PasswordCallback pc = null;<a name="line.293"></a>
-<span class="sourceLineNo">294</span> RealmCallback rc = null;<a name="line.294"></a>
-<span class="sourceLineNo">295</span> for (Callback callback : callbacks) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span> if (callback instanceof RealmChoiceCallback) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span> continue;<a name="line.297"></a>
-<span class="sourceLineNo">298</span> } else if (callback instanceof NameCallback) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span> nc = (NameCallback) callback;<a name="line.299"></a>
-<span class="sourceLineNo">300</span> } else if (callback instanceof PasswordCallback) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span> pc = (PasswordCallback) callback;<a name="line.301"></a>
-<span class="sourceLineNo">302</span> } else if (callback instanceof RealmCallback) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span> rc = (RealmCallback) callback;<a name="line.303"></a>
-<span class="sourceLineNo">304</span> } else {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span> }<a name="line.307"></a>
-<span class="sourceLineNo">308</span> if (nc != null) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span> nc.setName(userName);<a name="line.309"></a>
-<span class="sourceLineNo">310</span> }<a name="line.310"></a>
-<span class="sourceLineNo">311</span> if (pc != null) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> pc.setPassword(password);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span> if (rc != null) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span> rc.setText(rc.getDefaultText());<a name="line.315"></a>
-<span class="sourceLineNo">316</span> }<a name="line.316"></a>
-<span class="sourceLineNo">317</span> }<a name="line.317"></a>
-<span class="sourceLineNo">318</span> }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span> private final Configuration conf;<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span> private final Map<String, String> saslProps;<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span> private final SaslClient saslClient;<a name="line.326"></a>
+<span class="sourceLineNo">139</span> private static final PBHelper PB_HELPER;<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span> private interface TransparentCryptoHelper {<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.143"></a>
+<span class="sourceLineNo">144</span> throws IOException;<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span> private static SaslAdaptor createSaslAdaptor()<a name="line.149"></a>
+<span class="sourceLineNo">150</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Field saslPropsResolverField =<a name="line.151"></a>
+<span class="sourceLineNo">152</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.152"></a>
+<span class="sourceLineNo">153</span> saslPropsResolverField.setAccessible(true);<a name="line.153"></a>
+<span class="sourceLineNo">154</span> Field trustedChannelResolverField =<a name="line.154"></a>
+<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.155"></a>
+<span class="sourceLineNo">156</span> trustedChannelResolverField.setAccessible(true);<a name="line.156"></a>
+<span class="sourceLineNo">157</span> Field fallbackToSimpleAuthField =<a name="line.157"></a>
+<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.158"></a>
+<span class="sourceLineNo">159</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.159"></a>
+<span class="sourceLineNo">160</span> return new SaslAdaptor() {<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span> @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span> try {<a name="line.164"></a>
+<span class="sourceLineNo">165</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.165"></a>
+<span class="sourceLineNo">166</span> } catch (IllegalAccessException e) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span> throw new RuntimeException(e);<a name="line.167"></a>
+<span class="sourceLineNo">168</span> }<a name="line.168"></a>
+<span class="sourceLineNo">169</span> }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span> @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span> try {<a name="line.173"></a>
+<span class="sourceLineNo">174</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.174"></a>
+<span class="sourceLineNo">175</span> } catch (IllegalAccessException e) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span> throw new RuntimeException(e);<a name="line.176"></a>
+<span class="sourceLineNo">177</span> }<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span> @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span> try {<a name="line.182"></a>
+<span class="sourceLineNo">183</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.183"></a>
+<span class="sourceLineNo">184</span> } catch (IllegalAccessException e) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span> throw new RuntimeException(e);<a name="line.185"></a>
+<span class="sourceLineNo">186</span> }<a name="line.186"></a>
+<span class="sourceLineNo">187</span> }<a name="line.187"></a>
+<span class="sourceLineNo">188</span> };<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.191"></a>
+<span class="sourceLineNo">192</span> Class<?> helperClass;<a name="line.192"></a>
+<span class="sourceLineNo">193</span> try {<a name="line.193"></a>
+<span class="sourceLineNo">194</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.194"></a>
+<span class="sourceLineNo">195</span> } catch (ClassNotFoundException e) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.197"></a>
+<span class="sourceLineNo">198</span> }<a name="line.198"></a>
+<span class="sourceLineNo">199</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.199"></a>
+<span class="sourceLineNo">200</span> Method convertCipherOptionProtosMethod =<a name="line.200"></a>
+<span class="sourceLineNo">201</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.201"></a>
+<span class="sourceLineNo">202</span> return new PBHelper() {<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span> @SuppressWarnings("unchecked")<a name="line.204"></a>
+<span class="sourceLineNo">205</span> @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> try {<a name="line.207"></a>
+<span class="sourceLineNo">208</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.208"></a>
+<span class="sourceLineNo">209</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span> throw new RuntimeException(e);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> }<a name="line.211"></a>
+<span class="sourceLineNo">212</span> }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span> @SuppressWarnings("unchecked")<a name="line.214"></a>
+<span class="sourceLineNo">215</span> @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> try {<a name="line.217"></a>
+<span class="sourceLineNo">218</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span> throw new RuntimeException(e);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> };<a name="line.223"></a>
+<span class="sourceLineNo">224</span> }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span> private static TransparentCryptoHelper createTransparentCryptoHelper27()<a name="line.226"></a>
+<span class="sourceLineNo">227</span> throws NoSuchMethodException {<a name="line.227"></a>
+<span class="sourceLineNo">228</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.228"></a>
+<span class="sourceLineNo">229</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> return new TransparentCryptoHelper() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.234"></a>
+<span class="sourceLineNo">235</span> DFSClient client) throws IOException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span> try {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> KeyVersion decryptedKey =<a name="line.237"></a>
+<span class="sourceLineNo">238</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.238"></a>
+<span class="sourceLineNo">239</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.239"></a>
+<span class="sourceLineNo">240</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.241"></a>
+<span class="sourceLineNo">242</span> return encryptor;<a name="line.242"></a>
+<span class="sourceLineNo">243</span> } catch (InvocationTargetException e) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.244"></a>
+<span class="sourceLineNo">245</span> throw new RuntimeException(e.getTargetException());<a name="line.245"></a>
+<span class="sourceLineNo">246</span> } catch (GeneralSecurityException e) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> throw new IOException(e);<a name="line.247"></a>
+<span class="sourceLineNo">248</span> } catch (IllegalAccessException e) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span> throw new RuntimeException(e);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span> }<a name="line.251"></a>
+<span class="sourceLineNo">252</span> };<a name="line.252"></a>
+<span class="sourceLineNo">253</span> }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span> private static TransparentCryptoHelper createTransparentCryptoHelper28()<a name="line.255"></a>
+<span class="sourceLineNo">256</span> throws ClassNotFoundException, NoSuchMethodException {<a name="line.256"></a>
+<span class="sourceLineNo">257</span> Class<?> hdfsKMSUtilCls = Class.forName("org.apache.hadoop.hdfs.HdfsKMSUtil");<a name="line.257"></a>
+<span class="sourceLineNo">258</span> Method decryptEncryptedDataEncryptionKeyMethod = hdfsKMSUtilCls.getDeclaredMethod(<a name="line.258"></a>
+<span class="sourceLineNo">259</span> "decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class, KeyProvider.class);<a name="line.259"></a>
+<span class="sourceLineNo">260</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.260"></a>
+<span class="sourceLineNo">261</span> return new TransparentCryptoHelper() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span> @Override<a name="line.263"></a>
+<span class="sourceLineNo">264</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.264"></a>
+<span class="sourceLineNo">265</span> DFSClient client) throws IOException {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> try {<a name="line.266"></a>
+<span class="sourceLineNo">267</span> KeyVersion decryptedKey = (KeyVersion) decryptEncryptedDataEncryptionKeyMethod<a name="line.267"></a>
+<span class="sourceLineNo">268</span> .invoke(null, feInfo, client.getKeyProvider());<a name="line.268"></a>
+<span class="sourceLineNo">269</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.269"></a>
+<span class="sourceLineNo">270</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.270"></a>
+<span class="sourceLineNo">271</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.271"></a>
+<span class="sourceLineNo">272</span> return encryptor;<a name="line.272"></a>
+<span class="sourceLineNo">273</span> } catch (InvocationTargetException e) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.274"></a>
+<span class="sourceLineNo">275</span> throw new RuntimeException(e.getTargetException());<a name="line.275"></a>
+<span class="sourceLineNo">276</span> } catch (GeneralSecurityException e) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> throw new IOException(e);<a name="line.277"></a>
+<span class="sourceLineNo">278</span> } catch (IllegalAccessException e) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> throw new RuntimeException(e);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> }<a name="line.280"></a>
+<span class="sourceLineNo">281</span> }<a name="line.281"></a>
+<span class="sourceLineNo">282</span> };<a name="line.282"></a>
+<span class="sourceLineNo">283</span> }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.285"></a>
+<span class="sourceLineNo">286</span> throws NoSuchMethodException, ClassNotFoundException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> try {<a name="line.287"></a>
+<span class="sourceLineNo">288</span> return createTransparentCryptoHelper27();<a name="line.288"></a>
+<span class="sourceLineNo">289</span> } catch (NoSuchMethodException e) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> LOG.debug("No decryptEncryptedDataEncryptionKey method in DFSClient, should be hadoop 2.8+",<a name="line.290"></a>
+<span class="sourceLineNo">291</span> e);<a name="line.291"></a>
+<span class="sourceLineNo">292</span> }<a name="line.292"></a>
+<span class="sourceLineNo">293</span> return createTransparentCryptoHelper28();<a name="line.293"></a>
+<span class="sourceLineNo">294</span> }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span> static {<a name="line.296"></a>
+<span class="sourceLineNo">297</span> try {<a name="line.297"></a>
+<span class="sourceLineNo">298</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.298"></a>
+<span class="sourceLineNo">299</span> PB_HELPER = createPBHelper();<a name="line.299"></a>
+<span class="sourceLineNo">300</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.300"></a>
+<span class="sourceLineNo">301</span> } catch (Exception e) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.302"></a>
+<span class="sourceLineNo">303</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.303"></a>
+<span class="sourceLineNo">304</span> + "HBASE-16110 for more information.";<a name="line.304"></a>
+<span class="sourceLineNo">305</span> LOG.error(msg, e);<a name="line.305"></a>
+<span class="sourceLineNo">306</span> throw new Error(msg, e);<a name="line.306"></a>
+<span class="sourceLineNo">307</span> }<a name="line.307"></a>
+<span class="sourceLineNo">308</span> }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span> /**<a name="line.310"></a>
+<span class="sourceLineNo">311</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.311"></a>
+<span class="sourceLineNo">312</span> */<a name="line.312"></a>
+<span class="sourceLineNo">313</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span> private final char[] password;<a name="line.315"></a>
+<span class="sourceLineNo">316</span> private final String userName;<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span> /**<a name="line.318"></a>
+<span class="sourceLineNo">319</span> * Creates a new SaslClientCallbackHandler.<a name="line.319"></a>
+<span class="sourceLineNo">320</span> * @param userName SASL user name<a name="line.320"></a>
+<span class="sourceLineNo">321</span> * @Param password SASL password<a name="line.321"></a>
+<span class="sourceLineNo">322</span> */<a name="line.322"></a>
+<span class="sourceLineNo">323</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span> this.password = password;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> this.userName = userName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> }<a name="line.326"></a>
<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span> private final int timeoutMs;<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span> private final Promise<Void> promise;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span> private int step = 0;<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.334"></a>
-<span class="sourceLineNo">335</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.335"></a>
-<span class="sourceLineNo">336</span> this.conf = conf;<a name="line.336"></a>
-<span class="sourceLineNo">337</span> this.saslProps = saslProps;<a name="line.337"></a>
-<span class="sourceLineNo">338</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.338"></a>
-<span class="sourceLineNo">339</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.339"></a>
-<span class="sourceLineNo">340</span> this.timeoutMs = timeoutMs;<a name="line.340"></a>
-<span class="sourceLineNo">341</span> this.promise = promise;<a name="line.341"></a>
-<span class="sourceLineNo">342</span> }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.344"></a>
-<span class="sourceLineNo">345</span> sendSaslMessage(ctx, payload, null);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.349"></a>
-<span class="sourceLineNo">350</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.350"></a>
-<span class="sourceLineNo">351</span> // values for future expansion.<a name="line.351"></a>
-<span class="sourceLineNo">352</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span> return null;<a name="line.354"></a>
-<span class="sourceLineNo">355</span> }<a name="line.355"></a>
-<span class="sourceLineNo">356</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.357"></a>
-<span class="sourceLineNo">358</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.358"></a>
-<span class="sourceLineNo">359</span> }<a name="line.359"></a>
-<span class="sourceLineNo">360</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.360"></a>
-<span class="sourceLineNo">361</span> }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.363"></a>
-<span class="sourceLineNo">364</span> List<CipherOption> options) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.365"></a>
-<span class="sourceLineNo">366</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.366"></a>
-<span class="sourceLineNo">367</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> if (payload != null) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.369"></a>
-<span class="sourceLineNo">370</span> // and we want to keep that out of hbase-server.<a name="line.370"></a>
-<span class="sourceLineNo">371</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.371"></a>
-<span class="sourceLineNo">372</span> }<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (options != null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.376"></a>
-<span class="sourceLineNo">377</span> int size = proto.getSerializedSize();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.378"></a>
-<span class="sourceLineNo">379</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.379"></a>
-<span class="sourceLineNo">380</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> ctx.write(buf);<a name="line.381"></a>
-<span class="sourceLineNo">382</span> }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span> @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.385"></a>
-<span class="sourceLineNo">386</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.386"></a>
-<span class="sourceLineNo">387</span> sendSaslMessage(ctx, new byte[0]);<a name="line.387"></a>
-<span class="sourceLineNo">388</span> ctx.flush();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> step++;<a name="line.389"></a>
-<span class="sourceLineNo">390</span> }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span> @Override<a name="line.392"></a>
-<span class="sourceLineNo">393</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.393"></a>
-<span class="sourceLineNo">394</span> saslClient.dispose();<a name="line.394"></a>
-<span class="sourceLineNo">395</span> }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.399"></a>
-<span class="sourceLineNo">400</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span> throw new IOException(proto.getMessage());<a name="line.401"></a>
-<span class="sourceLineNo">402</span> }<a name="line.402"></a>
-<span class="sourceLineNo">403</span> }<a name="line.403"></a>
-<span class="sourceLineNo">404</span><a name="line.404"></a>
-<span class="sourceLineNo">405</span> private String getNegotiatedQop() {<a name="line.405"></a>
-<span class="sourceLineNo">406</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.406"></a>
-<span class="sourceLineNo">407</span> }<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span> private boolean isNegotiatedQopPrivacy() {<a name="line.409"></a>
-<span class="sourceLineNo">410</span> String qop = getNegotiatedQop();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> return qop != null && "auth-conf".equalsIgnoreCase(qop);<a name="line.411"></a>
-<span class="sourceLineNo">412</span> }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span> private boolean requestedQopContainsPrivacy() {<a name="line.414"></a>
-<span class="sourceLineNo">415</span> Set<String> requestedQop =<a name="line.415"></a>
-<span class="sourceLineNo">416</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.416"></a>
-<span class="sourceLineNo">417</span> return requestedQop.contains("auth-conf");<a name="line.417"></a>
-<span class="sourceLineNo">418</span> }<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span> private void checkSaslComplete() throws IOException {<a name="line.420"></a>
-<span class="sourceLineNo">421</span> if (!saslClient.isComplete()) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> throw new IOException("Failed to complete SASL handshake");<a name="line.422"></a>
-<span class="sourceLineNo">423</span> }<a name="line.423"></a>
-<span class="sourceLineNo">424</span> Set<String> requestedQop =<a name="line.424"></a>
-<span class="sourceLineNo">425</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.425"></a>
-<span class="sourceLineNo">426</span> String negotiatedQop = getNegotiatedQop();<a name="line.426"></a>
-<span class="sourceLineNo">427</span> LOG.debug(<a name="line.427"></a>
-<span class="sourceLineNo">428</span> "Verifying QOP, requested QOP = " + requestedQop + ", negotiated QOP = " + negotiatedQop);<a name="line.428"></a>
-<span class="sourceLineNo">429</span> if (!requestedQop.contains(negotiatedQop)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span> throw new IOException(String.format("SASL handshake completed, but "<a name="line.430"></a>
-<span class="sourceLineNo">431</span> + "channel does not have acceptable quality of protection, "<a name="line.431"></a>
-<span class="sourceLineNo">432</span> + "requested = %s, negotiated = %s",<a name="line.432"></a>
-<span class="sourceLineNo">433</span> requestedQop, negotiatedQop));<a name="line.433"></a>
-<span class="sourceLineNo">434</span> }<a name="line.434"></a>
-<span class="sourceLineNo">435</span> }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span> private boolean useWrap() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> String qop = (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> return qop != null && !"auth".equalsIgnoreCase(qop);<a name="line.439"></a>
-<span class="sourceLineNo">440</span> }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span> private CipherOption unwrap(CipherOption option, SaslClient saslClient) throws IOException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> byte[] inKey = option.getInKey();<a name="line.443"></a>
-<span class="sourceLineNo">444</span> if (inKey != null) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span> inKey = saslClient.unwrap(inKey, 0, inKey.length);<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> byte[] outKey = option.getOutKey();<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (outKey != null) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> outKey = saslClient.unwrap(outKey, 0, outKey.length);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> }<a name="line.450"></a>
-<span class="sourceLineNo">451</span> return new CipherOption(option.getCipherSuite(), inKey, option.getInIv(), outKey,<a name="line.451"></a>
-<span class="sourceLineNo">452</span> option.getOutIv());<a name="line.452"></a>
-<span class="sourceLineNo">453</span> }<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span> private CipherOption getCipherOption(DataTransferEncryptorMessageProto proto,<a name="line.455"></a>
-<span class="sourceLineNo">456</span> boolean isNegotiatedQopPrivacy, SaslClient saslClient) throws IOException {<a name="line.456"></a>
-<span class="sourceLineNo">457</span> List<CipherOption> cipherOptions =<a name="line.457"></a>
-<span class="sourceLineNo">458</span> PB_HELPER.convertCipherOptionProtos(proto.getCipherOptionList());<a name="line.458"></a>
-<span class="sourceLineNo">459</span> if (cipherOptions == null || cipherOptions.isEmpty()) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span> return null;<a name="line.460"></a>
+<span class="sourceLineNo">328</span> @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.329"></a>
+<span class="sourceLineNo">330</span> NameCallback nc = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span> PasswordCallback pc = null;<a name="line.331"></a>
+<span class="sourceLineNo">332</span> RealmCallback rc = null;<a name="line.332"></a>
+<span class="sourceLineNo">333</span> for (Callback callback : callbacks) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span> if (callback instanceof RealmChoiceCallback) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span> continue;<a name="line.335"></a>
+<span class="sourceLineNo">336</span> } else if (callback instanceof NameCallback) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span> nc = (NameCallback) callback;<a name="line.337"></a>
+<span class="sourceLineNo">338</span> } else if (callback instanceof PasswordCallback) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span> pc = (PasswordCallback) callback;<a name="line.339"></a>
+<span class="sourceLineNo">340</span> } else if (callback instanceof RealmCallback) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span> rc = (RealmCallback) callback;<a name="line.341"></a>
+<span class="sourceLineNo">342</span> } else {<a name="line.342"></a>
+<span class="sourceLineNo">343</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.343"></a>
+<span class="sourceLineNo">344</span> }<a name="line.344"></a>
+<span class="sourceLineNo">345</span> }<a name="line.345"></a>
+<span class="sourceLineNo">346</span> if (nc != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> nc.setName(userName);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span> if (pc != null) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span> pc.setPassword(password);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> }<a name="line.351"></a>
+<span class="sourceLineNo">352</span> if (rc != null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span> rc.setText(rc.getDefaultText());<a name="line.353"></a>
+<span class="sourceLineNo">354</span> }<a name="line.354"></a>
+<span class="sourceLineNo">355</span> }<a name="line.355"></a>
+<span class="sourceLineNo">356</span> }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span> private final Configuration conf;<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span> private final Map<String, String> saslProps;<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span> private final SaslClient saslClient;<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span> private final int timeoutMs;<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span> private final Promise<Void> promise;<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span> private int step = 0;<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.372"></a>
+<span class="sourceLineNo">373</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span> this.conf = conf;<a name="line.374"></a>
+<span class="sourceLineNo">375</span> this.saslProps = saslProps;<a name="line.375"></a>
+<span class="sourceLineNo">376</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.376"></a>
+<span class="sourceLineNo">377</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.377"></a>
+<span class="sourceLineNo">378</span> this.timeoutMs = timeoutMs;<a name="line.378"></a>
+<span class="sourceLineNo">379</span> this.promise = promise;<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> sendSaslMessage(ctx, payload, null);<a name="line.383"></a>
+<span class="sourceLineNo">384</span> }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.386"></a>
+<span class="sourceLineNo">387</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.387"></a>
+<span class="sourceLineNo">388</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.388"></a>
+<span class="sourceLineNo">389</span> // values for future expansion.<a name="line.389"></a>
+<span class="sourceLineNo">390</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.390"></a>
+<span class="sourceLineNo">391</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span> return null;<a name="line.392"></a>
+<span class="sourceLineNo">393</span> }<a name="line.393"></a>
+<span class="sourceLineNo">394</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.395"></a>
+<span class="sourceLineNo">396</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.396"></a>
+<span class="sourceLineNo">397</span> }<a name="line.397"></a>
+<span class="sourceLineNo">398</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.398"></a>
+<span class="sourceLineNo">399</span> }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.401"></a>
+<span class="sourceLineNo">402</span> List<CipherOption> options) throws IOException {<a name="line.402"></a>
+<span class="sourceLineNo">403</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.403"></a>
+<span class="sourceLineNo">404</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.404"></a>
+<span class="sourceLineNo">405</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.405"></a>
+<span class="sourceLineNo">406</span> if (payload != null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.407"></a>
+<span class="sourceLineNo">408</span> // and we want to keep that out of hbase-server.<a name="line.408"></a>
+<span class="sourceLineNo">409</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.409"></a>
+<span class="sourceLineNo">410</span> }<a name="line.410"></a>
+<span class="sourceLineNo">411</span> if (options != null) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.412"></a>
+<span class="sourceLineNo">413</span> }<a name="line.413"></a>
+<span class="sourceLineNo">414</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.414"></a>
+<span class="sourceLineNo">415</span> int size = proto.getSerializedSize();<a name="line.415"></a>
+<span class="sourceLineNo">416</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.416"></a>
+<span class="sourceLineNo">417</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.417"></a>
+<span class="sourceLineNo">418</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.418"></a>
+<span class="sourceLineNo">419</span> ctx.write(buf);<a name="line.419"></a>
+<span class="sourceLineNo">420</span> }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span> @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.424"></a>
+<span class="sourceLineNo">425</span> sendSaslMessage(ctx, new byte[0]);<a name="line.425"></a>
+<span class="sourceLineNo">426</span> ctx.flush();<a name="line.426"></a>
+<span class="sourceLineNo">427</span> step++;<a name="line.427"></a>
+<span class="sourceLineNo">428</span> }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span> @Override<a name="line.430"></a>
+<span class="sourceLineNo">431</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.431"></a>
+<span class="sourceLineNo">432</span> saslClient.dispose();<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.435"></a>
+<span class="sourceLineNo">436</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.437"></a>
+<span class="sourceLineNo">438</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span> throw new IOException(proto.getMessage());<a name="line.439"></a>
+<span class="sourceLineNo">440</span> }<a name="line.440"></a>
+<span class="sourceLineNo">441</span> }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span> private String getNegotiatedQop() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span> private boolean isNegotia
<TRUNCATED>
[34/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html
index 8377595..f705e22 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactionTool.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
<hr>
<br>
<pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.57">CompactionPipeline</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.56">CompactionPipeline</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">The compaction pipeline of a <a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver"><code>CompactingMemStore</code></a>, is a FIFO queue of segments.
It supports pushing a segment at the head of the pipeline and removing a segment from the
@@ -328,7 +328,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
-<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.58">LOG</a></pre>
+<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.57">LOG</a></pre>
</li>
</ul>
<a name="FIXED_OVERHEAD">
@@ -337,7 +337,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>FIXED_OVERHEAD</h4>
-<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.60">FIXED_OVERHEAD</a></pre>
+<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.59">FIXED_OVERHEAD</a></pre>
</li>
</ul>
<a name="DEEP_OVERHEAD">
@@ -346,7 +346,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>DEEP_OVERHEAD</h4>
-<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.62">DEEP_OVERHEAD</a></pre>
+<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.61">DEEP_OVERHEAD</a></pre>
</li>
</ul>
<a name="region">
@@ -355,7 +355,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>region</h4>
-<pre>private final <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.64">region</a></pre>
+<pre>private final <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.63">region</a></pre>
</li>
</ul>
<a name="pipeline">
@@ -364,7 +364,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>pipeline</h4>
-<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.65">pipeline</a></pre>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.64">pipeline</a></pre>
</li>
</ul>
<a name="readOnlyCopy">
@@ -373,7 +373,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>readOnlyCopy</h4>
-<pre>private volatile <a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.67">readOnlyCopy</a></pre>
+<pre>private volatile <a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.66">readOnlyCopy</a></pre>
</li>
</ul>
<a name="version">
@@ -382,7 +382,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>version</h4>
-<pre>private volatile long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.69">version</a></pre>
+<pre>private volatile long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.68">version</a></pre>
</li>
</ul>
</li>
@@ -399,7 +399,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>CompactionPipeline</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.71">CompactionPipeline</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a> region)</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.70">CompactionPipeline</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a> region)</pre>
</li>
</ul>
</li>
@@ -416,7 +416,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>pushHead</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.75">pushHead</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> segment)</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.74">pushHead</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> segment)</pre>
</li>
</ul>
<a name="getVersionedList--">
@@ -425,7 +425,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getVersionedList</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.85">getVersionedList</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.84">getVersionedList</a>()</pre>
</li>
</ul>
<a name="getVersionedTail--">
@@ -434,7 +434,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getVersionedTail</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.91">getVersionedTail</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.90">getVersionedTail</a>()</pre>
</li>
</ul>
<a name="swap-org.apache.hadoop.hbase.regionserver.VersionedSegmentsList-org.apache.hadoop.hbase.regionserver.ImmutableSegment-boolean-boolean-">
@@ -443,7 +443,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>swap</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.118">swap</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a> versionedList,
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.117">swap</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a> versionedList,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a> segment,
boolean closeSuffix,
boolean updateRegionSize)</pre>
@@ -472,7 +472,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getSegmentsHeapSize</h4>
-<pre>private static long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.167">getSegmentsHeapSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>> list)</pre>
+<pre>private static long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.161">getSegmentsHeapSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>> list)</pre>
</li>
</ul>
<a name="getSegmentsOffHeapSize-java.util.List-">
@@ -481,7 +481,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getSegmentsOffHeapSize</h4>
-<pre>private static long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.175">getSegmentsOffHeapSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>> list)</pre>
+<pre>private static long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.169">getSegmentsOffHeapSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>> list)</pre>
</li>
</ul>
<a name="getSegmentsKeySize-java.util.List-">
@@ -490,7 +490,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getSegmentsKeySize</h4>
-<pre>private static long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.183">getSegmentsKeySize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>> list)</pre>
+<pre>private static long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.177">getSegmentsKeySize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>> list)</pre>
</li>
</ul>
<a name="flattenOneSegment-long-org.apache.hadoop.hbase.regionserver.CompactingMemStore.IndexType-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">
@@ -499,7 +499,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>flattenOneSegment</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.199">flattenOneSegment</a>(long requesterVersion,
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.193">flattenOneSegment</a>(long requesterVersion,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver">CompactingMemStore.IndexType</a> idxType,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</pre>
<div class="block">If the caller holds the current version, go over the the pipeline and try to flatten each
@@ -518,7 +518,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>isEmpty</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.241">isEmpty</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.235">isEmpty</a>()</pre>
</li>
</ul>
<a name="getSegments--">
@@ -527,7 +527,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getSegments</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.245">getSegments</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.239">getSegments</a>()</pre>
</li>
</ul>
<a name="size--">
@@ -536,7 +536,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.249">size</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.243">size</a>()</pre>
</li>
</ul>
<a name="getMinSequenceId--">
@@ -545,7 +545,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getMinSequenceId</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.253">getMinSequenceId</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.247">getMinSequenceId</a>()</pre>
</li>
</ul>
<a name="getTailSize--">
@@ -554,7 +554,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getTailSize</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.262">getTailSize</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.256">getTailSize</a>()</pre>
</li>
</ul>
<a name="getPipelineSize--">
@@ -563,7 +563,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getPipelineSize</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.267">getPipelineSize</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.261">getPipelineSize</a>()</pre>
</li>
</ul>
<a name="swapSuffix-java.util.List-org.apache.hadoop.hbase.regionserver.ImmutableSegment-boolean-">
@@ -572,7 +572,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>swapSuffix</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.276">swapSuffix</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>> suffix,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.270">swapSuffix</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>> suffix,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a> segment,
boolean closeSegmentsInSuffix)</pre>
</li>
@@ -583,7 +583,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>replaceAtIndex</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.297">replaceAtIndex</a>(int idx,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.291">replaceAtIndex</a>(int idx,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a> newSegment)</pre>
</li>
</ul>
@@ -593,7 +593,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getTail</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.307">getTail</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.301">getTail</a>()</pre>
</li>
</ul>
<a name="addFirst-org.apache.hadoop.hbase.regionserver.ImmutableSegment-">
@@ -602,7 +602,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>addFirst</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.315">addFirst</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a> segment)</pre>
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.309">addFirst</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a> segment)</pre>
</li>
</ul>
<a name="validateSuffixList-java.util.LinkedList-">
@@ -611,7 +611,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>validateSuffixList</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.321">validateSuffixList</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a>> suffix)</pre>
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#line.315">validateSuffixList</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a>> suffix)</pre>
</li>
</ul>
</li>
@@ -642,7 +642,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactionTool.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html b/devapidocs/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html
index f09c4bb..5556638 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html
@@ -308,9 +308,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">internalAdd</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>boolean</code></td>
@@ -361,10 +362,11 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">updateMetaInfo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
boolean succ,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
</tr>
</table>
<ul class="blockList">
@@ -379,7 +381,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellLength-org.apache.hadoop.hbase.Cell-">getCellLength</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getComparator--">getComparator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreLAB--">getMemStoreLAB</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreSize--">getMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getOffHeapSize--">getOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#heapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">heapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOffHeapSize-boolean-">indexEntryOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOnHeapSize-boolean-">indexEntryOnHeapSiz
e</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#offHeapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">offHeapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareAndSetDataSize-long-long-">compareAndSetDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellLength-org.apache.hadoop.hbase.Cell-">getCellLength</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getComparator--">getComparator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreLAB--">getMemStoreLAB</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreSize--">getMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getOffHeapSize--">getOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#heapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">heapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOffHeapSize-boolean-">indexEntryOffHea
pSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOnHeapSize-boolean-">indexEntryOnHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#offHeapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">offHeapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#sharedLock--">sharedLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#sharedUnlock--">sharedUnlock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#waitForUpdates--">waitForUpdates</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -829,7 +831,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
</dl>
</li>
</ul>
-<a name="internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
+<a name="internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">
<!-- -->
</a>
<ul class="blockList">
@@ -837,26 +839,28 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<h4>internalAdd</h4>
<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#line.242">internalAdd</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">internalAdd</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></code></dd>
</dl>
</li>
</ul>
-<a name="updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
+<a name="updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateMetaInfo</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#line.247">updateMetaInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#line.248">updateMetaInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
boolean succ,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">updateMetaInfo</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></code></dd>
</dl>
</li>
</ul>
@@ -866,7 +870,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>tailSet</h4>
-<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#line.258">tailSet</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstCell)</pre>
+<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#line.259">tailSet</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstCell)</pre>
<div class="block">Returns a subset of the segment cell set, which starts with the given cell</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -884,7 +888,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>dump</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#line.267">dump</a>(org.slf4j.Logger log)</pre>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#line.268">dump</a>(org.slf4j.Logger log)</pre>
<div class="block">Dumps all cells of the segment into the given log</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -898,7 +902,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#line.274">toString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#line.275">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html#toString--">toString</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a></code></dd>
@@ -911,7 +915,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockListLast">
<li class="blockList">
<h4>getSnapshotScanners</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#line.284">getSnapshotScanners</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#line.285">getSnapshotScanners</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html#getSnapshotScanners--">getSnapshotScanners</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a></code></dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html b/devapidocs/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html
index 22f5cc8..76cea24 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":10,"i10":10,"i11":10,"i12":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -171,7 +171,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#active">active</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#snapshot">snapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#snapshotId">snapshotId</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#snapshot">snapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#snapshotId">snapshotId</a></code></li>
</ul>
</li>
</ul>
@@ -213,50 +213,49 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
-<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#checkActiveSize--">checkActiveSize</a></span>()</code>
-<div class="block">Check whether anything need to be done based on the current active set size
- Nothing need to be done for the DefaultMemStore</div>
-</td>
-</tr>
-<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#getFlushableSize--">getFlushableSize</a></span>()</code>
<div class="block">Flush will first clear out the data in snapshot if any (It will take a second flush
invocation to clear the current Cell set).</div>
</td>
</tr>
-<tr id="i2" class="altColor">
+<tr id="i1" class="rowColor">
<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#getNextRow-org.apache.hadoop.hbase.Cell-">getNextRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
-<tr id="i3" class="rowColor">
+<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#getScanners-long-">getScanners</a></span>(long readPt)</code> </td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#getSegments--">getSegments</a></span>()</code> </td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#heapSize--">heapSize</a></span>()</code> </td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#isSloppy--">isSloppy</a></span>()</code> </td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#keySize--">keySize</a></span>()</code> </td>
</tr>
-<tr id="i8" class="altColor">
+<tr id="i7" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#main-java.lang.String:A-">main</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)</code>
<div class="block">Code to help figure if our approximation of object heap sizes is close
enough.</div>
</td>
</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">postUpdate</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive)</code>
+<div class="block">Issue any post update synchronization and tests</div>
+</td>
+</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#preFlushSeqIDEstimation--">preFlushSeqIDEstimation</a></span>()</code>
@@ -264,16 +263,28 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
</td>
</tr>
<tr id="i10" class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code>
+<div class="block">Issue any synchronization and test needed before applying the update</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#size--">size</a></span>()</code> </td>
</tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#sizeAddedPreOperation--">sizeAddedPreOperation</a></span>()</code> </td>
+</tr>
+<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSnapshot.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSnapshot</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#snapshot--">snapshot</a></span>()</code>
<div class="block">Creates a snapshot of the current memstore.</div>
</td>
</tr>
-<tr id="i12" class="altColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#updateLowestUnflushedSequenceIdInWAL-boolean-">updateLowestUnflushedSequenceIdInWAL</a></span>(boolean onlyIfMoreRecent)</code>
<div class="block">Updates the wal with the lowest sequence id (oldest entry) that is still in memory</div>
@@ -515,34 +526,72 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
</dl>
</li>
</ul>
-<a name="size--">
+<a name="preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
-<h4>size</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#line.150">size</a>()</pre>
+<h4>preUpdate</h4>
+<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#line.149">preUpdate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">AbstractMemStore</a></code></span></div>
+<div class="block">Issue any synchronization and test needed before applying the update</div>
<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>currentActive</code> - the segment to be updated</dd>
+<dd><code>cell</code> - the cell to be added</dd>
+<dd><code>memstoreSizing</code> - object to accumulate region size changes</dd>
<dt><span class="returnLabel">Returns:</span></dt>
-<dd>Total memory occupied by this MemStore. This won't include any size occupied by the
- snapshot. We assume the snapshot will get cleared soon. This is not thread safe and
- the memstore may be changed while computing its size. It is the responsibility of the
- caller to make sure this doesn't happen.</dd>
+<dd>true iff can proceed with applying the update</dd>
+</dl>
+</li>
+</ul>
+<a name="postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>postUpdate</h4>
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#line.154">postUpdate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">AbstractMemStore</a></code></span></div>
+<div class="block">Issue any post update synchronization and tests</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">postUpdate</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>currentActive</code> - updated segment</dd>
</dl>
</li>
</ul>
-<a name="checkActiveSize--">
+<a name="sizeAddedPreOperation--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
-<h4>checkActiveSize</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#line.159">checkActiveSize</a>()</pre>
-<div class="block">Check whether anything need to be done based on the current active set size
- Nothing need to be done for the DefaultMemStore</div>
+<h4>sizeAddedPreOperation</h4>
+<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#line.158">sizeAddedPreOperation</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#checkActiveSize--">checkActiveSize</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#sizeAddedPreOperation--">sizeAddedPreOperation</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="size--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>size</h4>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#line.163">size</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Total memory occupied by this MemStore. This won't include any size occupied by the
+ snapshot. We assume the snapshot will get cleared soon. This is not thread safe and
+ the memstore may be changed while computing its size. It is the responsibility of the
+ caller to make sure this doesn't happen.</dd>
</dl>
</li>
</ul>
@@ -552,7 +601,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>preFlushSeqIDEstimation</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#line.164">preFlushSeqIDEstimation</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#line.168">preFlushSeqIDEstimation</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore.html#preFlushSeqIDEstimation--">MemStore</a></code></span></div>
<div class="block">This method is called before the flush is executed.</div>
<dl>
@@ -568,7 +617,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>isSloppy</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#line.168">isSloppy</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#line.172">isSloppy</a>()</pre>
</li>
</ul>
<a name="main-java.lang.String:A-">
@@ -577,7 +626,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockListLast">
<li class="blockList">
<h4>main</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#line.179">main</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)</pre>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#line.183">main</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)</pre>
<div class="block">Code to help figure if our approximation of object heap sizes is close
enough. See hbase-900. Fills memstores then waits so user can heap
dump and bring up resultant hprof in something like jprofiler which
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
index 779b1fd..b5220bc 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
<hr>
<br>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang">@FunctionalInterface</a>
-public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3045">HRegion.BatchOperation.Visitor</a></pre>
+public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3051">HRegion.BatchOperation.Visitor</a></pre>
<div class="block">Visitor interface for batch operations</div>
</li>
</ul>
@@ -155,7 +155,7 @@ public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase
<ul class="blockListLast">
<li class="blockList">
<h4>visit</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html#line.3050">visit</a>(int index)
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html#line.3056">visit</a>(int index)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
[46/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index da7f29b7..b1e8f2b 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -1167,7 +1167,7 @@
<dd>
<div class="block">Write the updates</div>
</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MutableSegment.html#add-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">add(Cell, boolean, MemStoreSizing)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MutableSegment.html#add-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">add(Cell, boolean, MemStoreSizing, boolean)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a></dt>
<dd>
<div class="block">Adds the given cell into the segment</div>
</dd>
@@ -2801,6 +2801,12 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationLoadSink.html#ageOfLastAppliedOp">ageOfLastAppliedOp</a></span> - Variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationLoadSink.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSink</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#ageOfLastShippedOp">ageOfLastShippedOp</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsSource</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#ageOfLastShippedOp">ageOfLastShippedOp</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#ageOfLastShippedOp">ageOfLastShippedOp</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationLoadSource.html#ageOfLastShippedOp">ageOfLastShippedOp</a></span> - Variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationLoadSource.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSource</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.html#ageOfLastShippedOpHist">ageOfLastShippedOpHist</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationGlobalSourceSource</a></dt>
@@ -6543,8 +6549,6 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#blockUpdates--">blockUpdates()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#blockUpdates--">blockUpdates()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a></dt>
-<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/io/hfile/BlockWithScanInfo.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockWithScanInfo</span></a> - Class in <a href="org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a></dt>
<dd>
<div class="block">BlockWithScanInfo is wrapper class for HFileBlock with other attributes.</div>
@@ -7138,6 +7142,8 @@
<dd>
<div class="block">Create a store file writer.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#build--">build()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationPeerConfig.ReplicationPeerConfigBuilderImpl.html#build--">build()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationPeerConfig.ReplicationPeerConfigBuilderImpl.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig.ReplicationPeerConfigBuilderImpl</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationPeerConfigBuilder.html#build--">build()</a></span> - Method in interface org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationPeerConfigBuilder.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationPeerConfigBuilder</a></dt>
@@ -8046,6 +8052,8 @@
<dd>
<div class="block">Cache the block to ramCache</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#cacheBlockWithWaitInternal-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-boolean-boolean-">cacheBlockWithWaitInternal(BlockCacheKey, Cacheable, boolean, boolean)</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#cacheBloomsOnWrite">cacheBloomsOnWrite</a></span> - Variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
<dd>
<div class="block">Whether compound bloom filter blocks should be cached on write</div>
@@ -8370,6 +8378,8 @@
<dd>
<div class="block">Calculate size for cleaner pool.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#calculateReplicationDelay-long-long-int-">calculateReplicationDelay(long, long, int)</a></span> - Static method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationLoad</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/QuotaUtil.html#calculateResultSize-org.apache.hadoop.hbase.client.Result-">calculateResultSize(Result)</a></span> - Static method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaUtil.html" title="class in org.apache.hadoop.hbase.quotas">QuotaUtil</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/QuotaUtil.html#calculateResultSize-java.util.List-">calculateResultSize(List<Result>)</a></span> - Static method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaUtil.html" title="class in org.apache.hadoop.hbase.quotas">QuotaUtil</a></dt>
@@ -10008,21 +10018,12 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKWatcher.html#checkACLForSuperUsers-java.lang.String:A-java.util.List-">checkACLForSuperUsers(String[], List<ACL>)</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#checkActiveSize--">checkActiveSize()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></dt>
-<dd>
-<div class="block">Check whether anything need to be done based on the current active set size</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#checkActiveSize--">checkActiveSize()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#checkAllBytesParsed--">checkAllBytesParsed()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#checkAndAddToActiveSize-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">checkAndAddToActiveSize(MutableSegment, Cell, MemStoreSizing)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a></dt>
<dd>
<div class="block">Check whether anything need to be done based on the current active set size.</div>
</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#checkActiveSize--">checkActiveSize()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/DefaultMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">DefaultMemStore</a></dt>
-<dd>
-<div class="block">Check whether anything need to be done based on the current active set size
- Nothing need to be done for the DefaultMemStore</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#checkAllBytesParsed--">checkAllBytesParsed()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a></dt>
-<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/ImmutableMemStoreLAB.html#checkAndCloseMSLABs-int-">checkAndCloseMSLABs(int)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ImmutableMemStoreLAB.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableMemStoreLAB</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/util/RestoreTool.html#checkAndCreateTable-org.apache.hadoop.hbase.client.Connection-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.TableName-java.util.ArrayList-org.apache.hadoop.hbase.client.TableDescriptor-boolean-">checkAndCreateTable(Connection, Path, TableName, TableName, ArrayList<Path>, TableDescriptor, boolean)</a></span> - Method in class org.apache.hadoop.hbase.backup.util.<a href="org/apache/hadoop/hbase/backup/util/RestoreTool.html" title="class in org.apache.hadoop.hbase.backup.util">RestoreTool</a></dt>
@@ -14265,7 +14266,7 @@
<div class="block">Types of indexes (part of immutable segments) to be used after flattening,
compaction, or merge are applied.</div>
</dd>
-<dt><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.InMemoryFlushRunnable</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
+<dt><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.InMemoryCompactionRunnable</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
<dd>
<div class="block">The in-memory-flusher thread performs the flush asynchronously.</div>
</dd>
@@ -14916,6 +14917,14 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/Bytes.RowEndKeyComparator.html#compare-byte:A-int-int-byte:A-int-int-">compare(byte[], int, int, byte[], int, int)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/Bytes.RowEndKeyComparator.html" title="class in org.apache.hadoop.hbase.util">Bytes.RowEndKeyComparator</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#compareAndSetDataSize-long-long-">compareAndSetDataSize(long, long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#compareAndSetDataSize-long-long-">compareAndSetDataSize(long, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html" title="class in org.apache.hadoop.hbase.regionserver">NonThreadSafeMemStoreSizing</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Segment.html#compareAndSetDataSize-long-long-">compareAndSetDataSize(long, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#compareAndSetDataSize-long-long-">compareAndSetDataSize(long, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html" title="class in org.apache.hadoop.hbase.regionserver">ThreadSafeMemStoreSizing</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TimeRangeTracker.html#compareAndSetMax-long-long-">compareAndSetMax(long, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TimeRangeTracker</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TimeRangeTracker.NonSyncTimeRangeTracker.html#compareAndSetMax-long-long-">compareAndSetMax(long, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TimeRangeTracker.NonSyncTimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TimeRangeTracker.NonSyncTimeRangeTracker</a></dt>
@@ -17136,6 +17145,10 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html#constructImpl--">constructImpl()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RegionListTmpl</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#constructImpl-java.lang.Class-">constructImpl(Class<? extends AbstractTemplateImpl>)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#constructImpl--">constructImpl()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#constructImpl-java.lang.Class-">constructImpl(Class<? extends AbstractTemplateImpl>)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#constructImpl--">constructImpl()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a></dt>
@@ -18040,7 +18053,7 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#copyCellInto-org.apache.hadoop.hbase.Cell-int-">copyCellInto(Cell, int)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreLABImpl</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#copyCellIntoMSLAB-org.apache.hadoop.hbase.Cell-">copyCellIntoMSLAB(Cell)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">CellChunkImmutableSegment</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#copyCellIntoMSLAB-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">copyCellIntoMSLAB(Cell, MemStoreSizing)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">CellChunkImmutableSegment</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportMapper.html#copyData-org.apache.hadoop.mapreduce.Mapper.Context-org.apache.hadoop.fs.Path-java.io.InputStream-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.FSDataOutputStream-long-">copyData(Mapper<BytesWritable, NullWritable, NullWritable, NullWritable>.Context, Path, InputStream, Path, FSDataOutputStream, long)</a></span> - Method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportMapper.html" title="class in org.apache.hadoop.hbase.snapshot">ExportSnapshot.ExportMapper</a></dt>
<dd> </dd>
@@ -21048,6 +21061,10 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#createTransparentCryptoHelper--">createTransparentCryptoHelper()</a></span> - Static method in class org.apache.hadoop.hbase.io.asyncfs.<a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html" title="class in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#createTransparentCryptoHelper27--">createTransparentCryptoHelper27()</a></span> - Static method in class org.apache.hadoop.hbase.io.asyncfs.<a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html" title="class in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#createTransparentCryptoHelper28--">createTransparentCryptoHelper28()</a></span> - Static method in class org.apache.hadoop.hbase.io.asyncfs.<a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html" title="class in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#createTreeSet--">createTreeSet()</a></span> - Method in class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html" title="class in org.apache.hadoop.hbase.filter">MultipleColumnPrefixFilter</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#createUnassignProcedure-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-boolean-">createUnassignProcedure(RegionInfo, ServerName, boolean)</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a></dt>
@@ -21474,6 +21491,10 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#currentPath">currentPath</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#currentPath">currentPath</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#currentPath">currentPath</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#currentPath">currentPath</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/WALInputFormat.WALRecordReader.html#currentPos">currentPos</a></span> - Variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/WALInputFormat.WALRecordReader.html" title="class in org.apache.hadoop.hbase.mapreduce">WALInputFormat.WALRecordReader</a></dt>
@@ -21482,6 +21503,10 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#currentPosition">currentPosition</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceWALReader</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#currentPosition">currentPosition</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#currentPosition">currentPosition</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#currentPositionOfEntry">currentPositionOfEntry</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#currentPositionOfReader">currentPositionOfReader</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a></dt>
@@ -23731,6 +23756,8 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.html#DEFAULT_TIMEOUT">DEFAULT_TIMEOUT</a></span> - Static variable in class org.apache.hadoop.hbase.coordination.<a href="org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.html" title="class in org.apache.hadoop.hbase.coordination">ZKSplitLogManagerCoordination</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#DEFAULT_TIMEOUT">DEFAULT_TIMEOUT</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/Canary.html#DEFAULT_TIMEOUT">DEFAULT_TIMEOUT</a></span> - Static variable in class org.apache.hadoop.hbase.tool.<a href="org/apache/hadoop/hbase/tool/Canary.html" title="class in org.apache.hadoop.hbase.tool">Canary</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/ImportTsv.TsvParser.html#DEFAULT_TIMESTAMP_COLUMN_INDEX">DEFAULT_TIMESTAMP_COLUMN_INDEX</a></span> - Static variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/ImportTsv.TsvParser.html" title="class in org.apache.hadoop.hbase.mapreduce">ImportTsv.TsvParser</a></dt>
@@ -25950,6 +25977,10 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#doAdd-org.apache.hadoop.hbase.master.procedure.FairQueue-org.apache.hadoop.hbase.master.procedure.Queue-org.apache.hadoop.hbase.procedure2.Procedure-boolean-">doAdd(FairQueue<T>, Queue<T>, Procedure<?>, boolean)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureScheduler</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#doAdd-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">doAdd(MutableSegment, Cell, MemStoreSizing)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#doAddOrUpsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">doAddOrUpsert(Cell, long, MemStoreSizing, boolean)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#doAppend-W-org.apache.hadoop.hbase.regionserver.wal.FSWALEntry-">doAppend(W, FSWALEntry)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#doAppend-org.apache.hadoop.hbase.wal.WALProvider.AsyncWriter-org.apache.hadoop.hbase.regionserver.wal.FSWALEntry-">doAppend(WALProvider.AsyncWriter, FSWALEntry)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
@@ -26433,6 +26464,8 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/coprocessor/DoubleColumnInterpreter.html#DoubleColumnInterpreter--">DoubleColumnInterpreter()</a></span> - Constructor for class org.apache.hadoop.hbase.client.coprocessor.<a href="org/apache/hadoop/hbase/client/coprocessor/DoubleColumnInterpreter.html" title="class in org.apache.hadoop.hbase.client.coprocessor">DoubleColumnInterpreter</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#doUpsert-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">doUpsert(MutableSegment, Cell, long, MemStoreSizing)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#doWALAppend-org.apache.hadoop.hbase.wal.WALEdit-org.apache.hadoop.hbase.client.Durability-long-long-">doWALAppend(WALEdit, Durability, long, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#doWALAppend-org.apache.hadoop.hbase.wal.WALEdit-org.apache.hadoop.hbase.client.Durability-java.util.List-long-long-long-">doWALAppend(WALEdit, Durability, List<UUID>, long, long, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></dt>
@@ -30885,6 +30918,10 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/WALInputFormat.WALSplit.html#fileSize">fileSize</a></span> - Variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/WALInputFormat.WALSplit.html" title="class in org.apache.hadoop.hbase.mapreduce">WALInputFormat.WALSplit</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#fileSize">fileSize</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#fileSize">fileSize</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/SnapshotInfo.html#fileSizeToString-long-">fileSizeToString(long)</a></span> - Method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/SnapshotInfo.html" title="class in org.apache.hadoop.hbase.snapshot">SnapshotInfo</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportMapper.html#filesMode">filesMode</a></span> - Variable in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportMapper.html" title="class in org.apache.hadoop.hbase.snapshot">ExportSnapshot.ExportMapper</a></dt>
@@ -32479,6 +32516,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/codec/BaseEncoder.html#flushed">flushed</a></span> - Variable in class org.apache.hadoop.hbase.codec.<a href="org/apache/hadoop/hbase/codec/BaseEncoder.html" title="class in org.apache.hadoop.hbase.codec">BaseEncoder</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MutableSegment.html#flushed">flushed</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StoreScanner.html#flushed">flushed</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">StoreScanner</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#FLUSHED_CELLS">FLUSHED_CELLS</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
@@ -32546,6 +32585,8 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#flushInMemory--">flushInMemory()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#flushInMemory-org.apache.hadoop.hbase.regionserver.MutableSegment-">flushInMemory(MutableSegment)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StripeStoreConfig.html#flushIntoL0">flushIntoL0</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StripeStoreConfig.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreConfig</a></dt>
<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/regionserver/FlushLargeStoresPolicy.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushLargeStoresPolicy</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
@@ -34547,10 +34588,16 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationLoadSink.html#getAgeOfLastAppliedOp--">getAgeOfLastAppliedOp()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationLoadSink.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSink</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#getAgeofLastShippedOp-java.lang.String-">getAgeofLastShippedOp(String)</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsSource</a></dt>
+<dd>
+<div class="block">get age of last shipped op of given wal group.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#getAgeOfLastShippedOp--">getAgeOfLastShippedOp()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsSource</a></dt>
<dd>
<div class="block">Get AgeOfLastShippedOp</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getAgeOfLastShippedOp--">getAgeOfLastShippedOp()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationLoadSource.html#getAgeOfLastShippedOp--">getAgeOfLastShippedOp()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationLoadSource.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSource</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.html#getAggregate--">getAggregate()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceFactoryImpl</a></dt>
@@ -37606,6 +37653,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#getCurrentPath--">getCurrentPath()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceWALReader</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getCurrentPath--">getCurrentPath()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#getCurrentPath--">getCurrentPath()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#getCurrentPathStat--">getCurrentPathStat()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a></dt>
@@ -37614,6 +37663,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#getCurrentPosition--">getCurrentPosition()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getCurrentPosition--">getCurrentPosition()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#getCurrentRunTime--">getCurrentRunTime()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.WorkerThread</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCache.html#getCurrentSize--">getCurrentSize()</a></span> - Method in interface org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></dt>
@@ -38565,6 +38616,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationEndpoint.ReplicateContext.html#getEntries--">getEntries()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationEndpoint.ReplicateContext.html" title="class in org.apache.hadoop.hbase.replication">ReplicationEndpoint.ReplicateContext</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#getEntriesTimeout">getEntriesTimeout</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SingleResponse.html#getEntry--">getEntry()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SingleResponse.html" title="class in org.apache.hadoop.hbase.client">SingleResponse</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/util/Dictionary.html#getEntry-short-">getEntry(short)</a></span> - Method in interface org.apache.hadoop.hbase.io.util.<a href="org/apache/hadoop/hbase/io/util/Dictionary.html" title="interface in org.apache.hadoop.hbase.io.util">Dictionary</a></dt>
@@ -39317,6 +39370,10 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StoreFileComparators.GetFileSize.html#GetFileSize--">GetFileSize()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreFileComparators.GetFileSize.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileComparators.GetFileSize</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getFileSize-org.apache.hadoop.fs.Path-">getFileSize(Path)</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSource</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getFileSize--">getFileSize()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/util/BackupUtils.html#getFilesLength-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">getFilesLength(FileSystem, Path)</a></span> - Static method in class org.apache.hadoop.hbase.backup.util.<a href="org/apache/hadoop/hbase/backup/util/BackupUtils.html" title="class in org.apache.hadoop.hbase.backup.util">BackupUtils</a></dt>
<dd>
<div class="block">Get the total length of files under the given directory recursively.</div>
@@ -40216,6 +40273,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html#getImplData--">getImplData()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RegionListTmpl</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#getImplData--">getImplData()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#getImplData--">getImplData()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.html#getImplData--">getImplData()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ServerMetricsTmpl</a></dt>
@@ -41146,6 +41205,10 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.html#getLastShippedAge--">getLastShippedAge()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSourceImpl</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#getLastTimeStampOfWalGroup-java.lang.String-">getLastTimeStampOfWalGroup(String)</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsSource</a></dt>
+<dd>
+<div class="block">get the last timestamp of given wal group.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcConnection.html#getLastTouched--">getLastTouched()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">RpcConnection</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/RegionStates.RegionStateNode.html#getLastUpdate--">getLastUpdate()</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/RegionStates.RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStates.RegionStateNode</a></dt>
@@ -45059,6 +45122,8 @@
<dd>
<div class="block">Get the id that the source is replicating to.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getPeerId--">getPeerId()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/SyncReplicationPeerMappingManager.html#getPeerId-org.apache.hadoop.hbase.TableName-">getPeerId(TableName)</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/SyncReplicationPeerMappingManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">SyncReplicationPeerMappingManager</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationEndpoint.Context.html#getPeerId--">getPeerId()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationEndpoint.Context.html" title="class in org.apache.hadoop.hbase.replication">ReplicationEndpoint.Context</a></dt>
@@ -45982,6 +46047,8 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/ByteBufferPool.html#getQueueSize--">getQueueSize()</a></span> - Method in class org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/ByteBufferPool.html" title="class in org.apache.hadoop.hbase.io">ByteBufferPool</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getQueueSize--">getQueueSize()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/IncrementCoalescer.html#getQueueSize--">getQueueSize()</a></span> - Method in class org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/IncrementCoalescer.html" title="class in org.apache.hadoop.hbase.thrift">IncrementCoalescer</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/IncrementCoalescerMBean.html#getQueueSize--">getQueueSize()</a></span> - Method in interface org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/IncrementCoalescerMBean.html" title="interface in org.apache.hadoop.hbase.thrift">IncrementCoalescerMBean</a></dt>
@@ -47117,6 +47184,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.ImplData.html#getRegionServer--">getRegionServer()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RegionListTmpl.ImplData</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html#getRegionServer--">getRegionServer()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#getRegionServer--">getRegionServer()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/JVMClusterUtil.RegionServerThread.html#getRegionServer--">getRegionServer()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/JVMClusterUtil.RegionServerThread.html" title="class in org.apache.hadoop.hbase.util">JVMClusterUtil.RegionServerThread</a></dt>
@@ -47518,6 +47587,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/MetaTableAccessor.html#getReplicationBarriers-org.apache.hadoop.hbase.client.Result-">getReplicationBarriers(Result)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MetaTableAccessor.html" title="class in org.apache.hadoop.hbase">MetaTableAccessor</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getReplicationDelay--">getReplicationDelay()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getReplicationEndpoint--">getReplicationEndpoint()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSource</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getReplicationEndpoint--">getReplicationEndpoint()</a></span> - Method in interface org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceInterface</a></dt>
@@ -47554,6 +47625,10 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#getReplicationLoadSourceList--">getReplicationLoadSourceList()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder.ServerMetricsImpl</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#getReplicationManager--">getReplicationManager()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a></dt>
+<dd>
+<div class="block">Returns the replication manager</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/Replication.html#getReplicationManager--">getReplicationManager()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/Replication.html" title="class in org.apache.hadoop.hbase.replication.regionserver">Replication</a></dt>
<dd>
<div class="block">Get the replication sources manager</div>
@@ -52995,6 +53070,8 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#getUpdatesBlockedTime--">getUpdatesBlockedTime()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapperImpl</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Segment.html#getUpdatesLock--">getUpdatesLock()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/VersionInfo.html#getUrl--">getUrl()</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/VersionInfo.html" title="class in org.apache.hadoop.hbase.util">VersionInfo</a></dt>
<dd>
<div class="block">Get the subversion URL for the root hbase directory.</div>
@@ -53769,8 +53846,18 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/CommonFSUtils.html#getWALFileSystem-org.apache.hadoop.conf.Configuration-">getWALFileSystem(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/CommonFSUtils.html" title="class in org.apache.hadoop.hbase.util">CommonFSUtils</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getWalGroup--">getWalGroup()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationEndpoint.ReplicateContext.html#getWalGroupId--">getWalGroupId()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationEndpoint.ReplicateContext.html" title="class in org.apache.hadoop.hbase.replication">ReplicationEndpoint.ReplicateContext</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalGroupsReplicationStatus--">getWalGroupsReplicationStatus()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#getWalGroupStatus--">getWalGroupStatus()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSource</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getWalGroupStatus--">getWalGroupStatus()</a></span> - Method in interface org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceInterface</a></dt>
+<dd>
+<div class="block">get the stat of replication for each wal group.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/AbstractFSWALProvider.html#getWALNameGroupFromWALName-java.lang.String-int-">getWALNameGroupFromWALName(String, int)</a></span> - Static method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/AbstractFSWALProvider.html" title="class in org.apache.hadoop.hbase.wal">AbstractFSWALProvider</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/LogRoller.html#getWalNeedsRoll--">getWalNeedsRoll()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/LogRoller.html" title="class in org.apache.hadoop.hbase.regionserver">LogRoller</a></dt>
@@ -58594,6 +58681,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.ImplData.html#ImplData--">ImplData()</a></span> - Constructor for class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RegionListTmpl.ImplData</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html#ImplData--">ImplData()</a></span> - Constructor for class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#ImplData--">ImplData()</a></span> - Constructor for class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.ImplData.html#ImplData--">ImplData()</a></span> - Constructor for class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ServerMetricsTmpl.ImplData</a></dt>
@@ -58695,7 +58784,7 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.html#IN_MEMORY_COMPACTION_BYTES">IN_MEMORY_COMPACTION_BYTES</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">ColumnFamilyDescriptorBuilder</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#IN_MEMORY_FLUSH_THRESHOLD_FACTOR_DEFAULT">IN_MEMORY_FLUSH_THRESHOLD_FACTOR_DEFAULT</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#IN_MEMORY_FLUSH_MULTIPLIER">IN_MEMORY_FLUSH_MULTIPLIER</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#IN_MEMORY_FLUSH_THRESHOLD_FACTOR_KEY">IN_MEMORY_FLUSH_THRESHOLD_FACTOR_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a></dt>
<dd> </dd>
@@ -60968,9 +61057,11 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html#INMEMORY_COMPACTION_POOL">INMEMORY_COMPACTION_POOL</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#inMemoryFlushInProgress">inMemoryFlushInProgress</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#inMemoryCompaction--">inMemoryCompaction()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#inMemoryCompactionInProgress">inMemoryCompactionInProgress</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html#InMemoryFlushRunnable--">InMemoryFlushRunnable()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore.InMemoryFlushRunnable</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html#InMemoryCompactionRunnable--">InMemoryCompactionRunnable()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore.InMemoryCompactionRunnable</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#inmemoryFlushSize">inmemoryFlushSize</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a></dt>
<dd> </dd>
@@ -61277,11 +61368,11 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheStats.html#intermediateIndexMissCount">intermediateIndexMissCount</a></span> - Variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd(Cell, boolean, MemStoreSizing)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#internalAdd-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd(MutableSegment, Cell, boolean, MemStoreSizing)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd(Cell, boolean, MemStoreSizing)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">CompositeImmutableSegment</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">internalAdd(Cell, boolean, MemStoreSizing, boolean)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">CompositeImmutableSegment</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd(Cell, boolean, MemStoreSizing)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">internalAdd(Cell, boolean, MemStoreSizing, boolean)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#internalBalancer">internalBalancer</a></span> - Variable in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupBasedLoadBalancer</a></dt>
<dd> </dd>
@@ -69944,6 +70035,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.ImplData.html#m_regionServer">m_regionServer</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RegionListTmpl.ImplData</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html#m_regionServer">m_regionServer</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#m_regionServer">m_regionServer</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#m_serverManager">m_serverManager</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl.ImplData</a></dt>
@@ -70455,6 +70548,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html#makeImplData--">makeImplData()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RegionListTmpl</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#makeImplData--">makeImplData()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#makeImplData--">makeImplData()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.html#makeImplData--">makeImplData()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ServerMetricsTmpl</a></dt>
@@ -70500,6 +70595,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html#makeRenderer-org.apache.hadoop.hbase.regionserver.HRegionServer-java.util.List-">makeRenderer(HRegionServer, List<RegionInfo>)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RegionListTmpl</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#makeRenderer-org.apache.hadoop.hbase.regionserver.HRegionServer-">makeRenderer(HRegionServer)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#makeRenderer-org.apache.hadoop.hbase.regionserver.HRegionServer-">makeRenderer(HRegionServer)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.html#makeRenderer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper-">makeRenderer(MetricsRegionServerWrapper, MetricsHBaseServerWrapper)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ServerMetricsTmpl</a></dt>
@@ -72198,7 +72295,7 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.AbstractRSRemoteCall.html#maxWaitTime">maxWaitTime</a></span> - Variable in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.AbstractRSRemoteCall.html" title="class in org.apache.hadoop.hbase.master.procedure">RSProcedureDispatcher.AbstractRSRemoteCall</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator(Cell, boolean)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator(MutableSegment, Cell, boolean)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></dt>
<dd>
<div class="block">If the segment has a memory allocator the cell is being cloned to this space, and returned;
Otherwise the given cell is returned
@@ -76675,6 +76772,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/ScannerContext.html#newBuilder-boolean-">newBuilder(boolean)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#newBuilder--">newBuilder()</a></span> - Static method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html#newBuilder--">newBuilder()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html#newBuilder-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">newBuilder(ReplicationPeerConfig)</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a></dt>
@@ -81217,6 +81316,10 @@ service.</div>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplaySyncReplicationWALCallable.html#peerId">peerId</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplaySyncReplicationWALCallable.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplaySyncReplicationWALCallable</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#peerId">peerId</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#peerId">peerId</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#peerId">peerId</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html" title="class in org.apache.hadoop.hbase.replication.regionserver">SerialReplicationChecker</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationEndpoint.Context.html#peerId">peerId</a></span> - Variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationEndpoint.Context.html" title="class in org.apache.hadoop.hbase.replication">ReplicationEndpoint.Context</a></dt>
@@ -81635,6 +81738,8 @@ service.</div>
<dd>
<div class="block">Fetch one Procedure from the queue</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#poll-long-">poll(long)</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceWALReader</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/CallQueue.html#poll--">poll()</a></span> - Method in class org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/CallQueue.html" title="class in org.apache.hadoop.hbase.thrift">CallQueue</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/CallQueue.html#poll-long-java.util.concurrent.TimeUnit-">poll(long, TimeUnit)</a></span> - Method in class org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/CallQueue.html" title="class in org.apache.hadoop.hbase.thrift">CallQueue</a></dt>
@@ -82925,6 +83030,14 @@ service.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postUnassign-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign(RegionInfo, boolean)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">postUpdate(MutableSegment)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></dt>
+<dd>
+<div class="block">Issue any post update synchronization and tests</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">postUpdate(MutableSegment)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">postUpdate(MutableSegment)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/DefaultMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">DefaultMemStore</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postUpdateReplicationPeerConfig(ObserverContext<MasterCoprocessorEnvironment>, String, ReplicationPeerConfig)</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></dt>
<dd>
<div class="block">Called after update peerConfig for the specified peer</div>
@@ -84665,6 +84778,18 @@ service.</div>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AccessController.html#preUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">preUnassign(ObserverContext<MasterCoprocessorEnvironment>, RegionInfo, boolean)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AccessController.html" title="class in org.apache.hadoop.hbase.security.access">AccessController</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate(MutableSegment, Cell, MemStoreSizing)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></dt>
+<dd>
+<div class="block">Issue any synchronization and test needed before applying the update</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.
<TRUNCATED>
[38/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html
index 23ce8b2..558dc0a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html
@@ -813,7 +813,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>queueHasRunnables</h4>
-<pre>protected boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.161">queueHasRunnables</a>()</pre>
+<pre>protected boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.168">queueHasRunnables</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#queueHasRunnables--">AbstractProcedureScheduler</a></code></span></div>
<div class="block">Returns true if there are procedures available to process.
NOTE: this method is called with the sched lock held.</div>
@@ -831,7 +831,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>dequeue</h4>
-<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.167">dequeue</a>()</pre>
+<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.174">dequeue</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#dequeue--">AbstractProcedureScheduler</a></code></span></div>
<div class="block">Fetch one Procedure from the queue
NOTE: this method is called with the sched lock held.</div>
@@ -849,7 +849,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>doPoll</h4>
-<pre>private <T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>> <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.185">doPoll</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/FairQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">FairQueue</a><T> fairq)</pre>
+<pre>private <T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>> <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.192">doPoll</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/FairQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">FairQueue</a><T> fairq)</pre>
</li>
</ul>
<a name="getLocks--">
@@ -858,7 +858,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>getLocks</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/procedure2/LockedResource.html" title="class in org.apache.hadoop.hbase.procedure2">LockedResource</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.220">getLocks</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/procedure2/LockedResource.html" title="class in org.apache.hadoop.hbase.procedure2">LockedResource</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.227">getLocks</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#getLocks--">ProcedureScheduler</a></code></span></div>
<div class="block">List lock queues.</div>
<dl>
@@ -873,7 +873,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>getLockResource</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/procedure2/LockedResource.html" title="class in org.apache.hadoop.hbase.procedure2">LockedResource</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.230">getLockResource</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2">LockedResourceType</a> resourceType,
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/procedure2/LockedResource.html" title="class in org.apache.hadoop.hbase.procedure2">LockedResource</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.237">getLockResource</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2">LockedResourceType</a> resourceType,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> resourceName)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -887,7 +887,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>clear</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.240">clear</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.247">clear</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#clear--">ProcedureScheduler</a></code></span></div>
<div class="block">Clear current state of scheduler such that it is equivalent to newly created scheduler.
Used for testing failure and recovery. To emulate server crash/restart,
@@ -900,7 +900,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>clearQueue</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.250">clearQueue</a>()</pre>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.257">clearQueue</a>()</pre>
</li>
</ul>
<a name="clear-org.apache.hadoop.hbase.master.procedure.Queue-org.apache.hadoop.hbase.master.procedure.FairQueue-org.apache.hadoop.hbase.util.AvlUtil.AvlKeyComparator-">
@@ -911,7 +911,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>clear</h4>
-<pre>private <T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>,TNode extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Queue.html" title="class in org.apache.hadoop.hbase.master.procedure">Queue</a><T>> void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.268">clear</a>(TNode treeMap,
+<pre>private <T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>,TNode extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Queue.html" title="class in org.apache.hadoop.hbase.master.procedure">Queue</a><T>> void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.275">clear</a>(TNode treeMap,
<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/FairQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">FairQueue</a><T> fairq,
<a href="../../../../../../org/apache/hadoop/hbase/util/AvlUtil.AvlKeyComparator.html" title="interface in org.apache.hadoop.hbase.util">AvlUtil.AvlKeyComparator</a><TNode> comparator)</pre>
</li>
@@ -922,7 +922,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>queueSize</h4>
-<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.277">queueSize</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Queue.html" title="class in org.apache.hadoop.hbase.master.procedure">Queue</a><?> head)</pre>
+<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.284">queueSize</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Queue.html" title="class in org.apache.hadoop.hbase.master.procedure">Queue</a><?> head)</pre>
</li>
</ul>
<a name="queueSize--">
@@ -931,7 +931,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>queueSize</h4>
-<pre>protected int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.287">queueSize</a>()</pre>
+<pre>protected int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.294">queueSize</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#queueSize--">AbstractProcedureScheduler</a></code></span></div>
<div class="block">Returns the number of elements in this queue.
NOTE: this method is called with the sched lock held.</div>
@@ -949,7 +949,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>completionCleanup</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.299">completionCleanup</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.306">completionCleanup</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#completionCleanup-org.apache.hadoop.hbase.procedure2.Procedure-">ProcedureScheduler</a></code></span></div>
<div class="block">The procedure in execution completed.
This can be implemented to perform cleanups.</div>
@@ -965,7 +965,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>addToRunQueue</h4>
-<pre>private static <T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>> void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.330">addToRunQueue</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/FairQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">FairQueue</a><T> fairq,
+<pre>private static <T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>> void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.337">addToRunQueue</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/FairQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">FairQueue</a><T> fairq,
<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Queue.html" title="class in org.apache.hadoop.hbase.master.procedure">Queue</a><T> queue)</pre>
</li>
</ul>
@@ -975,7 +975,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>removeFromRunQueue</h4>
-<pre>private static <T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>> void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.336">removeFromRunQueue</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/FairQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">FairQueue</a><T> fairq,
+<pre>private static <T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>> void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.343">removeFromRunQueue</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/FairQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">FairQueue</a><T> fairq,
<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Queue.html" title="class in org.apache.hadoop.hbase.master.procedure">Queue</a><T> queue)</pre>
</li>
</ul>
@@ -985,7 +985,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>getTableQueue</h4>
-<pre>private <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">TableQueue</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.346">getTableQueue</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName)</pre>
+<pre>private <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">TableQueue</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.353">getTableQueue</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName)</pre>
</li>
</ul>
<a name="removeTableQueue-org.apache.hadoop.hbase.TableName-">
@@ -994,7 +994,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>removeTableQueue</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.356">removeTableQueue</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName)</pre>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.363">removeTableQueue</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName)</pre>
</li>
</ul>
<a name="isTableProcedure-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1003,7 +1003,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>isTableProcedure</h4>
-<pre>private static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.361">isTableProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
+<pre>private static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.368">isTableProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
</li>
</ul>
<a name="getTableName-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1012,7 +1012,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>getTableName</h4>
-<pre>private static <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.365">getTableName</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
+<pre>private static <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.372">getTableName</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
</li>
</ul>
<a name="getServerQueue-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.master.procedure.ServerProcedureInterface-">
@@ -1021,7 +1021,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>getServerQueue</h4>
-<pre>private <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerQueue</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.372">getServerQueue</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
+<pre>private <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerQueue</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.379">getServerQueue</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.html" title="interface in org.apache.hadoop.hbase.master.procedure">ServerProcedureInterface</a> proc)</pre>
</li>
</ul>
@@ -1031,7 +1031,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>removeServerQueue</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.392">removeServerQueue</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</pre>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.399">removeServerQueue</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</pre>
</li>
</ul>
<a name="tryCleanupServerQueue-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1040,7 +1040,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>tryCleanupServerQueue</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.399">tryCleanupServerQueue</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.406">tryCleanupServerQueue</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
</li>
</ul>
@@ -1050,7 +1050,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>getBucketIndex</h4>
-<pre>private static int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.418">getBucketIndex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[] buckets,
+<pre>private static int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.425">getBucketIndex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[] buckets,
int hashCode)</pre>
</li>
</ul>
@@ -1060,7 +1060,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>isServerProcedure</h4>
-<pre>private static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.422">isServerProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
+<pre>private static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.429">isServerProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
</li>
</ul>
<a name="getServerName-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1069,7 +1069,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>getServerName</h4>
-<pre>private static <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.426">getServerName</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
+<pre>private static <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.433">getServerName</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
</li>
</ul>
<a name="getPeerQueue-java.lang.String-">
@@ -1078,7 +1078,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>getPeerQueue</h4>
-<pre>private <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">PeerQueue</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.433">getPeerQueue</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> peerId)</pre>
+<pre>private <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">PeerQueue</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.440">getPeerQueue</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> peerId)</pre>
</li>
</ul>
<a name="removePeerQueue-java.lang.String-">
@@ -1087,7 +1087,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>removePeerQueue</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.443">removePeerQueue</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> peerId)</pre>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.450">removePeerQueue</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> peerId)</pre>
</li>
</ul>
<a name="tryCleanupPeerQueue-java.lang.String-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1096,7 +1096,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>tryCleanupPeerQueue</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.448">tryCleanupPeerQueue</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> peerId,
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.455">tryCleanupPeerQueue</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> peerId,
<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure)</pre>
</li>
</ul>
@@ -1106,7 +1106,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>isPeerProcedure</h4>
-<pre>private static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.466">isPeerProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
+<pre>private static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.473">isPeerProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
</li>
</ul>
<a name="getPeerId-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1115,7 +1115,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>getPeerId</h4>
-<pre>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.470">getPeerId</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
+<pre>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.477">getPeerId</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
</li>
</ul>
<a name="getMetaQueue--">
@@ -1124,7 +1124,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>getMetaQueue</h4>
-<pre>private <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MetaQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">MetaQueue</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.477">getMetaQueue</a>()</pre>
+<pre>private <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MetaQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">MetaQueue</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.484">getMetaQueue</a>()</pre>
</li>
</ul>
<a name="isMetaProcedure-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1133,7 +1133,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>isMetaProcedure</h4>
-<pre>private static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.487">isMetaProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
+<pre>private static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.494">isMetaProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
</li>
</ul>
<a name="logLockedResource-org.apache.hadoop.hbase.procedure2.LockedResourceType-java.lang.String-">
@@ -1142,7 +1142,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>logLockedResource</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.496">logLockedResource</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2">LockedResourceType</a> resourceType,
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.503">logLockedResource</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2">LockedResourceType</a> resourceType,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> resourceName)</pre>
<div class="block">Get lock info for a resource of specified type and name and log details</div>
</li>
@@ -1153,7 +1153,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>waitTableExclusiveLock</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.521">waitTableExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.528">waitTableExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> table)</pre>
<div class="block">Suspend the procedure if the specified table is already locked.
Other operations in the table-queue will be executed after the lock is released.</div>
@@ -1172,7 +1172,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>wakeTableExclusiveLock</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.550">wakeTableExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.557">wakeTableExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> table)</pre>
<div class="block">Wake the procedures waiting for the specified table</div>
<dl>
@@ -1188,7 +1188,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>waitTableSharedLock</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.578">waitTableSharedLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.585">waitTableSharedLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> table)</pre>
<div class="block">Suspend the procedure if the specified table is already locked.
other "read" operations in the table-queue may be executed concurrently,</div>
@@ -1207,7 +1207,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>waitTableQueueSharedLock</h4>
-<pre>private <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">TableQueue</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.582">waitTableQueueSharedLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>private <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">TableQueue</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.589">waitTableQueueSharedLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> table)</pre>
</li>
</ul>
@@ -1217,7 +1217,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>wakeTableSharedLock</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.609">wakeTableSharedLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.616">wakeTableSharedLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> table)</pre>
<div class="block">Wake the procedures waiting for the specified table</div>
<dl>
@@ -1233,7 +1233,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>markTableAsDeleted</h4>
-<pre>boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.638">markTableAsDeleted</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> table,
+<pre>boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.645">markTableAsDeleted</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> table,
<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure)</pre>
<div class="block">Tries to remove the queue and the table-lock of the specified table.
If there are new operations pending (e.g. a new create),
@@ -1254,7 +1254,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>waitRegion</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.670">waitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.677">waitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> regionInfo)</pre>
<div class="block">Suspend the procedure if the specified region is already locked.</div>
<dl>
@@ -1272,7 +1272,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>waitRegions</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.681">waitRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.688">waitRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> table,
<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>... regionInfo)</pre>
<div class="block">Suspend the procedure if the specified set of regions are already locked.</div>
@@ -1292,7 +1292,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>wakeRegion</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.729">wakeRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.736">wakeRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> regionInfo)</pre>
<div class="block">Wake the procedures waiting for the specified region</div>
<dl>
@@ -1308,7 +1308,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>wakeRegions</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.738">wakeRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.745">wakeRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> table,
<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>... regionInfo)</pre>
<div class="block">Wake the procedures waiting for the specified regions</div>
@@ -1325,7 +1325,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>waitNamespaceExclusiveLock</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.785">waitNamespaceExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.792">waitNamespaceExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> namespace)</pre>
<div class="block">Suspend the procedure if the specified namespace is already locked.</div>
<dl>
@@ -1345,7 +1345,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>wakeNamespaceExclusiveLock</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.816">wakeNamespaceExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.823">wakeNamespaceExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> namespace)</pre>
<div class="block">Wake the procedures waiting for the specified namespace</div>
<dl>
@@ -1363,7 +1363,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>waitServerExclusiveLock</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.845">waitServerExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.852">waitServerExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</pre>
<div class="block">Try to acquire the exclusive lock on the specified server.</div>
<dl>
@@ -1383,7 +1383,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>wakeServerExclusiveLock</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.870">wakeServerExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.877">wakeServerExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</pre>
<div class="block">Wake the procedures waiting for the specified server</div>
<dl>
@@ -1401,7 +1401,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>waitPeerExclusiveLock</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.895">waitPeerExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.902">waitPeerExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> peerId)</pre>
<div class="block">Try to acquire the exclusive lock on the specified peer.</div>
<dl>
@@ -1421,7 +1421,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<ul class="blockList">
<li class="blockList">
<h4>wakePeerExclusiveLock</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.917">wakePeerExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.924">wakePeerExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> peerId)</pre>
<div class="block">Wake the procedures waiting for the specified peer</div>
<dl>
@@ -1440,7 +1440,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractPr
<li class="blockList">
<h4>waitMetaExclusiveLock</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.942">waitMetaExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure)</pre>
+public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.949">waitMetaExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <span class="deprecationComment">only used for <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><code>RecoverMetaProcedure</code></a>. Should be removed along with
<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><code>RecoverMetaProcedure</code></a>.</span></div>
<div class="block">Try to acquire the exclusive lock on meta.</div>
@@ -1461,7 +1461,7 @@ public boolean <a href="../../../../../../src-html/org/apache/hadoop/h
<li class="blockList">
<h4>wakeMetaExclusiveLock</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.966">wakeMetaExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure)</pre>
+public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.973">wakeMetaExclusiveLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> procedure)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <span class="deprecationComment">only used for <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><code>RecoverMetaProcedure</code></a>. Should be removed along with
<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><code>RecoverMetaProcedure</code></a>.</span></div>
<div class="block">Wake the procedures waiting for meta.</div>
@@ -1479,7 +1479,7 @@ public void <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockListLast">
<li class="blockList">
<h4>dumpLocks</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.983">dumpLocks</a>()
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#line.990">dumpLocks</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">For debugging. Expensive.</div>
<dl>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
index e392df8..98b41d1 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -216,8 +216,8 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MetaProcedureInterface.MetaOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">MetaProcedureInterface.MetaOperationType</span></a></li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
index 3e1ea7f..9eb46aa 100644
--- a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
@@ -125,8 +125,8 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">TaskMonitor.TaskFilter.TaskType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.State.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">MonitoredTask.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">TaskMonitor.TaskFilter.TaskType</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/package-tree.html b/devapidocs/org/apache/hadoop/hbase/package-tree.html
index e6e64dd..9dc7511 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -437,19 +437,19 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index a13f09f..1532771 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -219,11 +219,11 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index 8c5d85e..7798ca4 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -229,13 +229,13 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
</ul>
</li>
</ul>
[35/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html
index 613e11e..4fe07c1 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -157,7 +157,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class </code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore.InMemoryFlushRunnable</a></span></code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore.InMemoryCompactionRunnable</a></span></code>
<div class="block">The in-memory-flusher thread performs the flush asynchronously.</div>
</td>
</tr>
@@ -201,8 +201,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#DEEP_OVERHEAD">DEEP_OVERHEAD</a></span></code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>private static double</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#IN_MEMORY_FLUSH_THRESHOLD_FACTOR_DEFAULT">IN_MEMORY_FLUSH_THRESHOLD_FACTOR_DEFAULT</a></span></code> </td>
+<td class="colFirst"><code>private static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#IN_MEMORY_FLUSH_MULTIPLIER">IN_MEMORY_FLUSH_MULTIPLIER</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
@@ -214,7 +214,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#inMemoryFlushInProgress">inMemoryFlushInProgress</a></span></code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#inMemoryCompactionInProgress">inMemoryCompactionInProgress</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private long</code></td>
@@ -246,7 +246,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#active">active</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#FIXED_OVERHEAD">FIXED_OVERHEAD</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#snapshot">snapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#snapshotId">snapshotId</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#FIXED_OVERHEAD">FIXED_OVERHEAD</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#snapshot">snapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#snapshotId">snapshotId</a></code></li>
</ul>
</li>
</ul>
@@ -284,8 +284,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
-<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#checkActiveSize--">checkActiveSize</a></span>()</code>
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#checkAndAddToActiveSize-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">checkAndAddToActiveSize</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code>
<div class="block">Check whether anything need to be done based on the current active set size.</div>
</td>
</tr>
@@ -311,127 +313,157 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#flushInMemory--">flushInMemory</a></span>()</code> </td>
</tr>
<tr id="i6" class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#flushInMemory-org.apache.hadoop.hbase.regionserver.MutableSegment-">flushInMemory</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive)</code> </td>
+</tr>
+<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#getFamilyName--">getFamilyName</a></span>()</code> </td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
<td class="colFirst"><code>private byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#getFamilyNameInBytes--">getFamilyNameInBytes</a></span>()</code> </td>
</tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#getFlushableSize--">getFlushableSize</a></span>()</code>
<div class="block">Flush will first clear out the data in snapshot if any (It will take a second flush
invocation to clear the current Cell set).</div>
</td>
</tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#getImmutableSegments--">getImmutableSegments</a></span>()</code> </td>
</tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver">CompactingMemStore.IndexType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#getIndexType--">getIndexType</a></span>()</code> </td>
</tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
<td class="colFirst"><code>(package private) long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#getInmemoryFlushSize--">getInmemoryFlushSize</a></span>()</code> </td>
</tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#getLastSegment--">getLastSegment</a></span>()</code> </td>
</tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#getNextRow-org.apache.hadoop.hbase.Cell-">getNextRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#getPool--">getPool</a></span>()</code> </td>
</tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#getRegionServices--">getRegionServices</a></span>()</code> </td>
</tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#getScanners-long-">getScanners</a></span>(long readPt)</code> </td>
</tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#getSegments--">getSegments</a></span>()</code> </td>
</tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#getSmallestReadPoint--">getSmallestReadPoint</a></span>()</code> </td>
</tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#getStore--">getStore</a></span>()</code> </td>
</tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#hasImmutableSegments--">hasImmutableSegments</a></span>()</code> </td>
</tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#heapSize--">heapSize</a></span>()</code> </td>
</tr>
-<tr id="i22" class="altColor">
+<tr id="i23" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#initInmemoryFlushSize-org.apache.hadoop.conf.Configuration-">initInmemoryFlushSize</a></span>(org.apache.hadoop.conf.Configuration conf)</code> </td>
</tr>
-<tr id="i23" class="rowColor">
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>(package private) void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#inMemoryCompaction--">inMemoryCompaction</a></span>()</code> </td>
+</tr>
+<tr id="i25" class="rowColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#isMemStoreFlushingInMemory--">isMemStoreFlushingInMemory</a></span>()</code> </td>
</tr>
-<tr id="i24" class="altColor">
+<tr id="i26" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#isSloppy--">isSloppy</a></span>()</code> </td>
</tr>
-<tr id="i25" class="rowColor">
+<tr id="i27" class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#keySize--">keySize</a></span>()</code> </td>
</tr>
-<tr id="i26" class="altColor">
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">postUpdate</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive)</code>
+<div class="block">Issue any post update synchronization and tests</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#preFlushSeqIDEstimation--">preFlushSeqIDEstimation</a></span>()</code>
<div class="block">This method is called before the flush is executed.</div>
</td>
</tr>
-<tr id="i27" class="rowColor">
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code>
+<div class="block">Issue any synchronization and test needed before applying the update
+ For compacting memstore this means checking the update can increase the size without
+ overflow</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#pushActiveToPipeline-org.apache.hadoop.hbase.regionserver.MutableSegment-">pushActiveToPipeline</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> active)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#pushActiveToPipeline-org.apache.hadoop.hbase.regionserver.MutableSegment-">pushActiveToPipeline</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive)</code> </td>
</tr>
-<tr id="i28" class="altColor">
+<tr id="i32" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#pushPipelineToSnapshot--">pushPipelineToSnapshot</a></span>()</code> </td>
</tr>
-<tr id="i29" class="rowColor">
+<tr id="i33" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#pushTailToSnapshot--">pushTailToSnapshot</a></span>()</code> </td>
</tr>
-<tr id="i30" class="altColor">
+<tr id="i34" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#pushToSnapshot-java.util.List-">pushToSnapshot</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a>> segments)</code> </td>
</tr>
-<tr id="i31" class="rowColor">
+<tr id="i35" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#setCompositeSnapshot-boolean-">setCompositeSnapshot</a></span>(boolean useCompositeSnapshot)</code> </td>
</tr>
-<tr id="i32" class="altColor">
+<tr id="i36" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#setIndexType-org.apache.hadoop.hbase.regionserver.CompactingMemStore.IndexType-">setIndexType</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver">CompactingMemStore.IndexType</a> type)</code> </td>
</tr>
-<tr id="i33" class="rowColor">
+<tr id="i37" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#shouldFlushInMemory--">shouldFlushInMemory</a></span>()</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#shouldFlushInMemory-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">shouldFlushInMemory</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
</tr>
-<tr id="i34" class="altColor">
+<tr id="i38" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#size--">size</a></span>()</code> </td>
</tr>
-<tr id="i35" class="rowColor">
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#sizeAddedPreOperation--">sizeAddedPreOperation</a></span>()</code> </td>
+</tr>
+<tr id="i40" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSnapshot.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSnapshot</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#snapshot--">snapshot</a></span>()</code>
<div class="block">Push the current active memstore segment into the pipeline
@@ -439,14 +471,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
Snapshot must be cleared by call to <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#clearSnapshot-long-"><code>AbstractMemStore.clearSnapshot(long)</code></a>.</div>
</td>
</tr>
-<tr id="i36" class="altColor">
+<tr id="i41" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#startReplayingFromWAL--">startReplayingFromWAL</a></span>()</code>
<div class="block">This message intends to inform the MemStore that next coming updates
are going to be part of the replaying edits from WAL</div>
</td>
</tr>
-<tr id="i37" class="rowColor">
+<tr id="i42" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#stopCompaction--">stopCompaction</a></span>()</code>
<div class="block">The request to cancel the compaction asynchronous task (caused by in-memory flush)
@@ -454,20 +486,20 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
Non-blocking request</div>
</td>
</tr>
-<tr id="i38" class="altColor">
+<tr id="i43" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#stopReplayingFromWAL--">stopReplayingFromWAL</a></span>()</code>
<div class="block">This message intends to inform the MemStore that the replaying edits from WAL
are done</div>
</td>
</tr>
-<tr id="i39" class="rowColor">
+<tr id="i44" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#swapCompactedSegments-org.apache.hadoop.hbase.regionserver.VersionedSegmentsList-org.apache.hadoop.hbase.regionserver.ImmutableSegment-boolean-">swapCompactedSegments</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a> versionedList,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a> result,
boolean merge)</code> </td>
</tr>
-<tr id="i40" class="altColor">
+<tr id="i45" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#updateLowestUnflushedSequenceIdInWAL-boolean-">updateLowestUnflushedSequenceIdInWAL</a></span>(boolean onlyIfGreater)</code>
<div class="block">Updates the wal with the lowest sequence id (oldest entry) that is still in memory</div>
@@ -537,16 +569,16 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
</dl>
</li>
</ul>
-<a name="IN_MEMORY_FLUSH_THRESHOLD_FACTOR_DEFAULT">
+<a name="IN_MEMORY_FLUSH_MULTIPLIER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
-<h4>IN_MEMORY_FLUSH_THRESHOLD_FACTOR_DEFAULT</h4>
-<pre>private static final double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.65">IN_MEMORY_FLUSH_THRESHOLD_FACTOR_DEFAULT</a></pre>
+<h4>IN_MEMORY_FLUSH_MULTIPLIER</h4>
+<pre>private static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.65">IN_MEMORY_FLUSH_MULTIPLIER</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.CompactingMemStore.IN_MEMORY_FLUSH_THRESHOLD_FACTOR_DEFAULT">Constant Field Values</a></dd>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.CompactingMemStore.IN_MEMORY_FLUSH_MULTIPLIER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
@@ -604,13 +636,13 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.73">inmemoryFlushSize</a></pre>
</li>
</ul>
-<a name="inMemoryFlushInProgress">
+<a name="inMemoryCompactionInProgress">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
-<h4>inMemoryFlushInProgress</h4>
-<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.74">inMemoryFlushInProgress</a></pre>
+<h4>inMemoryCompactionInProgress</h4>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.74">inMemoryCompactionInProgress</a></pre>
</li>
</ul>
<a name="inWalReplay">
@@ -721,7 +753,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.157">size</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.160">size</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Total memory occupied by this MemStore. This won't include any size occupied by the
@@ -737,7 +769,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>preFlushSeqIDEstimation</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.172">preFlushSeqIDEstimation</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.175">preFlushSeqIDEstimation</a>()</pre>
<div class="block">This method is called before the flush is executed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -752,7 +784,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>isSloppy</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.184">isSloppy</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.187">isSloppy</a>()</pre>
</li>
</ul>
<a name="snapshot--">
@@ -761,7 +793,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>snapshot</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSnapshot.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSnapshot</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.196">snapshot</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSnapshot.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSnapshot</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.199">snapshot</a>()</pre>
<div class="block">Push the current active memstore segment into the pipeline
and create a snapshot of the tail of current compaction pipeline
Snapshot must be cleared by call to <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#clearSnapshot-long-"><code>AbstractMemStore.clearSnapshot(long)</code></a>.
@@ -778,7 +810,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>getFlushableSize</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.220">getFlushableSize</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.225">getFlushableSize</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore.html#getFlushableSize--">MemStore</a></code></span></div>
<div class="block">Flush will first clear out the data in snapshot if any (It will take a second flush
invocation to clear the current Cell set). If snapshot is empty, current
@@ -795,7 +827,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>keySize</h4>
-<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.236">keySize</a>()</pre>
+<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.244">keySize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#keySize--">keySize</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></code></dd>
@@ -810,7 +842,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>heapSize</h4>
-<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.246">heapSize</a>()</pre>
+<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.254">heapSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#heapSize--">heapSize</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></code></dd>
@@ -826,7 +858,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>updateLowestUnflushedSequenceIdInWAL</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.256">updateLowestUnflushedSequenceIdInWAL</a>(boolean onlyIfGreater)</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.264">updateLowestUnflushedSequenceIdInWAL</a>(boolean onlyIfGreater)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#updateLowestUnflushedSequenceIdInWAL-boolean-">AbstractMemStore</a></code></span></div>
<div class="block">Updates the wal with the lowest sequence id (oldest entry) that is still in memory</div>
<dl>
@@ -844,7 +876,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>startReplayingFromWAL</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.273">startReplayingFromWAL</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.281">startReplayingFromWAL</a>()</pre>
<div class="block">This message intends to inform the MemStore that next coming updates
are going to be part of the replaying edits from WAL</div>
</li>
@@ -855,18 +887,72 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>stopReplayingFromWAL</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.282">stopReplayingFromWAL</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.290">stopReplayingFromWAL</a>()</pre>
<div class="block">This message intends to inform the MemStore that the replaying edits from WAL
are done</div>
</li>
</ul>
+<a name="preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>preUpdate</h4>
+<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.303">preUpdate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
+<div class="block">Issue any synchronization and test needed before applying the update
+ For compacting memstore this means checking the update can increase the size without
+ overflow</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>currentActive</code> - the segment to be updated</dd>
+<dd><code>cell</code> - the cell to be added</dd>
+<dd><code>memstoreSizing</code> - object to accumulate region size changes</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true iff can proceed with applying the update</dd>
+</dl>
+</li>
+</ul>
+<a name="postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>postUpdate</h4>
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.314">postUpdate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">AbstractMemStore</a></code></span></div>
+<div class="block">Issue any post update synchronization and tests</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">postUpdate</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>currentActive</code> - updated segment</dd>
+</dl>
+</li>
+</ul>
+<a name="sizeAddedPreOperation--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sizeAddedPreOperation</h4>
+<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.318">sizeAddedPreOperation</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#sizeAddedPreOperation--">sizeAddedPreOperation</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></code></dd>
+</dl>
+</li>
+</ul>
<a name="getSegments--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSegments</h4>
-<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.289">getSegments</a>()</pre>
+<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.325">getSegments</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#getSegments--">getSegments</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></code></dd>
@@ -881,7 +967,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>setCompositeSnapshot</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.300">setCompositeSnapshot</a>(boolean useCompositeSnapshot)</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.336">setCompositeSnapshot</a>(boolean useCompositeSnapshot)</pre>
</li>
</ul>
<a name="swapCompactedSegments-org.apache.hadoop.hbase.regionserver.VersionedSegmentsList-org.apache.hadoop.hbase.regionserver.ImmutableSegment-boolean-">
@@ -890,7 +976,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>swapCompactedSegments</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.304">swapCompactedSegments</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a> versionedList,
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.340">swapCompactedSegments</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a> versionedList,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a> result,
boolean merge)</pre>
</li>
@@ -901,7 +987,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>flattenOneSegment</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.315">flattenOneSegment</a>(long requesterVersion,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.351">flattenOneSegment</a>(long requesterVersion,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -917,7 +1003,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>setIndexType</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.321">setIndexType</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver">CompactingMemStore.IndexType</a> type)</pre>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.357">setIndexType</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver">CompactingMemStore.IndexType</a> type)</pre>
</li>
</ul>
<a name="getIndexType--">
@@ -926,7 +1012,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>getIndexType</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver">CompactingMemStore.IndexType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.328">getIndexType</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver">CompactingMemStore.IndexType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.364">getIndexType</a>()</pre>
</li>
</ul>
<a name="hasImmutableSegments--">
@@ -935,7 +1021,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>hasImmutableSegments</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.332">hasImmutableSegments</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.368">hasImmutableSegments</a>()</pre>
</li>
</ul>
<a name="getImmutableSegments--">
@@ -944,7 +1030,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>getImmutableSegments</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.336">getImmutableSegments</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.372">getImmutableSegments</a>()</pre>
</li>
</ul>
<a name="getSmallestReadPoint--">
@@ -953,7 +1039,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>getSmallestReadPoint</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.340">getSmallestReadPoint</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.376">getSmallestReadPoint</a>()</pre>
</li>
</ul>
<a name="getStore--">
@@ -962,7 +1048,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>getStore</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.344">getStore</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.380">getStore</a>()</pre>
</li>
</ul>
<a name="getFamilyName--">
@@ -971,7 +1057,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>getFamilyName</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.348">getFamilyName</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.384">getFamilyName</a>()</pre>
</li>
</ul>
<a name="getScanners-long-">
@@ -980,7 +1066,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>getScanners</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.353">getScanners</a>(long readPt)
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.389">getScanners</a>(long readPt)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -997,23 +1083,29 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>createList</h4>
-<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.367">createList</a>(int capacity)</pre>
+<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.403">createList</a>(int capacity)</pre>
</li>
</ul>
-<a name="checkActiveSize--">
+<a name="checkAndAddToActiveSize-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
-<h4>checkActiveSize</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.378">checkActiveSize</a>()</pre>
+<h4>checkAndAddToActiveSize</h4>
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.417">checkAndAddToActiveSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
<div class="block">Check whether anything need to be done based on the current active set size.
The method is invoked upon every addition to the active set.
For CompactingMemStore, flush the active set to the read-only memory if it's
size is above threshold</div>
<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#checkActiveSize--">checkActiveSize</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">AbstractMemStore</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>currActive</code> - intended segment to update</dd>
+<dd><code>cellToAdd</code> - cell to be added to the segment</dd>
+<dd><code>memstoreSizing</code> - object to accumulate changed size</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the cell can be added to the</dd>
</dl>
</li>
</ul>
@@ -1023,12 +1115,25 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>flushInMemory</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.397">flushInMemory</a>()
- throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-</dl>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.441">flushInMemory</a>()</pre>
+</li>
+</ul>
+<a name="flushInMemory-org.apache.hadoop.hbase.regionserver.MutableSegment-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flushInMemory</h4>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.449">flushInMemory</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive)</pre>
+</li>
+</ul>
+<a name="inMemoryCompaction--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>inMemoryCompaction</h4>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.454">inMemoryCompaction</a>()</pre>
</li>
</ul>
<a name="getLastSegment--">
@@ -1037,7 +1142,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>getLastSegment</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.430">getLastSegment</a>()</pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.476">getLastSegment</a>()</pre>
</li>
</ul>
<a name="getFamilyNameInBytes--">
@@ -1046,7 +1151,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>getFamilyNameInBytes</h4>
-<pre>private byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.436">getFamilyNameInBytes</a>()</pre>
+<pre>private byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.482">getFamilyNameInBytes</a>()</pre>
</li>
</ul>
<a name="getPool--">
@@ -1055,16 +1160,18 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>getPool</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.440">getPool</a>()</pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.486">getPool</a>()</pre>
</li>
</ul>
-<a name="shouldFlushInMemory--">
+<a name="shouldFlushInMemory-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldFlushInMemory</h4>
-<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.445">shouldFlushInMemory</a>()</pre>
+<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.491">shouldFlushInMemory</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
</li>
</ul>
<a name="stopCompaction--">
@@ -1073,7 +1180,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>stopCompaction</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.462">stopCompaction</a>()</pre>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.516">stopCompaction</a>()</pre>
<div class="block">The request to cancel the compaction asynchronous task (caused by in-memory flush)
The compaction may still happen if the request was sent too late
Non-blocking request</div>
@@ -1085,7 +1192,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>pushActiveToPipeline</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.468">pushActiveToPipeline</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> active)</pre>
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.522">pushActiveToPipeline</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive)</pre>
</li>
</ul>
<a name="pushTailToSnapshot--">
@@ -1094,7 +1201,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>pushTailToSnapshot</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.475">pushTailToSnapshot</a>()</pre>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.529">pushTailToSnapshot</a>()</pre>
</li>
</ul>
<a name="pushPipelineToSnapshot--">
@@ -1103,7 +1210,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>pushPipelineToSnapshot</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.482">pushPipelineToSnapshot</a>()</pre>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.536">pushPipelineToSnapshot</a>()</pre>
</li>
</ul>
<a name="pushToSnapshot-java.util.List-">
@@ -1112,7 +1219,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>pushToSnapshot</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.505">pushToSnapshot</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a>> segments)</pre>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.559">pushToSnapshot</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a>> segments)</pre>
</li>
</ul>
<a name="getRegionServices--">
@@ -1121,7 +1228,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>getRegionServices</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.516">getRegionServices</a>()</pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.570">getRegionServices</a>()</pre>
</li>
</ul>
<a name="isMemStoreFlushingInMemory--">
@@ -1130,7 +1237,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>isMemStoreFlushingInMemory</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.541">isMemStoreFlushingInMemory</a>()</pre>
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.588">isMemStoreFlushingInMemory</a>()</pre>
</li>
</ul>
<a name="getNextRow-org.apache.hadoop.hbase.Cell-">
@@ -1139,7 +1246,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>getNextRow</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.550">getNextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.597">getNextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cell</code> - Find the row that comes after this one. If null, we return the
@@ -1155,7 +1262,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockList">
<li class="blockList">
<h4>getInmemoryFlushSize</h4>
-<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.564">getInmemoryFlushSize</a>()</pre>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.611">getInmemoryFlushSize</a>()</pre>
</li>
</ul>
<a name="debug--">
@@ -1164,7 +1271,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMem
<ul class="blockListLast">
<li class="blockList">
<h4>debug</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.569">debug</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.616">debug</a>()</pre>
</li>
</ul>
</li>
[28/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/ImmutableSegment.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/ImmutableSegment.html b/devapidocs/org/apache/hadoop/hbase/regionserver/ImmutableSegment.html
index aa21ddf..9a66d6a 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/ImmutableSegment.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/ImmutableSegment.html
@@ -251,7 +251,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.htm
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#decScannerCount--">decScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#dump-org.slf4j.Logger-">dump</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellLength-org.apache.hadoop.hbase.Cell-">getCellLength</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellsCount--">getCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellSet--">getCellSet</a>, <a hr
ef="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getComparator--">getComparator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getDataSize--">getDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getHeapSize--">getHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreLAB--">getMemStoreLAB</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreSize--">getMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMinSequenceId--">getMinSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getOffHeapSize--">getOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanner-long-">getScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanners-long-">getScanners</a>, <a href=
"../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getTimeRangeTracker--">getTimeRangeTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#headSet-org.apache.hadoop.hbase.Cell-">headSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#heapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">heapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incMemStoreSize-long-long-long-">incMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incScannerCount--">incScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOffHeapSize-boolean-">indexEntryOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOnHeapSize-boolean-">indexEntryOnHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntrySize--">indexEntryS
ize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isTagsPresent--">isTagsPresent</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#iterator--">iterator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#last--">last</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#offHeapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">offHeapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#
setCellSet-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.CellSet-">setCellSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#shouldSeek-org.apache.hadoop.hbase.io.TimeRange-long-">shouldSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#tailSet-org.apache.hadoop.hbase.Cell-">tailSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareAndSetDataSize-long-long-">compareAndSetDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#decScannerCount--">decScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#dump-org.slf4j.Logger-">dump</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellLength-org.apache.hadoop.hbase.Cell-">getCellLength</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellsCo
unt--">getCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellSet--">getCellSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getComparator--">getComparator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getDataSize--">getDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getHeapSize--">getHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreLAB--">getMemStoreLAB</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreSize--">getMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMinSequenceId--">getMinSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getOffHeapSize--">getOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanner-long-"
>getScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanners-long-">getScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getTimeRangeTracker--">getTimeRangeTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#headSet-org.apache.hadoop.hbase.Cell-">headSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#heapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">heapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incMemStoreSize-long-long-long-">incMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incScannerCount--">incScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOffHeapSize-boolean-">indexEntryOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOnHeapSize-bool
ean-">indexEntryOnHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntrySize--">indexEntrySize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">internalAdd</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isTagsPresent--">isTagsPresent</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#iterator--">iterator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#last--">last</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#offHeapSize
Change-org.apache.hadoop.hbase.Cell-boolean-">offHeapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#setCellSet-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.CellSet-">setCellSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#sharedLock--">sharedLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#sharedUnlock--">sharedUnlock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#shouldSeek-org.apache.hadoop.hbase.io.TimeRange-long-">shouldSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#tailSet-org.apache.hadoop.hbase.Cell-">tailSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">updateMetaInfo</a>, <a href="../../../../../org/apache/h
adoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#waitForUpdates--">waitForUpdates</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html
index 78e1e45..2712e70 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
<hr>
<br>
<pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.48">MemStoreCompactor</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.49">MemStoreCompactor</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">The ongoing MemStore Compaction manager, dispatches a solo running compaction and interrupts
the compaction if requested. The compaction is interrupted and stopped by CompactingMemStore,
@@ -281,7 +281,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>DEEP_OVERHEAD</h4>
-<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.50">DEEP_OVERHEAD</a></pre>
+<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.51">DEEP_OVERHEAD</a></pre>
</li>
</ul>
<a name="LOG">
@@ -290,7 +290,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
-<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.59">LOG</a></pre>
+<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.60">LOG</a></pre>
</li>
</ul>
<a name="compactingMemStore">
@@ -299,7 +299,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>compactingMemStore</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.60">compactingMemStore</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.61">compactingMemStore</a></pre>
</li>
</ul>
<a name="versionedList">
@@ -308,7 +308,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>versionedList</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.63">versionedList</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.64">versionedList</a></pre>
</li>
</ul>
<a name="isInterrupted">
@@ -317,7 +317,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>isInterrupted</h4>
-<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.66">isInterrupted</a></pre>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.67">isInterrupted</a></pre>
</li>
</ul>
<a name="compactionKVMax">
@@ -326,7 +326,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>compactionKVMax</h4>
-<pre>private final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.69">compactionKVMax</a></pre>
+<pre>private final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.70">compactionKVMax</a></pre>
</li>
</ul>
<a name="strategy">
@@ -335,7 +335,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>strategy</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.71">strategy</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.72">strategy</a></pre>
</li>
</ul>
</li>
@@ -352,7 +352,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>MemStoreCompactor</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.73">MemStoreCompactor</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a> compactingMemStore,
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.74">MemStoreCompactor</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a> compactingMemStore,
<a href="../../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase">MemoryCompactionPolicy</a> compactionPolicy)
throws <a href="../../../../../org/apache/hadoop/hbase/exceptions/IllegalArgumentIOException.html" title="class in org.apache.hadoop.hbase.exceptions">IllegalArgumentIOException</a></pre>
<dl>
@@ -375,7 +375,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.83">toString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.84">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -388,7 +388,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.92">start</a>()
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.93">start</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">----------------------------------------------------------------------
The request to dispatch the compaction asynchronous task.
@@ -406,7 +406,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.123">stop</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.124">stop</a>()</pre>
<div class="block">----------------------------------------------------------------------
The request to cancel the compaction asynchronous task
The compaction may still happen if the request was sent too late
@@ -419,7 +419,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>resetStats</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.128">resetStats</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.129">resetStats</a>()</pre>
</li>
</ul>
<a name="releaseResources--">
@@ -428,7 +428,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>releaseResources</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.136">releaseResources</a>()</pre>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.137">releaseResources</a>()</pre>
<div class="block">----------------------------------------------------------------------
Reset the interruption indicator and clear the pointers in order to allow good
garbage collection</div>
@@ -440,7 +440,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>doCompaction</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.146">doCompaction</a>()</pre>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.147">doCompaction</a>()</pre>
<div class="block">----------------------------------------------------------------------
The worker thread performs the compaction asynchronously.
The solo (per compactor) thread only reads the compaction pipeline.
@@ -453,7 +453,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>createSubstitution</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.205">createSubstitution</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.206">createSubstitution</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">----------------------------------------------------------------------
Creation of the ImmutableSegment either by merge or copy-compact of the segments of the
@@ -470,7 +470,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>initiateCompactionStrategy</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.242">initiateCompactionStrategy</a>(<a href="../../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase">MemoryCompactionPolicy</a> compType,
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.html#line.246">initiateCompactionStrategy</a>(<a href="../../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase">MemoryCompactionPolicy</a> compType,
org.apache.hadoop.conf.Configuration configuration,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> cfName)
throws <a href="../../../../../org/apache/hadoop/hbase/exceptions/IllegalArgumentIOException.html" title="class in org.apache.hadoop.hbase.exceptions">IllegalArgumentIOException</a></pre>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html
index 92f2401..73a0d45 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html
@@ -539,7 +539,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>copyCellInto</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.137">copyCellInto</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.136">copyCellInto</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
int maxAlloc)</pre>
</li>
</ul>
@@ -549,7 +549,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>copyToChunkCell</h4>
-<pre>private static <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.174">copyToChunkCell</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<pre>private static <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.172">copyToChunkCell</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> buf,
int offset,
int len)</pre>
@@ -563,7 +563,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.202">close</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.200">close</a>()</pre>
<div class="block">Close this instance since it won't be used any more, try to put the chunks
back to pool</div>
<dl>
@@ -578,7 +578,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>incScannerCount</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.216">incScannerCount</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.214">incScannerCount</a>()</pre>
<div class="block">Called when opening a scanner on the data of this MemStoreLAB</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -592,7 +592,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>decScannerCount</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.224">decScannerCount</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.222">decScannerCount</a>()</pre>
<div class="block">Called when closing a scanner on the data of this MemStoreLAB</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -606,7 +606,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>recycleChunks</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.231">recycleChunks</a>()</pre>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.229">recycleChunks</a>()</pre>
</li>
</ul>
<a name="tryRetireChunk-org.apache.hadoop.hbase.regionserver.Chunk-">
@@ -615,7 +615,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>tryRetireChunk</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.244">tryRetireChunk</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a> c)</pre>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.242">tryRetireChunk</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a> c)</pre>
<div class="block">Try to retire the current chunk if it is still
<code>c</code>. Postcondition is that curChunk.get()
!= c</div>
@@ -631,7 +631,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getOrMakeChunk</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.258">getOrMakeChunk</a>()</pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.256">getOrMakeChunk</a>()</pre>
<div class="block">Get the current chunk, or, if there is no current chunk,
allocate a new one from the JVM.</div>
</li>
@@ -642,7 +642,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getNewExternalChunk</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.294">getNewExternalChunk</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver">ChunkCreator.ChunkType</a> chunkType)</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.292">getNewExternalChunk</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver">ChunkCreator.ChunkType</a> chunkType)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#getNewExternalChunk-org.apache.hadoop.hbase.regionserver.ChunkCreator.ChunkType-">getNewExternalChunk</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></code></dd>
@@ -655,7 +655,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getNewExternalChunk</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.314">getNewExternalChunk</a>(int size)</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.312">getNewExternalChunk</a>(int size)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#getNewExternalChunk-int-">getNewExternalChunk</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></code></dd>
@@ -668,7 +668,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>isOnHeap</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.326">isOnHeap</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.324">isOnHeap</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#isOnHeap--">isOnHeap</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></code></dd>
@@ -681,7 +681,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>isOffHeap</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.331">isOffHeap</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.329">isOffHeap</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#isOffHeap--">isOffHeap</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></code></dd>
@@ -694,7 +694,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getCurrentChunk</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.336">getCurrentChunk</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.334">getCurrentChunk</a>()</pre>
</li>
</ul>
<a name="getPooledChunks--">
@@ -703,7 +703,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getPooledChunks</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.341">getPooledChunks</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.339">getPooledChunks</a>()</pre>
</li>
</ul>
<a name="getNumOfChunksReturnedToPool--">
@@ -712,7 +712,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockListLast">
<li class="blockList">
<h4>getNumOfChunksReturnedToPool</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.352">getNumOfChunksReturnedToPool</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.350">getNumOfChunksReturnedToPool</a>()</pre>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html
index 9942879..28d2502 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":18,"i1":18,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":18};
+var methods = {"i0":6,"i1":18,"i2":18,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":18};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -175,38 +175,43 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#compareAndSetDataSize-long-long-">compareAndSetDataSize</a></span>(long expected,
+ long updated)</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
<td class="colFirst"><code>default long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#decMemStoreSize-long-long-long-">decMemStoreSize</a></span>(long dataSizeDelta,
long heapSizeDelta,
long offHeapSizeDelta)</code> </td>
</tr>
-<tr id="i1" class="rowColor">
+<tr id="i2" class="altColor">
<td class="colFirst"><code>default long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#decMemStoreSize-org.apache.hadoop.hbase.regionserver.MemStoreSize-">decMemStoreSize</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> delta)</code> </td>
</tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getDataSize--">getDataSize</a></span>()</code> </td>
</tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getHeapSize--">getHeapSize</a></span>()</code> </td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getMemStoreSize--">getMemStoreSize</a></span>()</code> </td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getOffHeapSize--">getOffHeapSize</a></span>()</code> </td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#incMemStoreSize-long-long-long-">incMemStoreSize</a></span>(long dataSizeDelta,
long heapSizeDelta,
long offHeapSizeDelta)</code> </td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
<td class="colFirst"><code>default long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#incMemStoreSize-org.apache.hadoop.hbase.regionserver.MemStoreSize-">incMemStoreSize</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> delta)</code> </td>
</tr>
@@ -248,7 +253,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
<ul class="blockList">
<li class="blockList">
<h4>incMemStoreSize</h4>
-<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.89">incMemStoreSize</a>(long dataSizeDelta,
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.93">incMemStoreSize</a>(long dataSizeDelta,
long heapSizeDelta,
long offHeapSizeDelta)</pre>
<dl>
@@ -263,7 +268,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
<ul class="blockList">
<li class="blockList">
<h4>incMemStoreSize</h4>
-<pre>default long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.91">incMemStoreSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> delta)</pre>
+<pre>default long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.95">incMemStoreSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> delta)</pre>
</li>
</ul>
<a name="decMemStoreSize-long-long-long-">
@@ -272,7 +277,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
<ul class="blockList">
<li class="blockList">
<h4>decMemStoreSize</h4>
-<pre>default long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.98">decMemStoreSize</a>(long dataSizeDelta,
+<pre>default long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.102">decMemStoreSize</a>(long dataSizeDelta,
long heapSizeDelta,
long offHeapSizeDelta)</pre>
<dl>
@@ -287,7 +292,17 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
<ul class="blockList">
<li class="blockList">
<h4>decMemStoreSize</h4>
-<pre>default long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.103">decMemStoreSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> delta)</pre>
+<pre>default long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.107">decMemStoreSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> delta)</pre>
+</li>
+</ul>
+<a name="compareAndSetDataSize-long-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compareAndSetDataSize</h4>
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.111">compareAndSetDataSize</a>(long expected,
+ long updated)</pre>
</li>
</ul>
<a name="getDataSize--">
@@ -296,7 +311,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
<ul class="blockList">
<li class="blockList">
<h4>getDataSize</h4>
-<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.107">getDataSize</a>()</pre>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.113">getDataSize</a>()</pre>
</li>
</ul>
<a name="getHeapSize--">
@@ -305,7 +320,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
<ul class="blockList">
<li class="blockList">
<h4>getHeapSize</h4>
-<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.108">getHeapSize</a>()</pre>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.114">getHeapSize</a>()</pre>
</li>
</ul>
<a name="getOffHeapSize--">
@@ -314,7 +329,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
<ul class="blockList">
<li class="blockList">
<h4>getOffHeapSize</h4>
-<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.109">getOffHeapSize</a>()</pre>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.115">getOffHeapSize</a>()</pre>
</li>
</ul>
<a name="getMemStoreSize--">
@@ -323,7 +338,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/region
<ul class="blockListLast">
<li class="blockList">
<h4>getMemStoreSize</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.115">getMemStoreSize</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#line.121">getMemStoreSize</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Use this datastructure to return all three settings, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getDataSize--"><code>getDataSize()</code></a>,
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/MutableSegment.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MutableSegment.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MutableSegment.html
index f48fbf0..c15731a 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MutableSegment.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MutableSegment.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -119,7 +119,7 @@ var activeTableTab = "activeTableTab";
<hr>
<br>
<pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.39">MutableSegment</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.40">MutableSegment</a>
extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></pre>
<div class="block">A mutable segment in memstore, specifically the active segment.</div>
</li>
@@ -144,6 +144,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.htm
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#DEEP_OVERHEAD">DEEP_OVERHEAD</a></span></code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#flushed">flushed</a></span></code> </td>
+</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.regionserver.Segment">
@@ -196,9 +200,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.htm
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#add-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">add</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#add-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">add</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing)</code>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing,
+ boolean sizeAddedPreOperation)</code>
<div class="block">Adds the given cell into the segment</div>
</td>
</tr>
@@ -213,10 +218,15 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.htm
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#indexEntrySize--">indexEntrySize</a></span>()</code> </td>
</tr>
<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#setInMemoryFlushed--">setInMemoryFlushed</a></span>()</code> </td>
+</tr>
+<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#upsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">upsert</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#upsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">upsert</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
long readpoint,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing)</code> </td>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
</tr>
</table>
<ul class="blockList">
@@ -224,7 +234,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.htm
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#decScannerCount--">decScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#dump-org.slf4j.Logger-">dump</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellLength-org.apache.hadoop.hbase.Cell-">getCellLength</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellsCount--">getCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellSet--">getCellSet</a>, <a hr
ef="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getComparator--">getComparator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getDataSize--">getDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getHeapSize--">getHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreLAB--">getMemStoreLAB</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreSize--">getMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMinSequenceId--">getMinSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getOffHeapSize--">getOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanner-long-">getScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanners-long-">getScanners</a>, <a href=
"../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getTimeRangeTracker--">getTimeRangeTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#headSet-org.apache.hadoop.hbase.Cell-">headSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#heapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">heapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incMemStoreSize-long-long-long-">incMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incScannerCount--">incScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOffHeapSize-boolean-">indexEntryOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOnHeapSize-boolean-">indexEntryOnHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop
.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isTagsPresent--">isTagsPresent</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#iterator--">iterator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#last--">last</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#offHeapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">offHeapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#setCellSet-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.CellSet-">setCellSe
t</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#shouldSeek-org.apache.hadoop.hbase.io.TimeRange-long-">shouldSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#tailSet-org.apache.hadoop.hbase.Cell-">tailSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareAndSetDataSize-long-long-">compareAndSetDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#decScannerCount--">decScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#dump-org.slf4j.Logger-">dump</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellLength-org.apache.hadoop.hbase.Cell-">getCellLength</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellsCo
unt--">getCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellSet--">getCellSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getComparator--">getComparator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getDataSize--">getDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getHeapSize--">getHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreLAB--">getMemStoreLAB</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreSize--">getMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMinSequenceId--">getMinSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getOffHeapSize--">getOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanner-long-"
>getScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanners-long-">getScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getTimeRangeTracker--">getTimeRangeTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#headSet-org.apache.hadoop.hbase.Cell-">headSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#heapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">heapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incMemStoreSize-long-long-long-">incMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incScannerCount--">incScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOffHeapSize-boolean-">indexEntryOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOnHeapSize-bool
ean-">indexEntryOnHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">internalAdd</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isTagsPresent--">isTagsPresent</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#iterator--">iterator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#last--">last</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#offHeapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">offHeapSizeChange</a>, <a href="../../../../../org/apache/hadoop/h
base/regionserver/Segment.html#setCellSet-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.CellSet-">setCellSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#sharedLock--">sharedLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#sharedUnlock--">sharedUnlock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#shouldSeek-org.apache.hadoop.hbase.io.TimeRange-long-">shouldSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#tailSet-org.apache.hadoop.hbase.Cell-">tailSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/
regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#waitForUpdates--">waitForUpdates</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -254,13 +264,22 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.htm
<!-- -->
</a>
<h3>Field Detail</h3>
+<a name="flushed">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flushed</h4>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.42">flushed</a></pre>
+</li>
+</ul>
<a name="DEEP_OVERHEAD">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DEEP_OVERHEAD</h4>
-<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.41">DEEP_OVERHEAD</a></pre>
+<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.44">DEEP_OVERHEAD</a></pre>
</li>
</ul>
</li>
@@ -277,7 +296,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.htm
<ul class="blockListLast">
<li class="blockList">
<h4>MutableSegment</h4>
-<pre>protected <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.45">MutableSegment</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> cellSet,
+<pre>protected <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.50">MutableSegment</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> cellSet,
<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> comparator,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a> memStoreLAB)</pre>
</li>
@@ -290,15 +309,16 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.htm
<!-- -->
</a>
<h3>Method Detail</h3>
-<a name="add-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
+<a name="add-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.55">add</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.60">add</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean mslabUsed,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing)</pre>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing,
+ boolean sizeAddedPreOperation)</pre>
<div class="block">Adds the given cell into the segment</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -307,15 +327,25 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.htm
</dl>
</li>
</ul>
-<a name="upsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
+<a name="upsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>upsert</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.59">upsert</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.65">upsert</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
long readpoint,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing)</pre>
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing,
+ boolean sizeAddedPreOperation)</pre>
+</li>
+</ul>
+<a name="setInMemoryFlushed--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setInMemoryFlushed</h4>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.115">setInMemoryFlushed</a>()</pre>
</li>
</ul>
<a name="first--">
@@ -324,7 +354,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.htm
<ul class="blockList">
<li class="blockList">
<h4>first</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.113">first</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.124">first</a>()</pre>
<div class="block">Returns the first cell in the segment</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -338,7 +368,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.htm
<ul class="blockListLast">
<li class="blockList">
<h4>indexEntrySize</h4>
-<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.117">indexEntrySize</a>()</pre>
+<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html#line.128">indexEntrySize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntrySize--">indexEntrySize</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></code></dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html b/devapidocs/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html
index 41011f5..92bcfcd 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -204,28 +204,33 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#compareAndSetDataSize-long-long-">compareAndSetDataSize</a></span>(long expected,
+ long updated)</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#getDataSize--">getDataSize</a></span>()</code> </td>
</tr>
-<tr id="i1" class="rowColor">
+<tr id="i2" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#getHeapSize--">getHeapSize</a></span>()</code> </td>
</tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#getMemStoreSize--">getMemStoreSize</a></span>()</code> </td>
</tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#getOffHeapSize--">getOffHeapSize</a></span>()</code> </td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#incMemStoreSize-long-long-long-">incMemStoreSize</a></span>(long dataSizeDelta,
long heapSizeDelta,
long offHeapSizeDelta)</code> </td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#toString--">toString</a></span>()</code> </td>
</tr>
@@ -363,13 +368,27 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
</dl>
</li>
</ul>
+<a name="compareAndSetDataSize-long-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compareAndSetDataSize</h4>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#line.62">compareAndSetDataSize</a>(long expected,
+ long updated)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#compareAndSetDataSize-long-long-">compareAndSetDataSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></code></dd>
+</dl>
+</li>
+</ul>
<a name="getDataSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDataSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#line.63">getDataSize</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#line.71">getDataSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getDataSize--">getDataSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></code></dd>
@@ -382,7 +401,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getHeapSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#line.68">getHeapSize</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#line.76">getHeapSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getHeapSize--">getHeapSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></code></dd>
@@ -395,7 +414,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getOffHeapSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#line.73">getOffHeapSize</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#line.81">getOffHeapSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getOffHeapSize--">getOffHeapSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></code></dd>
@@ -408,7 +427,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#line.78">toString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html#line.86">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
[51/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
Published site at 0f23784182ab88649de340d75804e0ff20dcd0fc.
Project: http://git-wip-us.apache.org/repos/asf/hbase-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase-site/commit/bcb555af
Tree: http://git-wip-us.apache.org/repos/asf/hbase-site/tree/bcb555af
Diff: http://git-wip-us.apache.org/repos/asf/hbase-site/diff/bcb555af
Branch: refs/heads/asf-site
Commit: bcb555af57f738eb6e6eafc42a4cef73667f8990
Parents: 8e541fb
Author: jenkins <bu...@apache.org>
Authored: Tue Jul 3 20:05:46 2018 +0000
Committer: jenkins <bu...@apache.org>
Committed: Tue Jul 3 20:05:46 2018 +0000
----------------------------------------------------------------------
acid-semantics.html | 4 +-
apache_hbase_reference_guide.pdf | 19604 +++++++--------
book.html | 14 +-
bulk-loads.html | 4 +-
checkstyle-aggregate.html | 21514 ++++++++---------
checkstyle.rss | 48 +-
coc.html | 4 +-
dependencies.html | 4 +-
dependency-convergence.html | 4 +-
dependency-info.html | 4 +-
dependency-management.html | 4 +-
devapidocs/allclasses-frame.html | 6 +
devapidocs/allclasses-noframe.html | 6 +
devapidocs/constant-values.html | 33 +-
devapidocs/index-all.html | 286 +-
.../hadoop/hbase/backup/package-tree.html | 6 +-
.../org/apache/hadoop/hbase/class-use/Cell.html | 259 +-
.../hadoop/hbase/client/package-tree.html | 20 +-
.../hadoop/hbase/coprocessor/package-tree.html | 2 +-
.../hadoop/hbase/executor/package-tree.html | 2 +-
.../hadoop/hbase/filter/package-tree.html | 6 +-
...AsyncDFSOutputSaslHelper.DecryptHandler.html | 8 +-
...AsyncDFSOutputSaslHelper.EncryptHandler.html | 10 +-
...eBlockAsyncDFSOutputSaslHelper.PBHelper.html | 6 +-
...ockAsyncDFSOutputSaslHelper.SaslAdaptor.html | 8 +-
...putSaslHelper.SaslClientCallbackHandler.html | 10 +-
...FSOutputSaslHelper.SaslNegotiateHandler.html | 48 +-
...ncDFSOutputSaslHelper.SaslUnwrapHandler.html | 10 +-
...syncDFSOutputSaslHelper.SaslWrapHandler.html | 16 +-
...utputSaslHelper.TransparentCryptoHelper.html | 4 +-
.../FanOutOneBlockAsyncDFSOutputSaslHelper.html | 94 +-
...utputSaslHelper.TransparentCryptoHelper.html | 8 +
.../BlockCacheUtil.CachedBlocksByFile.html | 42 +-
.../hadoop/hbase/io/hfile/BlockCacheUtil.html | 50 +-
.../io/hfile/LruBlockCache.BlockBucket.html | 28 +-
.../io/hfile/LruBlockCache.EvictionThread.html | 18 +-
.../hfile/LruBlockCache.StatisticsThread.html | 8 +-
.../hadoop/hbase/io/hfile/LruBlockCache.html | 80 +-
.../hfile/bucket/BucketCache.BucketEntry.html | 48 +-
.../bucket/BucketCache.BucketEntryGroup.html | 18 +-
.../hfile/bucket/BucketCache.RAMQueueEntry.html | 20 +-
.../BucketCache.SharedMemoryBucketEntry.html | 20 +-
.../bucket/BucketCache.StatisticsThread.html | 8 +-
.../hfile/bucket/BucketCache.WriterThread.html | 47 +-
.../hbase/io/hfile/bucket/BucketCache.html | 199 +-
.../class-use/BucketCache.BucketEntry.html | 7 +
.../hbase/io/hfile/class-use/BlockCache.html | 9 +
.../hbase/io/hfile/class-use/BlockCacheKey.html | 35 +-
.../hbase/io/hfile/class-use/Cacheable.html | 18 +-
.../hadoop/hbase/io/hfile/package-tree.html | 6 +-
.../org/apache/hadoop/hbase/ipc/RpcServer.html | 44 +-
.../apache/hadoop/hbase/ipc/package-tree.html | 2 +-
.../org/apache/hadoop/hbase/master/HMaster.html | 2 +-
.../master/HMasterCommandLine.LocalHMaster.html | 2 +-
.../master/assignment/MoveRegionProcedure.html | 22 +-
.../hbase/master/balancer/package-tree.html | 2 +-
.../hadoop/hbase/master/package-tree.html | 2 +-
.../procedure/MasterProcedureScheduler.html | 100 +-
.../hbase/master/procedure/package-tree.html | 2 +-
.../hadoop/hbase/monitoring/package-tree.html | 2 +-
.../org/apache/hadoop/hbase/package-tree.html | 16 +-
.../hadoop/hbase/procedure2/package-tree.html | 6 +-
.../hadoop/hbase/quotas/package-tree.html | 8 +-
.../hbase/regionserver/AbstractMemStore.html | 250 +-
.../regionserver/CSLMImmutableSegment.html | 2 +-
.../regionserver/CellArrayImmutableSegment.html | 14 +-
.../regionserver/CellChunkImmutableSegment.html | 38 +-
...tingMemStore.InMemoryCompactionRunnable.html | 291 +
...ompactingMemStore.InMemoryFlushRunnable.html | 291 -
.../CompactingMemStore.IndexType.html | 4 +-
.../hbase/regionserver/CompactingMemStore.html | 307 +-
.../hbase/regionserver/CompactionPipeline.html | 60 +-
.../regionserver/CompositeImmutableSegment.html | 36 +-
.../hbase/regionserver/DefaultMemStore.html | 117 +-
.../HRegion.BatchOperation.Visitor.html | 4 +-
.../regionserver/HRegion.BatchOperation.html | 78 +-
.../regionserver/HRegion.BulkLoadListener.html | 8 +-
.../HRegion.FlushResult.Result.html | 10 +-
.../hbase/regionserver/HRegion.FlushResult.html | 8 +-
.../HRegion.MutationBatchOperation.html | 44 +-
.../regionserver/HRegion.RegionScannerImpl.html | 90 +-
.../HRegion.ReplayBatchOperation.html | 32 +-
.../regionserver/HRegion.RowLockContext.html | 28 +-
.../hbase/regionserver/HRegion.RowLockImpl.html | 16 +-
.../hadoop/hbase/regionserver/HRegion.html | 546 +-
.../HRegionServer.CompactionChecker.html | 14 +-
.../HRegionServer.MovedRegionInfo.html | 16 +-
.../HRegionServer.MovedRegionsCleaner.html | 16 +-
.../HRegionServer.PeriodicMemStoreFlusher.html | 12 +-
.../hbase/regionserver/HRegionServer.html | 677 +-
.../hbase/regionserver/ImmutableSegment.html | 2 +-
.../hbase/regionserver/MemStoreCompactor.html | 34 +-
.../hbase/regionserver/MemStoreLABImpl.html | 30 +-
.../hbase/regionserver/MemStoreSizing.html | 47 +-
.../hbase/regionserver/MutableSegment.html | 64 +-
.../NonThreadSafeMemStoreSizing.html | 39 +-
.../regionserver/RegionServicesForStores.html | 52 +-
.../regionserver/ReplicationSourceService.html | 30 +-
.../hadoop/hbase/regionserver/Segment.html | 290 +-
.../regionserver/ThreadSafeMemStoreSizing.html | 39 +-
.../class-use/CSLMImmutableSegment.html | 2 +-
.../hbase/regionserver/class-use/CellSet.html | 3 +-
...tingMemStore.InMemoryCompactionRunnable.html | 125 +
...ompactingMemStore.InMemoryFlushRunnable.html | 125 -
.../regionserver/class-use/HRegionServer.html | 38 +-
.../regionserver/class-use/KeyValueScanner.html | 3 +-
.../MemStoreCompactionStrategy.Action.html | 5 +-
.../regionserver/class-use/MemStoreSizing.html | 110 +-
.../regionserver/class-use/MutableSegment.html | 91 +-
.../hadoop/hbase/regionserver/package-tree.html | 18 +-
.../regionserver/querymatcher/package-tree.html | 2 +-
.../hbase/regionserver/wal/package-tree.html | 2 +-
.../hadoop/hbase/replication/package-tree.html | 2 +-
.../replication/regionserver/MetricsSource.html | 229 +-
.../RecoveredReplicationSource.html | 2 +-
.../replication/regionserver/Replication.html | 2 +
.../regionserver/ReplicationLoad.html | 41 +-
.../ReplicationSource.LogsComparator.html | 8 +-
.../regionserver/ReplicationSource.html | 223 +-
.../ReplicationSourceInterface.html | 86 +-
.../regionserver/ReplicationSourceShipper.html | 66 +-
.../ReplicationSourceWALReader.html | 110 +-
...licationStatus.ReplicationStatusBuilder.html | 507 +
.../regionserver/ReplicationStatus.html | 525 +
.../regionserver/ReplicationSyncUp.html | 4 +-
.../SerialReplicationSourceWALReader.html | 2 +-
.../class-use/ReplicationSourceManager.html | 24 +
...licationStatus.ReplicationStatusBuilder.html | 208 +
.../class-use/ReplicationStatus.html | 234 +
.../regionserver/class-use/WALEntryBatch.html | 8 +-
.../replication/regionserver/package-frame.html | 2 +
.../regionserver/package-summary.html | 8 +
.../replication/regionserver/package-tree.html | 4 +-
.../replication/regionserver/package-use.html | 33 +
.../hadoop/hbase/rest/model/package-tree.html | 2 +-
.../hbase/security/access/package-tree.html | 2 +-
.../hadoop/hbase/thrift/package-tree.html | 4 +-
.../hbase/tmpl/regionserver/RSStatusTmpl.html | 4 +-
.../tmpl/regionserver/RegionListTmplImpl.html | 4 +-
.../ReplicationStatusTmpl.ImplData.html | 330 +
.../ReplicationStatusTmpl.Intf.html | 240 +
.../regionserver/ReplicationStatusTmpl.html | 450 +
.../regionserver/ReplicationStatusTmplImpl.html | 387 +
.../ReplicationStatusTmpl.ImplData.html | 194 +
.../class-use/ReplicationStatusTmpl.Intf.html | 165 +
.../class-use/ReplicationStatusTmpl.html | 125 +
.../class-use/ReplicationStatusTmplImpl.html | 125 +
.../hbase/tmpl/regionserver/package-frame.html | 4 +
.../tmpl/regionserver/package-summary.html | 28 +-
.../hbase/tmpl/regionserver/package-tree.html | 4 +
.../hbase/tmpl/regionserver/package-use.html | 6 +
.../apache/hadoop/hbase/util/package-tree.html | 8 +-
.../apache/hadoop/hbase/wal/package-tree.html | 2 +-
devapidocs/overview-tree.html | 8 +-
.../org/apache/hadoop/hbase/Version.html | 6 +-
...AsyncDFSOutputSaslHelper.DecryptHandler.html | 1530 +-
...AsyncDFSOutputSaslHelper.EncryptHandler.html | 1530 +-
...eBlockAsyncDFSOutputSaslHelper.PBHelper.html | 1530 +-
...ockAsyncDFSOutputSaslHelper.SaslAdaptor.html | 1530 +-
...putSaslHelper.SaslClientCallbackHandler.html | 1530 +-
...FSOutputSaslHelper.SaslNegotiateHandler.html | 1530 +-
...ncDFSOutputSaslHelper.SaslUnwrapHandler.html | 1530 +-
...syncDFSOutputSaslHelper.SaslWrapHandler.html | 1530 +-
...utputSaslHelper.TransparentCryptoHelper.html | 1530 +-
.../FanOutOneBlockAsyncDFSOutputSaslHelper.html | 1530 +-
...BlockCacheUtil.CachedBlockCountsPerFile.html | 301 +-
.../BlockCacheUtil.CachedBlocksByFile.html | 301 +-
.../hadoop/hbase/io/hfile/BlockCacheUtil.html | 301 +-
.../io/hfile/LruBlockCache.BlockBucket.html | 1569 +-
.../io/hfile/LruBlockCache.EvictionThread.html | 1569 +-
.../hfile/LruBlockCache.StatisticsThread.html | 1569 +-
.../hadoop/hbase/io/hfile/LruBlockCache.html | 1569 +-
.../hfile/bucket/BucketCache.BucketEntry.html | 2492 +-
.../bucket/BucketCache.BucketEntryGroup.html | 2492 +-
.../hfile/bucket/BucketCache.RAMQueueEntry.html | 2492 +-
.../BucketCache.SharedMemoryBucketEntry.html | 2492 +-
.../bucket/BucketCache.StatisticsThread.html | 2492 +-
.../hfile/bucket/BucketCache.WriterThread.html | 2492 +-
.../hbase/io/hfile/bucket/BucketCache.html | 2492 +-
.../RpcServer.BlockingServiceAndInterface.html | 585 +-
.../hadoop/hbase/ipc/RpcServer.CallCleanup.html | 585 +-
.../org/apache/hadoop/hbase/ipc/RpcServer.html | 585 +-
.../master/assignment/MoveRegionProcedure.html | 222 +-
.../procedure/MasterProcedureScheduler.html | 1681 +-
.../hbase/regionserver/AbstractMemStore.html | 509 +-
.../regionserver/CellArrayImmutableSegment.html | 227 +-
.../regionserver/CellChunkImmutableSegment.html | 511 +-
...tingMemStore.InMemoryCompactionRunnable.html | 696 +
...ompactingMemStore.InMemoryFlushRunnable.html | 649 -
.../CompactingMemStore.IndexType.html | 919 +-
.../hbase/regionserver/CompactingMemStore.html | 919 +-
.../hbase/regionserver/CompactionPipeline.html | 626 +-
.../regionserver/CompositeImmutableSegment.html | 101 +-
.../hbase/regionserver/DefaultMemStore.html | 148 +-
.../HRegion.BatchOperation.Visitor.html | 15026 ++++++------
.../regionserver/HRegion.BatchOperation.html | 15026 ++++++------
.../regionserver/HRegion.BulkLoadListener.html | 15026 ++++++------
.../HRegion.FlushResult.Result.html | 15026 ++++++------
.../hbase/regionserver/HRegion.FlushResult.html | 15026 ++++++------
.../regionserver/HRegion.FlushResultImpl.html | 15026 ++++++------
.../HRegion.MutationBatchOperation.html | 15026 ++++++------
.../HRegion.ObservedExceptionsInBatch.html | 15026 ++++++------
.../HRegion.PrepareFlushResult.html | 15026 ++++++------
.../regionserver/HRegion.RegionScannerImpl.html | 15026 ++++++------
.../HRegion.ReplayBatchOperation.html | 15026 ++++++------
.../regionserver/HRegion.RowLockContext.html | 15026 ++++++------
.../hbase/regionserver/HRegion.RowLockImpl.html | 15026 ++++++------
.../hbase/regionserver/HRegion.WriteState.html | 15026 ++++++------
.../hadoop/hbase/regionserver/HRegion.html | 15026 ++++++------
.../HRegionServer.CompactionChecker.html | 7240 +++---
.../HRegionServer.MovedRegionInfo.html | 7240 +++---
.../HRegionServer.MovedRegionsCleaner.html | 7240 +++---
.../HRegionServer.PeriodicMemStoreFlusher.html | 7240 +++---
.../hbase/regionserver/HRegionServer.html | 7240 +++---
.../hbase/regionserver/MemStoreCompactor.html | 474 +-
.../hbase/regionserver/MemStoreLABImpl.html | 476 +-
.../hbase/regionserver/MemStoreSizing.html | 64 +-
.../hbase/regionserver/MutableSegment.html | 205 +-
.../NonThreadSafeMemStoreSizing.html | 48 +-
.../regionserver/RegionServicesForStores.html | 48 +-
.../hbase/regionserver/ReplicationService.html | 2 +-
.../regionserver/ReplicationSourceService.html | 56 +-
.../hadoop/hbase/regionserver/Segment.html | 780 +-
.../regionserver/ThreadSafeMemStoreSizing.html | 44 +-
.../replication/regionserver/MetricsSource.html | 648 +-
.../regionserver/ReplicationLoad.html | 192 +-
.../ReplicationSource.LogsComparator.html | 1296 +-
.../regionserver/ReplicationSource.html | 1296 +-
.../ReplicationSourceInterface.html | 350 +-
.../ReplicationSourceShipper.WorkerState.html | 488 +-
.../regionserver/ReplicationSourceShipper.html | 488 +-
.../ReplicationSourceWALReader.html | 785 +-
...licationStatus.ReplicationStatusBuilder.html | 207 +
.../regionserver/ReplicationStatus.html | 207 +
.../tmpl/master/RegionServerListTmplImpl.html | 48 +-
.../tmpl/regionserver/RSStatusTmplImpl.html | 203 +-
.../ReplicationStatusTmpl.ImplData.html | 196 +
.../ReplicationStatusTmpl.Intf.html | 196 +
.../regionserver/ReplicationStatusTmpl.html | 196 +
.../regionserver/ReplicationStatusTmplImpl.html | 221 +
downloads.html | 4 +-
export_control.html | 4 +-
index.html | 4 +-
integration.html | 4 +-
issue-tracking.html | 4 +-
license.html | 4 +-
mail-lists.html | 4 +-
metrics.html | 4 +-
old_news.html | 4 +-
plugin-management.html | 4 +-
plugins.html | 4 +-
poweredbyhbase.html | 4 +-
project-info.html | 4 +-
project-reports.html | 4 +-
project-summary.html | 4 +-
pseudo-distributed.html | 4 +-
replication.html | 4 +-
resources.html | 4 +-
source-repository.html | 4 +-
sponsors.html | 4 +-
supportingprojects.html | 4 +-
team-list.html | 4 +-
testdevapidocs/allclasses-frame.html | 1 +
testdevapidocs/allclasses-noframe.html | 1 +
testdevapidocs/index-all.html | 20 +-
...aseCluster.MiniHBaseClusterRegionServer.html | 2 +-
...entOperationTimeout.DelayedRegionServer.html | 2 +-
.../hbase/TestLocalHBaseCluster.MyHMaster.html | 2 +-
.../TestLocalHBaseCluster.MyHRegionServer.html | 2 +-
...ovedRegionsCleaner.TestMockRegionServer.html | 2 +-
.../hbase/class-use/HBaseClassTestRule.html | 72 +-
.../apache/hadoop/hbase/client/TestAdmin1.html | 89 +-
...rRPCTimeout.RegionServerWithScanTimeout.html | 2 +-
...taCache.RegionServerWithFakeRpcServices.html | 2 +-
.../WriteHeavyIncrementObserverTestBase.html | 32 +-
.../apache/hadoop/hbase/io/TestHeapSize.html | 6 +-
.../TestBucketCache.MockedBucketCache.html | 2 +-
.../hbase/io/hfile/bucket/TestBucketCache.html | 55 +-
.../TestBucketWriterThread.MockBucketCache.html | 2 +-
.../hadoop/hbase/io/hfile/package-tree.html | 2 +-
.../master/TestGetReplicationLoad.MyMaster.html | 2 +-
.../master/TestMasterMetrics.MyMaster.html | 2 +-
.../TestMetaShutdownHandler.MyRegionServer.html | 2 +-
.../TestShutdownBackupMaster.MockHMaster.html | 2 +-
.../org/apache/hadoop/hbase/package-tree.html | 12 +-
.../hadoop/hbase/procedure2/package-tree.html | 2 +-
.../hbase/regionserver/OOMERegionServer.html | 2 +-
...CompactingMemStore.MyCompactingMemStore.html | 4 +-
.../TestCompactingToCellFlatMapMemStore.html | 8 +-
...onInDeadRegionServer.IgnoreYouAreDeadRS.html | 2 +-
.../TestHStore.MyCompactingMemStore.html | 18 +-
...MyCompactingMemStoreWithCustomCompactor.html | 16 +-
.../hbase/regionserver/TestHStore.MyList.html | 54 +-
.../regionserver/TestHStore.MyListHook.html | 4 +-
...Initializing.RegisterAndDieRegionServer.html | 2 +-
...egionMergeTransactionOnCluster.MyMaster.html | 2 +-
...egionServerReportForDuty.MyRegionServer.html | 2 +-
...eartbeatMessages.HeartbeatHRegionServer.html | 2 +-
...stShutdownWhileWALBroken.MyRegionServer.html | 2 +-
.../TestSplitTransactionOnCluster.MyMaster.html | 2 +-
.../hadoop/hbase/regionserver/package-tree.html | 4 +-
.../replication/ReplicationSourceDummy.html | 2 +-
.../hbase/replication/TestReplicationBase.html | 2 +-
...plicationKillSlaveRSWithSeparateOldWALs.html | 4 +-
.../TestReplicationMetricsforUI.html | 345 +
.../replication/TestReplicationPeerConfig.html | 4 +-
...stReplicationProcedureRetry.MockHMaster.html | 2 +-
.../class-use/TestReplicationBase.html | 14 +-
.../class-use/TestReplicationMetricsforUI.html | 125 +
.../hadoop/hbase/replication/package-frame.html | 1 +
.../hbase/replication/package-summary.html | 58 +-
.../hadoop/hbase/replication/package-tree.html | 1 +
...icationSource.ShutdownDelayRegionServer.html | 2 +-
...er.FailInitializeDummyReplicationSource.html | 2 +-
.../apache/hadoop/hbase/test/package-tree.html | 4 +-
.../apache/hadoop/hbase/wal/package-tree.html | 2 +-
testdevapidocs/overview-tree.html | 1 +
.../apache/hadoop/hbase/client/TestAdmin1.html | 2071 +-
.../WriteHeavyIncrementObserverTestBase.html | 145 +-
.../apache/hadoop/hbase/io/TestHeapSize.html | 378 +-
.../TestBucketCache.MockedBucketCache.html | 497 +-
.../hbase/io/hfile/bucket/TestBucketCache.html | 497 +-
...MemStore.EnvironmentEdgeForMemstoreTest.html | 4 +-
...CompactingMemStore.MyCompactingMemStore.html | 4 +-
.../regionserver/TestCompactingMemStore.html | 4 +-
.../TestCompactingToCellFlatMapMemStore.html | 290 +-
.../TestHStore.DummyStoreEngine.html | 183 +-
.../TestHStore.FaultyFileSystem.html | 183 +-
.../TestHStore.FaultyOutputStream.html | 183 +-
.../TestHStore.MyCompactingMemStore.html | 183 +-
...MyCompactingMemStoreWithCustomCompactor.html | 183 +-
.../hbase/regionserver/TestHStore.MyList.html | 183 +-
.../regionserver/TestHStore.MyListHook.html | 183 +-
.../TestHStore.MyMemStoreCompactor.html | 183 +-
.../hbase/regionserver/TestHStore.MyStore.html | 183 +-
.../regionserver/TestHStore.MyStoreHook.html | 183 +-
.../hbase/regionserver/TestHStore.MyThread.html | 183 +-
.../hadoop/hbase/regionserver/TestHStore.html | 183 +-
.../TestReplicationMetricsforUI.html | 179 +
.../TestSyncReplicationStandbyKillRS.html | 4 +-
340 files changed, 193324 insertions(+), 185247 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index 689850d..47f35dd 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -7,7 +7,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta name="Date-Revision-yyyymmdd" content="20180630" />
+ <meta name="Date-Revision-yyyymmdd" content="20180703" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase –
Apache HBase (TM) ACID Properties
@@ -601,7 +601,7 @@ under the License. -->
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-06-30</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-07-03</li>
</p>
</div>
[26/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html b/devapidocs/org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html
index b497649..fc09302 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -202,28 +202,33 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#compareAndSetDataSize-long-long-">compareAndSetDataSize</a></span>(long expected,
+ long updated)</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#getDataSize--">getDataSize</a></span>()</code> </td>
</tr>
-<tr id="i1" class="rowColor">
+<tr id="i2" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#getHeapSize--">getHeapSize</a></span>()</code> </td>
</tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#getMemStoreSize--">getMemStoreSize</a></span>()</code> </td>
</tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#getOffHeapSize--">getOffHeapSize</a></span>()</code> </td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#incMemStoreSize-long-long-long-">incMemStoreSize</a></span>(long dataSizeDelta,
long heapSizeDelta,
long offHeapSizeDelta)</code> </td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#toString--">toString</a></span>()</code> </td>
</tr>
@@ -361,13 +366,27 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
</dl>
</li>
</ul>
+<a name="compareAndSetDataSize-long-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compareAndSetDataSize</h4>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#line.61">compareAndSetDataSize</a>(long expected,
+ long updated)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#compareAndSetDataSize-long-long-">compareAndSetDataSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></code></dd>
+</dl>
+</li>
+</ul>
<a name="getDataSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDataSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#line.62">getDataSize</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#line.66">getDataSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getDataSize--">getDataSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></code></dd>
@@ -380,7 +399,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getHeapSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#line.67">getHeapSize</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#line.71">getHeapSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getHeapSize--">getHeapSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></code></dd>
@@ -393,7 +412,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getOffHeapSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#line.72">getOffHeapSize</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#line.76">getOffHeapSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html#getOffHeapSize--">getOffHeapSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></code></dd>
@@ -406,7 +425,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#line.77">toString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html#line.81">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CSLMImmutableSegment.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CSLMImmutableSegment.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CSLMImmutableSegment.html
index e4058a7..dd90956 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CSLMImmutableSegment.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CSLMImmutableSegment.html
@@ -119,7 +119,7 @@
<tbody>
<tr class="altColor">
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html#CellArrayImmutableSegment-org.apache.hadoop.hbase.regionserver.CSLMImmutableSegment-org.apache.hadoop.hbase.regionserver.MemStoreSizing-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">CellArrayImmutableSegment</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/CSLMImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">CSLMImmutableSegment</a> segment,
- <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> mss,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</code>
<div class="block">------------------------------------------------------------------------
C-tor to be used when new CellChunkImmutableSegment is built as a result of flattening
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CellSet.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CellSet.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CellSet.html
index 531bfad..9654ae2 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CellSet.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CellSet.html
@@ -141,9 +141,10 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">CellChunkImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#reinitializeCellSet-int-org.apache.hadoop.hbase.regionserver.KeyValueScanner-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">reinitializeCellSet</a></span>(int numOfCells,
+<td class="colLast"><span class="typeNameLabel">CellChunkImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#reinitializeCellSet-int-org.apache.hadoop.hbase.regionserver.KeyValueScanner-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.MemStoreSizing-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">reinitializeCellSet</a></span>(int numOfCells,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a> segmentScanner,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> oldCellSet,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</code> </td>
</tr>
<tr class="altColor">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CompactingMemStore.InMemoryCompactionRunnable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CompactingMemStore.InMemoryCompactionRunnable.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CompactingMemStore.InMemoryCompactionRunnable.html
new file mode 100644
index 0000000..0e4a258
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CompactingMemStore.InMemoryCompactionRunnable.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.regionserver.CompactingMemStore.InMemoryCompactionRunnable (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.apache.hadoop.hbase.regionserver.CompactingMemStore.InMemoryCompactionRunnable (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html" title="class in org.apache.hadoop.hbase.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/class-use/CompactingMemStore.InMemoryCompactionRunnable.html" target="_top">Frames</a></li>
+<li><a href="CompactingMemStore.InMemoryCompactionRunnable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.regionserver.CompactingMemStore.InMemoryCompactionRunnable" class="title">Uses of Class<br>org.apache.hadoop.hbase.regionserver.CompactingMemStore.InMemoryCompactionRunnable</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.regionserver.CompactingMemStore.InMemoryCompactionRunnable</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html" title="class in org.apache.hadoop.hbase.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/class-use/CompactingMemStore.InMemoryCompactionRunnable.html" target="_top">Frames</a></li>
+<li><a href="CompactingMemStore.InMemoryCompactionRunnable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CompactingMemStore.InMemoryFlushRunnable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CompactingMemStore.InMemoryFlushRunnable.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CompactingMemStore.InMemoryFlushRunnable.html
deleted file mode 100644
index ffc2113..0000000
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/CompactingMemStore.InMemoryFlushRunnable.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.hadoop.hbase.regionserver.CompactingMemStore.InMemoryFlushRunnable (Apache HBase 3.0.0-SNAPSHOT API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
- try {
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="Uses of Class org.apache.hadoop.hbase.regionserver.CompactingMemStore.InMemoryFlushRunnable (Apache HBase 3.0.0-SNAPSHOT API)";
- }
- }
- catch(err) {
- }
-//-->
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!-- -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!-- -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html" title="class in org.apache.hadoop.hbase.regionserver">Class</a></li>
-<li class="navBarCell1Rev">Use</li>
-<li><a href="../../../../../../overview-tree.html">Tree</a></li>
-<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/class-use/CompactingMemStore.InMemoryFlushRunnable.html" target="_top">Frames</a></li>
-<li><a href="CompactingMemStore.InMemoryFlushRunnable.html" target="_top">No Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
- allClassesLink = document.getElementById("allclasses_navbar_top");
- if(window==top) {
- allClassesLink.style.display = "block";
- }
- else {
- allClassesLink.style.display = "none";
- }
- //-->
-</script>
-</div>
-<a name="skip.navbar.top">
-<!-- -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<div class="header">
-<h2 title="Uses of Class org.apache.hadoop.hbase.regionserver.CompactingMemStore.InMemoryFlushRunnable" class="title">Uses of Class<br>org.apache.hadoop.hbase.regionserver.CompactingMemStore.InMemoryFlushRunnable</h2>
-</div>
-<div class="classUseContainer">No usage of org.apache.hadoop.hbase.regionserver.CompactingMemStore.InMemoryFlushRunnable</div>
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!-- -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!-- -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html" title="class in org.apache.hadoop.hbase.regionserver">Class</a></li>
-<li class="navBarCell1Rev">Use</li>
-<li><a href="../../../../../../overview-tree.html">Tree</a></li>
-<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/class-use/CompactingMemStore.InMemoryFlushRunnable.html" target="_top">Frames</a></li>
-<li><a href="CompactingMemStore.InMemoryFlushRunnable.html" target="_top">No Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
- allClassesLink = document.getElementById("allclasses_navbar_bottom");
- if(window==top) {
- allClassesLink.style.display = "block";
- }
- else {
- allClassesLink.style.display = "none";
- }
- //-->
-</script>
-</div>
-<a name="skip.navbar.bottom">
-<!-- -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/HRegionServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/HRegionServer.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/HRegionServer.html
index 0ef0e72..cbb5bea 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/HRegionServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/HRegionServer.html
@@ -616,12 +616,20 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RegionListTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.ImplData.html#m_regionServer">m_regionServer</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatusTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html#m_regionServer">m_regionServer</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RegionListTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.ImplData.html#m_regionServer">m_regionServer</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></td>
<td class="colLast"><span class="typeNameLabel">RSStatusTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#m_regionServer">m_regionServer</a></span></code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatusTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#regionServer">regionServer</a></span></code> </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></td>
<td class="colLast"><span class="typeNameLabel">RegionListTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmplImpl.html#regionServer">regionServer</a></span></code> </td>
@@ -641,10 +649,14 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RegionListTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.ImplData.html#getRegionServer--">getRegionServer</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatusTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html#getRegionServer--">getRegionServer</a></span>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RegionListTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.ImplData.html#getRegionServer--">getRegionServer</a></span>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></td>
<td class="colLast"><span class="typeNameLabel">RSStatusTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#getRegionServer--">getRegionServer</a></span>()</code> </td>
</tr>
</tbody>
@@ -658,13 +670,22 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code>org.jamon.Renderer</code></td>
-<td class="colLast"><span class="typeNameLabel">RSStatusTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#makeRenderer-org.apache.hadoop.hbase.regionserver.HRegionServer-">makeRenderer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatusTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#makeRenderer-org.apache.hadoop.hbase.regionserver.HRegionServer-">makeRenderer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>org.jamon.Renderer</code></td>
+<td class="colLast"><span class="typeNameLabel">RSStatusTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#makeRenderer-org.apache.hadoop.hbase.regionserver.HRegionServer-">makeRenderer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>org.jamon.Renderer</code></td>
<td class="colLast"><span class="typeNameLabel">RegionListTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html#makeRenderer-org.apache.hadoop.hbase.regionserver.HRegionServer-java.util.List-">makeRenderer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>> onlineRegions)</code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatusTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.regionserver.HRegionServer-">render</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)</code> </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="typeNameLabel">RSStatusTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.regionserver.HRegionServer-">render</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
@@ -678,15 +699,24 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">RSStatusTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.regionserver.HRegionServer-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
+<td class="colLast"><span class="typeNameLabel">ReplicationStatusTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.regionserver.HRegionServer-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RSStatusTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.regionserver.HRegionServer-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="typeNameLabel">RegionListTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.regionserver.HRegionServer-java.util.List-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>> onlineRegions)</code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatusTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html#setRegionServer-org.apache.hadoop.hbase.regionserver.HRegionServer-">setRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)</code> </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="typeNameLabel">RegionListTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.ImplData.html#setRegionServer-org.apache.hadoop.hbase.regionserver.HRegionServer-">setRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)</code> </td>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/KeyValueScanner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/KeyValueScanner.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/KeyValueScanner.html
index 65f7fa5..659e89f 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/KeyValueScanner.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/KeyValueScanner.html
@@ -465,9 +465,10 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">CellChunkImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#reinitializeCellSet-int-org.apache.hadoop.hbase.regionserver.KeyValueScanner-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">reinitializeCellSet</a></span>(int numOfCells,
+<td class="colLast"><span class="typeNameLabel">CellChunkImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#reinitializeCellSet-int-org.apache.hadoop.hbase.regionserver.KeyValueScanner-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.MemStoreSizing-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">reinitializeCellSet</a></span>(int numOfCells,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a> segmentScanner,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> oldCellSet,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</code> </td>
</tr>
</tbody>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MemStoreCompactionStrategy.Action.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MemStoreCompactionStrategy.Action.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MemStoreCompactionStrategy.Action.html
index 7ee65c5..76ba1ed 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MemStoreCompactionStrategy.Action.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MemStoreCompactionStrategy.Action.html
@@ -245,9 +245,10 @@ the order they are declared.</div>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">CellChunkImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#reinitializeCellSet-int-org.apache.hadoop.hbase.regionserver.KeyValueScanner-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">reinitializeCellSet</a></span>(int numOfCells,
+<td class="colLast"><span class="typeNameLabel">CellChunkImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#reinitializeCellSet-int-org.apache.hadoop.hbase.regionserver.KeyValueScanner-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.MemStoreSizing-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">reinitializeCellSet</a></span>(int numOfCells,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a> segmentScanner,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> oldCellSet,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</code> </td>
</tr>
</tbody>
@@ -271,7 +272,7 @@ the order they are declared.</div>
</tr>
<tr class="rowColor">
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html#CellArrayImmutableSegment-org.apache.hadoop.hbase.regionserver.CSLMImmutableSegment-org.apache.hadoop.hbase.regionserver.MemStoreSizing-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">CellArrayImmutableSegment</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/CSLMImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">CSLMImmutableSegment</a> segment,
- <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> mss,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</code>
<div class="block">------------------------------------------------------------------------
C-tor to be used when new CellChunkImmutableSegment is built as a result of flattening
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MemStoreSizing.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MemStoreSizing.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MemStoreSizing.html
index 075c23d..d6eaaf7 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MemStoreSizing.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MemStoreSizing.html
@@ -211,9 +211,10 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#add-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">add</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colLast"><span class="typeNameLabel">MutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#add-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">add</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean mslabUsed,
- <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing)</code>
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing,
+ boolean sizeAddedPreOperation)</code>
<div class="block">Adds the given cell into the segment</div>
</td>
</tr>
@@ -276,6 +277,19 @@
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreAccounting)</code> </td>
</tr>
<tr class="altColor">
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">CompactingMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#checkAndAddToActiveSize-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">checkAndAddToActiveSize</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code>
+<div class="block">Check whether anything need to be done based on the current active set size.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CellChunkImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#copyCellIntoMSLAB-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">copyCellIntoMSLAB</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a></code></td>
<td class="colLast"><span class="typeNameLabel">SegmentFactory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/SegmentFactory.html#createImmutableSegmentByFlattening-org.apache.hadoop.hbase.regionserver.CSLMImmutableSegment-org.apache.hadoop.hbase.regionserver.CompactingMemStore.IndexType-org.apache.hadoop.hbase.regionserver.MemStoreSizing-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">createImmutableSegmentByFlattening</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/CSLMImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">CSLMImmutableSegment</a> segment,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver">CompactingMemStore.IndexType</a> idxType,
@@ -283,24 +297,79 @@
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">CompositeImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
- boolean mslabUsed,
- <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#doAdd-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">doAdd</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> toAdd,
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#doAddOrUpsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">doAddOrUpsert</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ long readpoint,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean doAdd)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#doUpsert-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">doUpsert</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ long readpoint,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">CompositeImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">internalAdd</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean mslabUsed,
- <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">internalAdd</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ boolean mslabUsed,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#internalAdd-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> toAdd,
boolean mslabUsed,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected abstract boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code>
+<div class="block">Issue any synchronization and test needed before applying the update</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">CompactingMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code>
+<div class="block">Issue any synchronization and test needed before applying the update
+ For compacting memstore this means checking the update can increase the size without
+ overflow</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">DefaultMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
<tr class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">CellChunkImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#reinitializeCellSet-int-org.apache.hadoop.hbase.regionserver.KeyValueScanner-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.MemStoreSizing-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">reinitializeCellSet</a></span>(int numOfCells,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a> segmentScanner,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> oldCellSet,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</code> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><span class="typeNameLabel">HRegion.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#restoreEdit-org.apache.hadoop.hbase.regionserver.HStore-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">restoreEdit</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a> s,
<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
@@ -308,19 +377,27 @@
<div class="block">Used by tests</div>
</td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">CompactingMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#shouldFlushInMemory-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">shouldFlushInMemory</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">CompositeImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+<td class="colLast"><span class="typeNameLabel">CompositeImmutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">updateMetaInfo</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
boolean succ,
boolean mslabUsed,
- <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+<td class="colLast"><span class="typeNameLabel">Segment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">updateMetaInfo</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
boolean succ,
boolean mslabUsed,
- <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
@@ -336,9 +413,10 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#upsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">upsert</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colLast"><span class="typeNameLabel">MutableSegment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html#upsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">upsert</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
long readpoint,
- <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing)</code> </td>
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memStoreSizing,
+ boolean sizeAddedPreOperation)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
@@ -372,7 +450,7 @@
<tbody>
<tr class="altColor">
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html#CellArrayImmutableSegment-org.apache.hadoop.hbase.regionserver.CSLMImmutableSegment-org.apache.hadoop.hbase.regionserver.MemStoreSizing-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">CellArrayImmutableSegment</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/CSLMImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">CSLMImmutableSegment</a> segment,
- <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> mss,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</code>
<div class="block">------------------------------------------------------------------------
C-tor to be used when new CellChunkImmutableSegment is built as a result of flattening
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MutableSegment.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MutableSegment.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MutableSegment.html
index aa163ac..63c5807 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MutableSegment.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MutableSegment.html
@@ -103,7 +103,7 @@
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a></code></td>
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a></code></td>
<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#active">active</a></span></code> </td>
</tr>
</tbody>
@@ -140,17 +140,104 @@
</tr>
<tbody>
<tr class="altColor">
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">CompactingMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#checkAndAddToActiveSize-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">checkAndAddToActiveSize</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code>
+<div class="block">Check whether anything need to be done based on the current active set size.</div>
+</td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a></code></td>
<td class="colLast"><span class="typeNameLabel">SegmentFactory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/SegmentFactory.html#createImmutableSegment-org.apache.hadoop.hbase.regionserver.MutableSegment-">createImmutableSegment</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> segment)</code> </td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#doAdd-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">doAdd</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#doUpsert-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">doUpsert</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ long readpoint,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">CompactingMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#flushInMemory-org.apache.hadoop.hbase.regionserver.MutableSegment-">flushInMemory</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#internalAdd-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> toAdd,
+ boolean mslabUsed,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ boolean forceCloneOfBigCell)</code>
+<div class="block">If the segment has a memory allocator the cell is being cloned to this space, and returned;
+ Otherwise the given cell is returned
+
+ When a cell's size is too big (bigger than maxAlloc), it is not allocated on MSLAB.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected abstract void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">postUpdate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive)</code>
+<div class="block">Issue any post update synchronization and tests</div>
+</td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">CompactingMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#pushActiveToPipeline-org.apache.hadoop.hbase.regionserver.MutableSegment-">pushActiveToPipeline</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> active)</code> </td>
+<td class="colLast"><span class="typeNameLabel">CompactingMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">postUpdate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">DefaultMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">postUpdate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code>
+<div class="block">Issue any synchronization and test needed before applying the update</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">CompactingMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code>
+<div class="block">Issue any synchronization and test needed before applying the update
+ For compacting memstore this means checking the update can increase the size without
+ overflow</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">DefaultMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/DefaultMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">CompactingMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#pushActiveToPipeline-org.apache.hadoop.hbase.regionserver.MutableSegment-">pushActiveToPipeline</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">CompactionPipeline.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactionPipeline.html#pushHead-org.apache.hadoop.hbase.regionserver.MutableSegment-">pushHead</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> segment)</code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">CompactingMemStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#shouldFlushInMemory-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">shouldFlushInMemory</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currActive,
+ <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cellToAdd,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
</tbody>
</table>
</li>
[39/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html b/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html
index 167a2dc..ecfc2bc 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html
@@ -254,7 +254,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" tit
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addRegion-org.apache.hadoop.hbase.regionserver.HRegion-">addRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addToMovedRegions-java.lang.String-org.apache.hadoop.hbase.ServerName-long-">addToMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#checkFileSystem--">checkFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cleanMovedRegions--">cleanMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clearRegionBlockCache-org.apache.hadoop.hbase.regionserver.Region-">clearRegionBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAllRegions-boolean-">closeAllRegions</a
>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAndOfflineRegionForSplitOrMerge-java.util.List-">closeAndOfflineRegionForSplitOrMerge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeRegion-java.lang.String-boolean-org.apache.hadoop.hbase.ServerName-">closeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#constructRegionServer-java.lang.Class-org.apache.hadoop.conf.Configuration-">constructRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#convertThrowableToIOE-java.lang.Throwable-java.lang.String-">convertThrowableToIOE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createClusterConnection--">createClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createConnection-org.apache.hadoop.conf.Configuration-">createConnection</a>, <
a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionLoad-java.lang.String-">createRegionLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub--">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub-boolean-">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#execRegionServerService-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest-">execRegionServerService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executeProcedure-long-org.apache.hadoop.hbase.procedure2.RSProcedureCallable-">executeProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCacheConfig
--">getCacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getChoreService--">getChoreService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterConnection--">getClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterId--">getClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionPressure--">getCompactionPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionRequestor--">getCompactionRequestor</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactSplitThread--">getCompactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfig
urationManager--">getConfigurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConnection--">getConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCoordinatedStateManager--">getCoordinatedStateManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getEventLoopGroupConfig--">getEventLoopGroupConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getExecutorService--">getExecutorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFavoredNodesForRegion-java.lang.String-">getFavoredNodesForRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFileSystem--">getFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushPressure--">getFlushPressure</a>, <a href="../../../../../org/apache/had
oop/hbase/regionserver/HRegionServer.html#getFlushRequester--">getFlushRequester</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushThroughputController--">getFlushThroughputController</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFsTableDescriptors--">getFsTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getHeapMemoryManager--">getHeapMemoryManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getInfoServer--">getInfoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLastSequenceId-byte:A-">getLastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLeases--">getLeases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMasterAddressTracker--">getMasterAddressTracker</a>, <a href="../.
./../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetaTableLocator--">getMetaTableLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMostLoadedRegions--">getMostLoadedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNonceManager--">getNonceManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNumberOfOnlineRegions--">getNumberOfOnlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegion-byte:A-">getOnlineRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegionsLocalContext--">getOnlineRegionsLocalContext</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineTables--">getOnlineTabl
es</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-byte:A-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-java.lang.String-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionBlockLocations-java.lang.String-">getRegionBlockLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-byte:A-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions--">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions-org.apache.hadoop.hbase.TableName-">getRegions</a>, <a href="../../../../../org/apache/hado
op/hbase/regionserver/HRegionServer.html#getRegionServerAccounting--">getRegionServerAccounting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessorHost--">getRegionServerCoprocessorHost</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessors--">getRegionServerCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerMetrics--">getRegionServerMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerSpaceQuotaManager--">getRegionServerSpaceQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionsInTransitionInRS--">getRegionsInTransitionInRS</a>, <a href="../../../../.
./org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSinkService--">getReplicationSinkService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSourceService--">getReplicationSourceService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRootDir--">getRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRpcServer--">getRpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRSRpcServices--">getRSRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getSecureBulkLoadManager--">getSecureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getStartcode--">getStartcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getThreadWakeFrequency--">getThreadWakeFrequency</a>, <a
href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWAL-org.apache.hadoop.hbase.client.RegionInfo-">getWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALFileSystem--">getWALFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalRoller--">getWalRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALRootDir--">getWALRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALs--">getWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">handleReportForDutyResponse</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeMemStoreChunkCreator--">initializeMemStoreChunkCreator</a>, <a hr
ef="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isAborted--">isAborted</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isClusterUp--">isClusterUp</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isOnline--">isOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isShutDown--">isShutDown</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopped--">isStopped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopping--">isStopping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#kill--">kill</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegionCleanerPeriod--">movedRegionCleanerPeriod</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onConfigurationChange-org.apache
.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionLock-java.util.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#remoteProcedureComplete-long-java.lang.Throwable-">remoteProcedureComplete</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeRegion-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.ServerName-">removeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportFileArchivalForQuotas-org.apache.hadoop.hbase.TableName-java.util.Collection-">reportFileArchivalForQuotas</a>, <a href=
"../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionSizesForQuotas-org.apache.hadoop.hbase.quotas.RegionSizeStore-">reportRegionSizesForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">sendShutdownInterrupt</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupClusterConnection--">setupClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-boolean-org.apache.hadoop.hbase.security.User-">stop</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/regions
erver/HRegionServer.html#tryRegionServerReport-long-long-">tryRegionServerReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#unassign-byte:A-">unassign</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateConfiguration--">updateConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateRegionFavoredNodesMapping-java.lang.String-java.util.List-">updateRegionFavoredNodesMapping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForServerOnline--">waitForServerOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRollRequestFinished--">walRollRequestFinished</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addRegion-org.apache.hadoop.hbase.regionserver.HRegion-">addRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addToMovedRegions-java.lang.String-org.apache.hadoop.hbase.ServerName-long-">addToMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#checkFileSystem--">checkFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cleanMovedRegions--">cleanMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clearRegionBlockCache-org.apache.hadoop.hbase.regionserver.Region-">clearRegionBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAllRegions-boolean-">closeAllRegions</a
>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAndOfflineRegionForSplitOrMerge-java.util.List-">closeAndOfflineRegionForSplitOrMerge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeRegion-java.lang.String-boolean-org.apache.hadoop.hbase.ServerName-">closeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#constructRegionServer-java.lang.Class-org.apache.hadoop.conf.Configuration-">constructRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#convertThrowableToIOE-java.lang.Throwable-java.lang.String-">convertThrowableToIOE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createClusterConnection--">createClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createConnection-org.apache.hadoop.conf.Configuration-">createConnection</a>, <
a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionLoad-java.lang.String-">createRegionLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub--">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub-boolean-">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#execRegionServerService-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest-">execRegionServerService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executeProcedure-long-org.apache.hadoop.hbase.procedure2.RSProcedureCallable-">executeProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCacheConfig
--">getCacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getChoreService--">getChoreService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterConnection--">getClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterId--">getClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionPressure--">getCompactionPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionRequestor--">getCompactionRequestor</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactSplitThread--">getCompactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfig
urationManager--">getConfigurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConnection--">getConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCoordinatedStateManager--">getCoordinatedStateManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getEventLoopGroupConfig--">getEventLoopGroupConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getExecutorService--">getExecutorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFavoredNodesForRegion-java.lang.String-">getFavoredNodesForRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFileSystem--">getFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushPressure--">getFlushPressure</a>, <a href="../../../../../org/apache/had
oop/hbase/regionserver/HRegionServer.html#getFlushRequester--">getFlushRequester</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushThroughputController--">getFlushThroughputController</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFsTableDescriptors--">getFsTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getHeapMemoryManager--">getHeapMemoryManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getInfoServer--">getInfoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLastSequenceId-byte:A-">getLastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLeases--">getLeases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMasterAddressTracker--">getMasterAddressTracker</a>, <a href="../.
./../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetaTableLocator--">getMetaTableLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMostLoadedRegions--">getMostLoadedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNonceManager--">getNonceManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNumberOfOnlineRegions--">getNumberOfOnlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegion-byte:A-">getOnlineRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegionsLocalContext--">getOnlineRegionsLocalContext</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineTables--">getOnlineTabl
es</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-byte:A-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-java.lang.String-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionBlockLocations-java.lang.String-">getRegionBlockLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-byte:A-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions--">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions-org.apache.hadoop.hbase.TableName-">getRegions</a>, <a href="../../../../../org/apache/hado
op/hbase/regionserver/HRegionServer.html#getRegionServerAccounting--">getRegionServerAccounting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessorHost--">getRegionServerCoprocessorHost</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessors--">getRegionServerCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerMetrics--">getRegionServerMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerSpaceQuotaManager--">getRegionServerSpaceQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionsInTransitionInRS--">getRegionsInTransitionInRS</a>, <a href="../../../../.
./org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSinkService--">getReplicationSinkService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSourceService--">getReplicationSourceService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRootDir--">getRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRpcServer--">getRpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRSRpcServices--">getRSRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getSecureBulkLoadManager--">getSecureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getStartcode--">getStartcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getThreadWakeFrequency--">getThreadWakeFrequency</a>, <a
href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWAL-org.apache.hadoop.hbase.client.RegionInfo-">getWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALFileSystem--">getWALFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalGroupsReplicationStatus--">getWalGroupsReplicationStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalRoller--">getWalRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALRootDir--">getWALRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALs--">getWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">handleReportForDutyResponse</a>, <a href
="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeMemStoreChunkCreator--">initializeMemStoreChunkCreator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isAborted--">isAborted</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isClusterUp--">isClusterUp</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isOnline--">isOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isShutDown--">isShutDown</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopped--">isStopped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopping--">isStopping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#kill--">kill</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegionCleanerPeri
od--">movedRegionCleanerPeriod</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionLock-java.util.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#remoteProcedureComplete-long-java.lang.Throwable-">remoteProcedureComplete</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeRegion-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.ServerName-">removeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserv
er/HRegionServer.html#reportFileArchivalForQuotas-org.apache.hadoop.hbase.TableName-java.util.Collection-">reportFileArchivalForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionSizesForQuotas-org.apache.hadoop.hbase.quotas.RegionSizeStore-">reportRegionSizesForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">sendShutdownInterrupt</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupClusterConnection--">setupClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-boolean-org.apache.hadoop.hbase.security.User-">stop</a>, <a href="../.
./../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tryRegionServerReport-long-long-">tryRegionServerReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#unassign-byte:A-">unassign</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateConfiguration--">updateConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateRegionFavoredNodesMapping-java.lang.String-java.util.List-">updateRegionFavoredNodesMapping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForServerOnline--">waitForServerOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRollRequestFinished--">walRollRequestFinished</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.HasThread">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html
index d01bd8b..1bdbdd0 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html
@@ -433,7 +433,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>executeFromState</h4>
-<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.74">executeFromState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a> env,
+<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.76">executeFromState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a> env,
org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MoveRegionState state)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">StateMachineProcedure</a></code></span></div>
@@ -456,7 +456,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>rollbackState</h4>
-<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.109">rollbackState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a> env,
+<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.111">rollbackState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a> env,
org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MoveRegionState state)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollbackState-TEnvironment-TState-">StateMachineProcedure</a></code></span></div>
@@ -476,7 +476,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>abort</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.115">abort</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a> env)</pre>
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.117">abort</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a> env)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">Procedure</a></code></span></div>
<div class="block">The abort() call is asynchronous and each procedure must decide how to deal
with it, if they want to be abortable. The simplest implementation
@@ -499,7 +499,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>toStringClassDetails</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.120">toStringClassDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a> sb)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.122">toStringClassDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a> sb)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">Procedure</a></code></span></div>
<div class="block">Extend the toString() information with the procedure details
e.g. className and parameters</div>
@@ -517,7 +517,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>getInitialState</h4>
-<pre>protected org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MoveRegionState <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.127">getInitialState</a>()</pre>
+<pre>protected org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MoveRegionState <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.129">getInitialState</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">StateMachineProcedure</a></code></span></div>
<div class="block">Return the initial state object that will be used for the first call to executeFromState().</div>
<dl>
@@ -534,7 +534,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>getStateId</h4>
-<pre>protected int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.132">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MoveRegionState state)</pre>
+<pre>protected int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.134">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MoveRegionState state)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">StateMachineProcedure</a></code></span></div>
<div class="block">Convert the Enum (or more descriptive) state object to an ordinal (or state id).</div>
<dl>
@@ -553,7 +553,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>getState</h4>
-<pre>protected org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MoveRegionState <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.137">getState</a>(int stateId)</pre>
+<pre>protected org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MoveRegionState <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.139">getState</a>(int stateId)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">StateMachineProcedure</a></code></span></div>
<div class="block">Convert an ordinal (or state id) to an Enum (or more descriptive) state object.</div>
<dl>
@@ -572,7 +572,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>getTableName</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.142">getTableName</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.144">getTableName</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableName--">getTableName</a></code> in interface <code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html" title="interface in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface</a></code></dd>
@@ -589,7 +589,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>getTableOperationType</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.147">getTableOperationType</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.149">getTableOperationType</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableOperationType--">TableProcedureInterface</a></code></span></div>
<div class="block">Given an operation type we can take decisions about what to do with pending operations.
e.g. if we get a delete and we have some table operation pending (e.g. add column)
@@ -610,7 +610,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>serializeStateData</h4>
-<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.152">serializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a> serializer)
+<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.154">serializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a> serializer)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
<div class="block">The user-level code of the procedure may have some state to
@@ -632,7 +632,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockListLast">
<li class="blockList">
<h4>deserializeStateData</h4>
-<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.167">deserializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a> serializer)
+<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html#line.169">deserializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a> serializer)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
<div class="block">Called on store load to allow the user to decode the previously serialized
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
index 1799704..abd92a9 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
@@ -198,8 +198,8 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.Action.Type.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.Action.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.Action.Type.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.Action.Type</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
index 75dcd36..200b80e 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -349,9 +349,9 @@
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
</ul>
</li>
[21/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html
new file mode 100644
index 0000000..516307c
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html
@@ -0,0 +1,507 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ReplicationStatus.ReplicationStatusBuilder (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="ReplicationStatus.ReplicationStatusBuilder (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReplicationStatus.ReplicationStatusBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatus.ReplicationStatusBuilder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.replication.regionserver</div>
+<h2 title="Class ReplicationStatus.ReplicationStatusBuilder" class="title">Class ReplicationStatus.ReplicationStatusBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus.ReplicationStatusBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.81">ReplicationStatus.ReplicationStatusBuilder</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#ageOfLastShippedOp">ageOfLastShippedOp</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private org.apache.hadoop.fs.Path</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#currentPath">currentPath</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#currentPosition">currentPosition</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#fileSize">fileSize</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#peerId">peerId</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#queueSize">queueSize</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#replicationDelay">replicationDelay</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#walGroup">walGroup</a></span></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#ReplicationStatusBuilder--">ReplicationStatusBuilder</a></span>()</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#build--">build</a></span>()</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withAgeOfLastShippedOp-long-">withAgeOfLastShippedOp</a></span>(long ageOfLastShippedOp)</code> </td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withCurrentPath-org.apache.hadoop.fs.Path-">withCurrentPath</a></span>(org.apache.hadoop.fs.Path currentPath)</code> </td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withCurrentPosition-long-">withCurrentPosition</a></span>(long currentPosition)</code> </td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withFileSize-long-">withFileSize</a></span>(long fileSize)</code> </td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withPeerId-java.lang.String-">withPeerId</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> peerId)</code> </td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withQueueSize-int-">withQueueSize</a></span>(int queueSize)</code> </td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withReplicationDelay-long-">withReplicationDelay</a></span>(long replicationDelay)</code> </td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withWalGroup-java.lang.String-">withWalGroup</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroup)</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="peerId">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>peerId</h4>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.82">peerId</a></pre>
+</li>
+</ul>
+<a name="walGroup">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>walGroup</h4>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.83">walGroup</a></pre>
+</li>
+</ul>
+<a name="currentPath">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>currentPath</h4>
+<pre>private org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.84">currentPath</a></pre>
+</li>
+</ul>
+<a name="queueSize">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>queueSize</h4>
+<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.85">queueSize</a></pre>
+</li>
+</ul>
+<a name="ageOfLastShippedOp">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ageOfLastShippedOp</h4>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.86">ageOfLastShippedOp</a></pre>
+</li>
+</ul>
+<a name="replicationDelay">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>replicationDelay</h4>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.87">replicationDelay</a></pre>
+</li>
+</ul>
+<a name="currentPosition">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>currentPosition</h4>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.88">currentPosition</a></pre>
+</li>
+</ul>
+<a name="fileSize">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>fileSize</h4>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.89">fileSize</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ReplicationStatusBuilder--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReplicationStatusBuilder</h4>
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.81">ReplicationStatusBuilder</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="withPeerId-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withPeerId</h4>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.91">withPeerId</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> peerId)</pre>
+</li>
+</ul>
+<a name="withFileSize-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withFileSize</h4>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.96">withFileSize</a>(long fileSize)</pre>
+</li>
+</ul>
+<a name="withWalGroup-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withWalGroup</h4>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.101">withWalGroup</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroup)</pre>
+</li>
+</ul>
+<a name="withCurrentPath-org.apache.hadoop.fs.Path-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withCurrentPath</h4>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.106">withCurrentPath</a>(org.apache.hadoop.fs.Path currentPath)</pre>
+</li>
+</ul>
+<a name="withQueueSize-int-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withQueueSize</h4>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.111">withQueueSize</a>(int queueSize)</pre>
+</li>
+</ul>
+<a name="withAgeOfLastShippedOp-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withAgeOfLastShippedOp</h4>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.116">withAgeOfLastShippedOp</a>(long ageOfLastShippedOp)</pre>
+</li>
+</ul>
+<a name="withReplicationDelay-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withReplicationDelay</h4>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.121">withReplicationDelay</a>(long replicationDelay)</pre>
+</li>
+</ul>
+<a name="withCurrentPosition-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withCurrentPosition</h4>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.126">withCurrentPosition</a>(long currentPosition)</pre>
+</li>
+</ul>
+<a name="build--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#line.131">build</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReplicationStatus.ReplicationStatusBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatus.ReplicationStatusBuilder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html
new file mode 100644
index 0000000..544401d
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html
@@ -0,0 +1,525 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ReplicationStatus (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="ReplicationStatus (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReplicationStatus.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatus.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested.class.summary">Nested</a> | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.replication.regionserver</div>
+<h2 title="Class ReplicationStatus" class="title">Class ReplicationStatus</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>@InterfaceAudience.Private
+public final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.24">ReplicationStatus</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!-- -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></span></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#ageOfLastShippedOp">ageOfLastShippedOp</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private org.apache.hadoop.fs.Path</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#currentPath">currentPath</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#currentPosition">currentPosition</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#fileSize">fileSize</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#peerId">peerId</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#queueSize">queueSize</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#replicationDelay">replicationDelay</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#walGroup">walGroup</a></span></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colLast" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#ReplicationStatus-org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus.ReplicationStatusBuilder-">ReplicationStatus</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a> builder)</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getAgeOfLastShippedOp--">getAgeOfLastShippedOp</a></span>()</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.hadoop.fs.Path</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getCurrentPath--">getCurrentPath</a></span>()</code> </td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getCurrentPosition--">getCurrentPosition</a></span>()</code> </td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getFileSize--">getFileSize</a></span>()</code> </td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getPeerId--">getPeerId</a></span>()</code> </td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getQueueSize--">getQueueSize</a></span>()</code> </td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getReplicationDelay--">getReplicationDelay</a></span>()</code> </td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#getWalGroup--">getWalGroup</a></span>()</code> </td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#newBuilder--">newBuilder</a></span>()</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="peerId">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>peerId</h4>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.25">peerId</a></pre>
+</li>
+</ul>
+<a name="walGroup">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>walGroup</h4>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.26">walGroup</a></pre>
+</li>
+</ul>
+<a name="currentPath">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>currentPath</h4>
+<pre>private final org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.27">currentPath</a></pre>
+</li>
+</ul>
+<a name="queueSize">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>queueSize</h4>
+<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.28">queueSize</a></pre>
+</li>
+</ul>
+<a name="ageOfLastShippedOp">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ageOfLastShippedOp</h4>
+<pre>private final long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.29">ageOfLastShippedOp</a></pre>
+</li>
+</ul>
+<a name="replicationDelay">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>replicationDelay</h4>
+<pre>private final long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.30">replicationDelay</a></pre>
+</li>
+</ul>
+<a name="currentPosition">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>currentPosition</h4>
+<pre>private final long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.31">currentPosition</a></pre>
+</li>
+</ul>
+<a name="fileSize">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>fileSize</h4>
+<pre>private final long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.32">fileSize</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ReplicationStatus-org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus.ReplicationStatusBuilder-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReplicationStatus</h4>
+<pre>private <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.34">ReplicationStatus</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a> builder)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getCurrentPosition--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCurrentPosition</h4>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.45">getCurrentPosition</a>()</pre>
+</li>
+</ul>
+<a name="getFileSize--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFileSize</h4>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.49">getFileSize</a>()</pre>
+</li>
+</ul>
+<a name="getPeerId--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPeerId</h4>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.53">getPeerId</a>()</pre>
+</li>
+</ul>
+<a name="getWalGroup--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWalGroup</h4>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.57">getWalGroup</a>()</pre>
+</li>
+</ul>
+<a name="getQueueSize--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getQueueSize</h4>
+<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.61">getQueueSize</a>()</pre>
+</li>
+</ul>
+<a name="getAgeOfLastShippedOp--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAgeOfLastShippedOp</h4>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.65">getAgeOfLastShippedOp</a>()</pre>
+</li>
+</ul>
+<a name="getReplicationDelay--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReplicationDelay</h4>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.69">getReplicationDelay</a>()</pre>
+</li>
+</ul>
+<a name="getCurrentPath--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCurrentPath</h4>
+<pre>public org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.73">getCurrentPath</a>()</pre>
+</li>
+</ul>
+<a name="newBuilder--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>newBuilder</h4>
+<pre>public static <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#line.77">newBuilder</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReplicationStatus.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatus.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested.class.summary">Nested</a> | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html
index aeac4df..95324b5 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.DummyServer.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
@@ -346,7 +346,7 @@ implements org.apache.hadoop.util.Tool</pre>
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.DummyServer.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html
index a528274..20bee94 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html
@@ -227,7 +227,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/regionser
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceWALReader</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#addEntryToBatch-org.apache.hadoop.hbase.replication.regionserver.WALEntryBatch-org.apache.hadoop.hbase.wal.WAL.Entry-">addEntryToBatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#createBatch-org.apache.hadoop.hbase.replication.regionserver.WALEntryStream-">createBatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#filterEntry-org.apache.hadoop.hbase.wal.WAL.Entry-">filterEntry</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#getCurrentPath--">getCurrentPath</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#getEntrySizeExcludeBulkLoad-org.apache.hadoop.hbase.wal.WAL.Entry-">getEntrySizeExcludeBulkLoad</a>, <a href=
"../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#isReaderRunning--">isReaderRunning</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#run--">run</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#setReaderRunning-boolean-">setReaderRunning</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#switched-org.apache.hadoop.hbase.replication.regionserver.WALEntryStream-org.apache.hadoop.fs.Path-">switched</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#take--">take</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#addEntryToBatch-org.apache.hadoop.hbase.replication.regionserver.WALEntryBatch-org.apache.hadoop.hbase.wal.WAL.Entry-">addEntryToBatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#createBatch-org.apache.hadoop.hbase.replication.regionserver.WALEntryStream-">createBatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#filterEntry-org.apache.hadoop.hbase.wal.WAL.Entry-">filterEntry</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#getCurrentPath--">getCurrentPath</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#getEntrySizeExcludeBulkLoad-org.apache.hadoop.hbase.wal.WAL.Entry-">getEntrySizeExcludeBulkLoad</a>, <a href=
"../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#isReaderRunning--">isReaderRunning</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#poll-long-">poll</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#run--">run</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#setReaderRunning-boolean-">setReaderRunning</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#switched-org.apache.hadoop.hbase.replication.regionserver.WALEntryStream-org.apache.hadoop.fs.Path-">switched</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#take--">take</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Thread">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationSourceManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationSourceManager.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationSourceManager.html
index 5ad8882..18f002a 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationSourceManager.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationSourceManager.html
@@ -83,6 +83,10 @@
</tr>
<tbody>
<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.replication.regionserver">org.apache.hadoop.hbase.replication.regionserver</a></td>
<td class="colLast"> </td>
</tr>
@@ -91,6 +95,26 @@
</li>
<li class="blockList">
<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.regionserver">
+<!-- -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a> in <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> that return <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationSourceService.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html#getReplicationManager--">getReplicationManager</a></span>()</code>
+<div class="block">Returns the replication manager</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
<li class="blockList"><a name="org.apache.hadoop.hbase.replication.regionserver">
<!-- -->
</a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.ReplicationStatusBuilder.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.ReplicationStatusBuilder.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.ReplicationStatusBuilder.html
new file mode 100644
index 0000000..48e2d18
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.ReplicationStatusBuilder.html
@@ -0,0 +1,208 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus.ReplicationStatusBuilder (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus.ReplicationStatusBuilder (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.ReplicationStatusBuilder.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatus.ReplicationStatusBuilder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus.ReplicationStatusBuilder" class="title">Uses of Class<br>org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus.ReplicationStatusBuilder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.replication.regionserver">org.apache.hadoop.hbase.replication.regionserver</a></td>
+<td class="colLast"> </td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.replication.regionserver">
+<!-- -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a> in <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/package-summary.html">org.apache.hadoop.hbase.replication.regionserver</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/package-summary.html">org.apache.hadoop.hbase.replication.regionserver</a> that return <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatus.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#newBuilder--">newBuilder</a></span>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatus.ReplicationStatusBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withAgeOfLastShippedOp-long-">withAgeOfLastShippedOp</a></span>(long ageOfLastShippedOp)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatus.ReplicationStatusBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withCurrentPath-org.apache.hadoop.fs.Path-">withCurrentPath</a></span>(org.apache.hadoop.fs.Path currentPath)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatus.ReplicationStatusBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withCurrentPosition-long-">withCurrentPosition</a></span>(long currentPosition)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatus.ReplicationStatusBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withFileSize-long-">withFileSize</a></span>(long fileSize)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatus.ReplicationStatusBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withPeerId-java.lang.String-">withPeerId</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> peerId)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatus.ReplicationStatusBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withQueueSize-int-">withQueueSize</a></span>(int queueSize)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatus.ReplicationStatusBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withReplicationDelay-long-">withReplicationDelay</a></span>(long replicationDelay)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatus.ReplicationStatusBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html#withWalGroup-java.lang.String-">withWalGroup</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroup)</code> </td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/package-summary.html">org.apache.hadoop.hbase.replication.regionserver</a> with parameters of type <a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html#ReplicationStatus-org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus.ReplicationStatusBuilder-">ReplicationStatus</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus.ReplicationStatusBuilder</a> builder)</code> </td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/replication/regionserver/class-use/ReplicationStatus.ReplicationStatusBuilder.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatus.ReplicationStatusBuilder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
[41/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html
index 568bd54..8a0b072 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.901">BucketCache.WriterThread</a>
+<pre>class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.894">BucketCache.WriterThread</a>
extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.html" title="class in org.apache.hadoop.hbase.util">HasThread</a></pre>
</li>
</ul>
@@ -193,6 +193,13 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.htm
</td>
</tr>
<tr id="i2" class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#putIntoBackingMap-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.BucketEntry-">putIntoBackingMap</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> key,
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a> bucketEntry)</code>
+<div class="block">Put the new bucket entry into backingMap.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#run--">run</a></span>()</code> </td>
</tr>
@@ -231,7 +238,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.htm
<ul class="blockList">
<li class="blockList">
<h4>inputQueue</h4>
-<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.902">inputQueue</a></pre>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.895">inputQueue</a></pre>
</li>
</ul>
<a name="writerEnabled">
@@ -240,7 +247,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.htm
<ul class="blockListLast">
<li class="blockList">
<h4>writerEnabled</h4>
-<pre>private volatile boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.903">writerEnabled</a></pre>
+<pre>private volatile boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.896">writerEnabled</a></pre>
</li>
</ul>
</li>
@@ -257,7 +264,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.htm
<ul class="blockListLast">
<li class="blockList">
<h4>WriterThread</h4>
-<pre><a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.905">WriterThread</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>> queue)</pre>
+<pre><a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.898">WriterThread</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>> queue)</pre>
</li>
</ul>
</li>
@@ -274,7 +281,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.htm
<ul class="blockList">
<li class="blockList">
<h4>disableWriter</h4>
-<pre>void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.912">disableWriter</a>()</pre>
+<pre>void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.905">disableWriter</a>()</pre>
</li>
</ul>
<a name="run--">
@@ -283,7 +290,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.htm
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
-<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.917">run</a>()</pre>
+<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.910">run</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code> in interface <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -292,13 +299,37 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.htm
</dl>
</li>
</ul>
+<a name="putIntoBackingMap-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.BucketEntry-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putIntoBackingMap</h4>
+<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.944">putIntoBackingMap</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> key,
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a> bucketEntry)</pre>
+<div class="block">Put the new bucket entry into backingMap. Notice that we are allowed to replace the existing
+ cache with a new block for the same cache key. there's a corner case: one thread cache a
+ block in ramCache, copy to io-engine and add a bucket entry to backingMap. Caching another
+ new block with the same cache key do the same thing for the same cache key, so if not evict
+ the previous bucket entry, then memory leak happen because the previous bucketEntry is gone
+ but the bucketAllocator do not free its memory.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - Block cache key</dd>
+<dd><code>bucketEntry</code> - Bucket entry to put into backingMap.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#shouldReplaceExistingCacheBlock-org.apache.hadoop.hbase.io.hfile.BlockCache-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-"><code>BlockCacheUtil.shouldReplaceExistingCacheBlock(BlockCache blockCache,BlockCacheKey
+ cacheKey, Cacheable newBlock)</code></a></dd>
+</dl>
+</li>
+</ul>
<a name="doDrain-java.util.List-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>doDrain</h4>
-<pre>void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.948">doDrain</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>> entries)
+<pre>void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.966">doDrain</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>> entries)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<div class="block">Flush the entries in ramCache to IOEngine and add bucket entry to backingMap.
Process all that are passed in even if failure being sure to remove from ramCache else we'll
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html
index 11df7d7..dccbeab 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":9,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":9,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -509,7 +509,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
</td>
</tr>
<tr id="i5" class="rowColor">
-<td class="colFirst"><code>void</code></td>
+<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#cacheBlockWithWait-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-boolean-boolean-">cacheBlockWithWait</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> cachedItem,
boolean inMemory,
@@ -519,42 +519,49 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#cacheBlockWithWaitInternal-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-boolean-boolean-">cacheBlockWithWaitInternal</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> cachedItem,
+ boolean inMemory,
+ boolean wait)</code> </td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#checkIOErrorIsTolerated--">checkIOErrorIsTolerated</a></span>()</code>
<div class="block">Check whether we tolerate IO error this time.</div>
</td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#checkRamCache-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">checkRamCache</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</code> </td>
</tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#disableCache--">disableCache</a></span>()</code>
<div class="block">Used to shut down the cache -or- turn it off in the case of something broken.</div>
</td>
</tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#evictBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">evictBlock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</code>
<div class="block">Evict block from cache.</div>
</td>
</tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#evictBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-boolean-">evictBlock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
boolean deletedBlock)</code> </td>
</tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#evictBlocksByHfileName-java.lang.String-">evictBlocksByHfileName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> hfileName)</code>
<div class="block">Evicts all blocks for a specific HFile.</div>
</td>
</tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#forceEvict-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">forceEvict</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</code> </td>
</tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#freeEntireBuckets-int-">freeEntireBuckets</a></span>(int completelyFreeBucketsNeeded)</code>
<div class="block">This method will find the buckets that are minimally occupied
@@ -564,22 +571,22 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
passed, sometimes it might not due to changing refCounts</div>
</td>
</tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#freeSpace-java.lang.String-">freeSpace</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> why)</code>
<div class="block">Free the space if the used size reaches acceptableSize() or one size block
couldn't be allocated.</div>
</td>
</tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
<td class="colFirst"><code>(package private) float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getAcceptableFactor--">getAcceptableFactor</a></span>()</code> </td>
</tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getAllocator--">getAllocator</a></span>()</code> </td>
</tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-boolean-boolean-boolean-">getBlock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> key,
boolean caching,
@@ -588,49 +595,49 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<div class="block">Get the buffer of the block with the specified key.</div>
</td>
</tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getBlockCaches--">getBlockCaches</a></span>()</code> </td>
</tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getBlockCount--">getBlockCount</a></span>()</code>
<div class="block">Returns the number of blocks currently cached in the block cache.</div>
</td>
</tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getCurrentDataSize--">getCurrentDataSize</a></span>()</code>
<div class="block">Returns the occupied size of data blocks, in bytes.</div>
</td>
</tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getCurrentSize--">getCurrentSize</a></span>()</code>
<div class="block">Returns the occupied size of the block cache, in bytes.</div>
</td>
</tr>
-<tr id="i22" class="altColor">
+<tr id="i23" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getDataBlockCount--">getDataBlockCount</a></span>()</code>
<div class="block">Returns the number of data blocks currently cached in the block cache.</div>
</td>
</tr>
-<tr id="i23" class="rowColor">
+<tr id="i24" class="altColor">
<td class="colFirst"><code>(package private) float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getExtraFreeFactor--">getExtraFreeFactor</a></span>()</code> </td>
</tr>
-<tr id="i24" class="altColor">
+<tr id="i25" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getFreeSize--">getFreeSize</a></span>()</code>
<div class="block">Returns the free size of the block cache, in bytes.</div>
</td>
</tr>
-<tr id="i25" class="rowColor">
+<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getIoEngine--">getIoEngine</a></span>()</code> </td>
</tr>
-<tr id="i26" class="altColor">
+<tr id="i27" class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/IOEngine.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">IOEngine</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getIOEngineFromName-java.lang.String-long-java.lang.String-">getIOEngineFromName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ioEngineName,
long capacity,
@@ -638,29 +645,29 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<div class="block">Get the IOEngine from the IO engine name</div>
</td>
</tr>
-<tr id="i27" class="rowColor">
+<tr id="i28" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getMaxSize--">getMaxSize</a></span>()</code>
<div class="block">Returns the Max size of the block cache, in bytes.</div>
</td>
</tr>
-<tr id="i28" class="altColor">
+<tr id="i29" class="rowColor">
<td class="colFirst"><code>(package private) float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getMemoryFactor--">getMemoryFactor</a></span>()</code> </td>
</tr>
-<tr id="i29" class="rowColor">
+<tr id="i30" class="altColor">
<td class="colFirst"><code>(package private) float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getMinFactor--">getMinFactor</a></span>()</code> </td>
</tr>
-<tr id="i30" class="altColor">
+<tr id="i31" class="rowColor">
<td class="colFirst"><code>(package private) float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getMultiFactor--">getMultiFactor</a></span>()</code> </td>
</tr>
-<tr id="i31" class="rowColor">
+<tr id="i32" class="altColor">
<td class="colFirst"><code>(package private) long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getPartitionSize-float-">getPartitionSize</a></span>(float partitionFactor)</code> </td>
</tr>
-<tr id="i32" class="altColor">
+<tr id="i33" class="rowColor">
<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getRAMQueueEntries-java.util.concurrent.BlockingQueue-java.util.List-">getRAMQueueEntries</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>> q,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>> receptacle)</code>
@@ -668,53 +675,53 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
before returning.</div>
</td>
</tr>
-<tr id="i33" class="rowColor">
+<tr id="i34" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getRealCacheSize--">getRealCacheSize</a></span>()</code> </td>
</tr>
-<tr id="i34" class="altColor">
+<tr id="i35" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getRefCount-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">getRefCount</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</code> </td>
</tr>
-<tr id="i35" class="rowColor">
+<tr id="i36" class="altColor">
<td class="colFirst"><code>(package private) float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getSingleFactor--">getSingleFactor</a></span>()</code> </td>
</tr>
-<tr id="i36" class="altColor">
+<tr id="i37" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getStats--">getStats</a></span>()</code>
<div class="block">Get the statistics for this block cache.</div>
</td>
</tr>
-<tr id="i37" class="rowColor">
+<tr id="i38" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#heapSize--">heapSize</a></span>()</code> </td>
</tr>
-<tr id="i38" class="altColor">
+<tr id="i39" class="rowColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#isCacheEnabled--">isCacheEnabled</a></span>()</code> </td>
</tr>
-<tr id="i39" class="rowColor">
+<tr id="i40" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#iterator--">iterator</a></span>()</code> </td>
</tr>
-<tr id="i40" class="altColor">
+<tr id="i41" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#join--">join</a></span>()</code> </td>
</tr>
-<tr id="i41" class="rowColor">
+<tr id="i42" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#logStats--">logStats</a></span>()</code> </td>
</tr>
-<tr id="i42" class="altColor">
+<tr id="i43" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#persistToFile--">persistToFile</a></span>()</code> </td>
</tr>
-<tr id="i43" class="rowColor">
+<tr id="i44" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#retrieveFromFile-int:A-">retrieveFromFile</a></span>(int[] bucketSizes)</code> </td>
</tr>
-<tr id="i44" class="altColor">
+<tr id="i45" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#returnBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-">returnBlock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> block)</code>
@@ -722,29 +729,29 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
is over.</div>
</td>
</tr>
-<tr id="i45" class="rowColor">
+<tr id="i46" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#sanityCheckConfigs--">sanityCheckConfigs</a></span>()</code> </td>
</tr>
-<tr id="i46" class="altColor">
+<tr id="i47" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#shutdown--">shutdown</a></span>()</code>
<div class="block">Shutdown the cache.</div>
</td>
</tr>
-<tr id="i47" class="rowColor">
+<tr id="i48" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#size--">size</a></span>()</code>
<div class="block">Returns the total size of the block cache, in bytes.</div>
</td>
</tr>
-<tr id="i48" class="altColor">
+<tr id="i49" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#startWriterThreads--">startWriterThreads</a></span>()</code>
<div class="block">Called by the constructor to start the writer threads.</div>
</td>
</tr>
-<tr id="i49" class="rowColor">
+<tr id="i50" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#stopWriterThreads--">stopWriterThreads</a></span>()</code>
<div class="block">Only used in test</div>
@@ -1503,10 +1510,10 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>cacheBlockWithWait</h4>
-<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.421">cacheBlockWithWait</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
- <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> cachedItem,
- boolean inMemory,
- boolean wait)</pre>
+<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.421">cacheBlockWithWait</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> cachedItem,
+ boolean inMemory,
+ boolean wait)</pre>
<div class="block">Cache the block to ramCache</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1517,13 +1524,25 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
</dl>
</li>
</ul>
+<a name="cacheBlockWithWaitInternal-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-boolean-boolean-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cacheBlockWithWaitInternal</h4>
+<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.434">cacheBlockWithWaitInternal</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> cachedItem,
+ boolean inMemory,
+ boolean wait)</pre>
+</li>
+</ul>
<a name="getBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-boolean-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBlock</h4>
-<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.491">getBlock</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> key,
+<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.484">getBlock</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> key,
boolean caching,
boolean repeat,
boolean updateCacheMetrics)</pre>
@@ -1547,7 +1566,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>blockEvicted</h4>
-<pre>void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.550">blockEvicted</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+<pre>void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.543">blockEvicted</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a> bucketEntry,
boolean decrementBlockNumber)</pre>
</li>
@@ -1558,7 +1577,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>evictBlock</h4>
-<pre>public boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.560">evictBlock</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</pre>
+<pre>public boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.553">evictBlock</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#evictBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">BlockCache</a></code></span></div>
<div class="block">Evict block from cache.</div>
<dl>
@@ -1577,7 +1596,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>forceEvict</h4>
-<pre>private boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.566">forceEvict</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</pre>
+<pre>private boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.559">forceEvict</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</pre>
</li>
</ul>
<a name="checkRamCache-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">
@@ -1586,7 +1605,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>checkRamCache</h4>
-<pre>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.595">checkRamCache</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</pre>
+<pre>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.588">checkRamCache</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</pre>
</li>
</ul>
<a name="evictBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-boolean-">
@@ -1595,7 +1614,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>evictBlock</h4>
-<pre>public boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.604">evictBlock</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+<pre>public boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.597">evictBlock</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
boolean deletedBlock)</pre>
</li>
</ul>
@@ -1605,7 +1624,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>logStats</h4>
-<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.669">logStats</a>()</pre>
+<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.662">logStats</a>()</pre>
</li>
</ul>
<a name="getRealCacheSize--">
@@ -1614,7 +1633,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getRealCacheSize</h4>
-<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.695">getRealCacheSize</a>()</pre>
+<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.688">getRealCacheSize</a>()</pre>
</li>
</ul>
<a name="acceptableSize--">
@@ -1623,7 +1642,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>acceptableSize</h4>
-<pre>private long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.699">acceptableSize</a>()</pre>
+<pre>private long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.692">acceptableSize</a>()</pre>
</li>
</ul>
<a name="getPartitionSize-float-">
@@ -1632,7 +1651,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getPartitionSize</h4>
-<pre>long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.704">getPartitionSize</a>(float partitionFactor)</pre>
+<pre>long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.697">getPartitionSize</a>(float partitionFactor)</pre>
</li>
</ul>
<a name="bucketSizesAboveThresholdCount-float-">
@@ -1641,7 +1660,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>bucketSizesAboveThresholdCount</h4>
-<pre>private int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.711">bucketSizesAboveThresholdCount</a>(float minFactor)</pre>
+<pre>private int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.704">bucketSizesAboveThresholdCount</a>(float minFactor)</pre>
<div class="block">Return the count of bucketSizeinfos still need free space</div>
</li>
</ul>
@@ -1651,7 +1670,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>freeEntireBuckets</h4>
-<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.733">freeEntireBuckets</a>(int completelyFreeBucketsNeeded)</pre>
+<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.726">freeEntireBuckets</a>(int completelyFreeBucketsNeeded)</pre>
<div class="block">This method will find the buckets that are minimally occupied
and are not reference counted and will free them completely
without any constraint on the access times of the elements,
@@ -1669,7 +1688,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>freeSpace</h4>
-<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.761">freeSpace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> why)</pre>
+<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.754">freeSpace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> why)</pre>
<div class="block">Free the space if the used size reaches acceptableSize() or one size block
couldn't be allocated. When freeing the space, we use the LRU algorithm and
ensure there must be some blocks evicted</div>
@@ -1685,7 +1704,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getRAMQueueEntries</h4>
-<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1057">getRAMQueueEntries</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>> q,
+<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1075">getRAMQueueEntries</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>> q,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>> receptacle)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<div class="block">Blocks until elements available in <code>q</code> then tries to grab as many as possible
@@ -1708,7 +1727,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>persistToFile</h4>
-<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1068">persistToFile</a>()
+<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1086">persistToFile</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -1722,7 +1741,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>retrieveFromFile</h4>
-<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1090">retrieveFromFile</a>(int[] bucketSizes)
+<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1108">retrieveFromFile</a>(int[] bucketSizes)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocatorException.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocatorException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></pre>
@@ -1740,7 +1759,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>checkIOErrorIsTolerated</h4>
-<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1142">checkIOErrorIsTolerated</a>()</pre>
+<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1160">checkIOErrorIsTolerated</a>()</pre>
<div class="block">Check whether we tolerate IO error this time. If the duration of IOEngine
throwing errors exceeds ioErrorsDurationTimeTolerated, we will disable the
cache</div>
@@ -1752,7 +1771,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>disableCache</h4>
-<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1158">disableCache</a>()</pre>
+<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1176">disableCache</a>()</pre>
<div class="block">Used to shut down the cache -or- turn it off in the case of something broken.</div>
</li>
</ul>
@@ -1762,7 +1781,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>join</h4>
-<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1171">join</a>()
+<pre>private void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1189">join</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -1776,7 +1795,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>shutdown</h4>
-<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1177">shutdown</a>()</pre>
+<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1195">shutdown</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#shutdown--">BlockCache</a></code></span></div>
<div class="block">Shutdown the cache.</div>
<dl>
@@ -1791,7 +1810,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getStats</h4>
-<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1194">getStats</a>()</pre>
+<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1212">getStats</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getStats--">BlockCache</a></code></span></div>
<div class="block">Get the statistics for this block cache.</div>
<dl>
@@ -1808,7 +1827,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getAllocator</h4>
-<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1198">getAllocator</a>()</pre>
+<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1216">getAllocator</a>()</pre>
</li>
</ul>
<a name="heapSize--">
@@ -1817,7 +1836,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>heapSize</h4>
-<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1203">heapSize</a>()</pre>
+<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1221">heapSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/io/HeapSize.html#heapSize--">heapSize</a></code> in interface <code><a href="../../../../../../../org/apache/hadoop/hbase/io/HeapSize.html" title="interface in org.apache.hadoop.hbase.io">HeapSize</a></code></dd>
@@ -1833,7 +1852,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
-<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1208">size</a>()</pre>
+<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1226">size</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#size--">BlockCache</a></code></span></div>
<div class="block">Returns the total size of the block cache, in bytes.</div>
<dl>
@@ -1850,7 +1869,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getCurrentDataSize</h4>
-<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1213">getCurrentDataSize</a>()</pre>
+<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1231">getCurrentDataSize</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getCurrentDataSize--">BlockCache</a></code></span></div>
<div class="block">Returns the occupied size of data blocks, in bytes.</div>
<dl>
@@ -1867,7 +1886,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getFreeSize</h4>
-<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1218">getFreeSize</a>()</pre>
+<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1236">getFreeSize</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getFreeSize--">BlockCache</a></code></span></div>
<div class="block">Returns the free size of the block cache, in bytes.</div>
<dl>
@@ -1884,7 +1903,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getBlockCount</h4>
-<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1223">getBlockCount</a>()</pre>
+<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1241">getBlockCount</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getBlockCount--">BlockCache</a></code></span></div>
<div class="block">Returns the number of blocks currently cached in the block cache.</div>
<dl>
@@ -1901,7 +1920,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getDataBlockCount</h4>
-<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1228">getDataBlockCount</a>()</pre>
+<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1246">getDataBlockCount</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getDataBlockCount--">BlockCache</a></code></span></div>
<div class="block">Returns the number of data blocks currently cached in the block cache.</div>
<dl>
@@ -1918,7 +1937,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getCurrentSize</h4>
-<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1233">getCurrentSize</a>()</pre>
+<pre>public long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1251">getCurrentSize</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getCurrentSize--">BlockCache</a></code></span></div>
<div class="block">Returns the occupied size of the block cache, in bytes.</div>
<dl>
@@ -1935,7 +1954,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>evictBlocksByHfileName</h4>
-<pre>public int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1245">evictBlocksByHfileName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> hfileName)</pre>
+<pre>public int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1263">evictBlocksByHfileName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> hfileName)</pre>
<div class="block">Evicts all blocks for a specific HFile.
<p>
This is used for evict-on-close to remove all blocks of a specific HFile.</div>
@@ -1953,7 +1972,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>stopWriterThreads</h4>
-<pre>void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1533">stopWriterThreads</a>()
+<pre>void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1551">stopWriterThreads</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<div class="block">Only used in test</div>
<dl>
@@ -1968,7 +1987,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>iterator</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1542">iterator</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1560">iterator</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#iterator--" title="class or interface in java.lang">iterator</a></code> in interface <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>></code></dd>
@@ -1985,7 +2004,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getBlockCaches</h4>
-<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[] <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1633">getBlockCaches</a>()</pre>
+<pre>public <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[] <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1651">getBlockCaches</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getBlockCaches--">getBlockCaches</a></code> in interface <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd>
@@ -2000,7 +2019,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>returnBlock</h4>
-<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1638">returnBlock</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+<pre>public void <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1656">returnBlock</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> block)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#returnBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-">BlockCache</a></code></span></div>
<div class="block">Called when the scanner using the block decides to return the block once its usage
@@ -2024,7 +2043,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getRefCount</h4>
-<pre>public int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1651">getRefCount</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</pre>
+<pre>public int <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1669">getRefCount</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</pre>
</li>
</ul>
<a name="getAcceptableFactor--">
@@ -2033,7 +2052,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getAcceptableFactor</h4>
-<pre>float <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1659">getAcceptableFactor</a>()</pre>
+<pre>float <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1677">getAcceptableFactor</a>()</pre>
</li>
</ul>
<a name="getMinFactor--">
@@ -2042,7 +2061,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getMinFactor</h4>
-<pre>float <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1663">getMinFactor</a>()</pre>
+<pre>float <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1681">getMinFactor</a>()</pre>
</li>
</ul>
<a name="getExtraFreeFactor--">
@@ -2051,7 +2070,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getExtraFreeFactor</h4>
-<pre>float <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1667">getExtraFreeFactor</a>()</pre>
+<pre>float <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1685">getExtraFreeFactor</a>()</pre>
</li>
</ul>
<a name="getSingleFactor--">
@@ -2060,7 +2079,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getSingleFactor</h4>
-<pre>float <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1671">getSingleFactor</a>()</pre>
+<pre>float <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1689">getSingleFactor</a>()</pre>
</li>
</ul>
<a name="getMultiFactor--">
@@ -2069,7 +2088,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockList">
<li class="blockList">
<h4>getMultiFactor</h4>
-<pre>float <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1675">getMultiFactor</a>()</pre>
+<pre>float <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1693">getMultiFactor</a>()</pre>
</li>
</ul>
<a name="getMemoryFactor--">
@@ -2078,7 +2097,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
<ul class="blockListLast">
<li class="blockList">
<h4>getMemoryFactor</h4>
-<pre>float <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1679">getMemoryFactor</a>()</pre>
+<pre>float <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1697">getMemoryFactor</a>()</pre>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/class-use/BucketCache.BucketEntry.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/class-use/BucketCache.BucketEntry.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/class-use/BucketCache.BucketEntry.html
index e145726..965cf37 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/class-use/BucketCache.BucketEntry.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/class-use/BucketCache.BucketEntry.html
@@ -182,6 +182,13 @@
<a href="../../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a> bucketEntry,
boolean decrementBlockNumber)</code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">BucketCache.WriterThread.</span><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#putIntoBackingMap-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.BucketEntry-">putIntoBackingMap</a></span>(<a href="../../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> key,
+ <a href="../../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a> bucketEntry)</code>
+<div class="block">Put the new bucket entry into backingMap.</div>
+</td>
+</tr>
</tbody>
</table>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCache.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCache.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCache.html
index 291e81b..35bd407 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCache.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCache.html
@@ -277,6 +277,15 @@
<td class="colLast"><span class="typeNameLabel">LruBlockCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#setVictimCache-org.apache.hadoop.hbase.io.hfile.BlockCache-">setVictimCache</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> handler)</code> </td>
</tr>
<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheUtil.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#shouldReplaceExistingCacheBlock-org.apache.hadoop.hbase.io.hfile.BlockCache-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-">shouldReplaceExistingCacheBlock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> blockCache,
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> newBlock)</code>
+<div class="block">Because of the region splitting, it's possible that the split key locate in the middle of a
+ block.</div>
+</td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><span class="typeNameLabel">BlockCacheUtil.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#toJSON-org.apache.hadoop.hbase.io.hfile.BlockCache-">toJSON</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> bc)</code> </td>
</tr>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheKey.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheKey.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheKey.html
index 8a6405b..13046bb 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheKey.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheKey.html
@@ -321,6 +321,15 @@
</td>
</tr>
<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheUtil.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#shouldReplaceExistingCacheBlock-org.apache.hadoop.hbase.io.hfile.BlockCache-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-">shouldReplaceExistingCacheBlock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> blockCache,
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> newBlock)</code>
+<div class="block">Because of the region splitting, it's possible that the split key locate in the middle of a
+ block.</div>
+</td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><span class="typeNameLabel">BlockCacheUtil.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#validateBlockAddition-org.apache.hadoop.hbase.io.hfile.Cacheable-org.apache.hadoop.hbase.io.hfile.Cacheable-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">validateBlockAddition</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> existing,
<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> newBlock,
@@ -452,7 +461,7 @@
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
+<td class="colFirst"><code>private void</code></td>
<td class="colLast"><span class="typeNameLabel">BucketCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#cacheBlockWithWait-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-boolean-boolean-">cacheBlockWithWait</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> cachedItem,
boolean inMemory,
@@ -461,23 +470,30 @@
</td>
</tr>
<tr class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">BucketCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#cacheBlockWithWaitInternal-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-boolean-boolean-">cacheBlockWithWaitInternal</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> cachedItem,
+ boolean inMemory,
+ boolean wait)</code> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a></code></td>
<td class="colLast"><span class="typeNameLabel">BucketCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#checkRamCache-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">checkRamCache</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">BucketCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#evictBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">evictBlock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><span class="typeNameLabel">BucketCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#evictBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-boolean-">evictBlock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
boolean deletedBlock)</code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><span class="typeNameLabel">BucketCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#forceEvict-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">forceEvict</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></td>
<td class="colLast"><span class="typeNameLabel">BucketCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-boolean-boolean-boolean-">getBlock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> key,
boolean caching,
@@ -486,10 +502,17 @@
<div class="block">Get the buffer of the block with the specified key.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="typeNameLabel">BucketCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#getRefCount-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">getRefCount</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">BucketCache.WriterThread.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#putIntoBackingMap-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.BucketEntry-">putIntoBackingMap</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> key,
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.BucketEntry</a> bucketEntry)</code>
+<div class="block">Put the new bucket entry into backingMap.</div>
+</td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="typeNameLabel">BucketCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#returnBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-">returnBlock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
[36/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html b/devapidocs/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html
index 77dd431..151b33b 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html
@@ -248,7 +248,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#copyCellIntoMSLAB-org.apache.hadoop.hbase.Cell-">copyCellIntoMSLAB</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#copyCellIntoMSLAB-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">copyCellIntoMSLAB</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private int</code></td>
@@ -276,9 +277,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#reinitializeCellSet-int-org.apache.hadoop.hbase.regionserver.KeyValueScanner-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">reinitializeCellSet</a></span>(int numOfCells,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#reinitializeCellSet-int-org.apache.hadoop.hbase.regionserver.KeyValueScanner-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.MemStoreSizing-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">reinitializeCellSet</a></span>(int numOfCells,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a> segmentScanner,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> oldCellSet,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</code> </td>
</tr>
<tr id="i11" class="rowColor">
@@ -298,7 +300,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#decScannerCount--">decScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#dump-org.slf4j.Logger-">dump</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellLength-org.apache.hadoop.hbase.Cell-">getCellLength</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellsCount--">getCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellSet--">getCellSet</a>, <a hr
ef="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getComparator--">getComparator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getDataSize--">getDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getHeapSize--">getHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreLAB--">getMemStoreLAB</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreSize--">getMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMinSequenceId--">getMinSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getOffHeapSize--">getOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanner-long-">getScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanners-long-">getScanners</a>, <a href=
"../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getTimeRangeTracker--">getTimeRangeTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#headSet-org.apache.hadoop.hbase.Cell-">headSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#heapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">heapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incMemStoreSize-long-long-long-">incMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incScannerCount--">incScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#i
sTagsPresent--">isTagsPresent</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#iterator--">iterator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#last--">last</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#offHeapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">offHeapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#setCellSet-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.CellSet-">setCellSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#shouldSeek-org.apache.hadoop.hbase.io.TimeRange-long-">shouldSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#tailSet-org.apache.hadoop.hbase.Cell-"
>tailSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareAndSetDataSize-long-long-">compareAndSetDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#decScannerCount--">decScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#dump-org.slf4j.Logger-">dump</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellLength-org.apache.hadoop.hbase.Cell-">getCellLength</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellsCo
unt--">getCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellSet--">getCellSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getComparator--">getComparator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getDataSize--">getDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getHeapSize--">getHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreLAB--">getMemStoreLAB</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreSize--">getMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMinSequenceId--">getMinSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getOffHeapSize--">getOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanner-long-"
>getScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanners-long-">getScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getTimeRangeTracker--">getTimeRangeTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#headSet-org.apache.hadoop.hbase.Cell-">headSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#heapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">heapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incMemStoreSize-long-long-long-">incMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incScannerCount--">incScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">internalAdd</a>, <a href="../../../../../org/ap
ache/hadoop/hbase/regionserver/Segment.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isTagsPresent--">isTagsPresent</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#iterator--">iterator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#last--">last</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#offHeapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">offHeapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#setCellSet-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.CellSet-">setCellSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#sharedLock--">sharedLock</a>, <a href=".
./../../../../org/apache/hadoop/hbase/regionserver/Segment.html#sharedUnlock--">sharedUnlock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#shouldSeek-org.apache.hadoop.hbase.io.TimeRange-long-">shouldSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#tailSet-org.apache.hadoop.hbase.Cell-">tailSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#waitForUpdates--">waitForUpdates</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -404,7 +406,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>indexEntryOnHeapSize</h4>
-<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.105">indexEntryOnHeapSize</a>(boolean onHeap)</pre>
+<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.108">indexEntryOnHeapSize</a>(boolean onHeap)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOnHeapSize-boolean-">indexEntryOnHeapSize</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></code></dd>
@@ -417,7 +419,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>indexEntryOffHeapSize</h4>
-<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.114">indexEntryOffHeapSize</a>(boolean offHeap)</pre>
+<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.117">indexEntryOffHeapSize</a>(boolean offHeap)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOffHeapSize-boolean-">indexEntryOffHeapSize</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></code></dd>
@@ -430,7 +432,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>indexEntrySize</h4>
-<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.123">indexEntrySize</a>()</pre>
+<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.126">indexEntrySize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntrySize--">indexEntrySize</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></code></dd>
@@ -443,7 +445,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>canBeFlattened</h4>
-<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.128">canBeFlattened</a>()</pre>
+<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.131">canBeFlattened</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html#canBeFlattened--">canBeFlattened</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a></code></dd>
@@ -456,20 +458,21 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>initializeCellSet</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.135">initializeCellSet</a>(int numOfCells,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.138">initializeCellSet</a>(int numOfCells,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSegmentsIterator.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSegmentsIterator</a> iterator,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</pre>
</li>
</ul>
-<a name="reinitializeCellSet-int-org.apache.hadoop.hbase.regionserver.KeyValueScanner-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">
+<a name="reinitializeCellSet-int-org.apache.hadoop.hbase.regionserver.KeyValueScanner-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.MemStoreSizing-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reinitializeCellSet</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.198">reinitializeCellSet</a>(int numOfCells,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.201">reinitializeCellSet</a>(int numOfCells,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a> segmentScanner,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> oldCellSet,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</pre>
</li>
</ul>
@@ -479,7 +482,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>createCellReference</h4>
-<pre>private int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.254">createCellReference</a>(<a href="../../../../../org/apache/hadoop/hbase/ByteBufferKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyValue</a> cell,
+<pre>private int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.257">createCellReference</a>(<a href="../../../../../org/apache/hadoop/hbase/ByteBufferKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyValue</a> cell,
<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> idxBuffer,
int idxOffset)</pre>
</li>
@@ -490,7 +493,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>calculateNumberOfChunks</h4>
-<pre>private int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.266">calculateNumberOfChunks</a>(int numOfCells,
+<pre>private int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.269">calculateNumberOfChunks</a>(int numOfCells,
int chunkSize)</pre>
</li>
</ul>
@@ -500,7 +503,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>useIndexChunks</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver">ChunkCreator.ChunkType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.280">useIndexChunks</a>(int numOfCells)</pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver">ChunkCreator.ChunkType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.283">useIndexChunks</a>(int numOfCells)</pre>
</li>
</ul>
<a name="calcNumOfCellsInChunk-int-">
@@ -509,7 +512,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>calcNumOfCellsInChunk</h4>
-<pre>private int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.296">calcNumOfCellsInChunk</a>(int chunkSize)</pre>
+<pre>private int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.299">calcNumOfCellsInChunk</a>(int chunkSize)</pre>
</li>
</ul>
<a name="allocIndexChunks-int-">
@@ -518,16 +521,17 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>allocIndexChunks</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.302">allocIndexChunks</a>(int numOfCells)</pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.305">allocIndexChunks</a>(int numOfCells)</pre>
</li>
</ul>
-<a name="copyCellIntoMSLAB-org.apache.hadoop.hbase.Cell-">
+<a name="copyCellIntoMSLAB-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>copyCellIntoMSLAB</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.318">copyCellIntoMSLAB</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellChunkImmutableSegment.html#line.321">copyCellIntoMSLAB</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html
new file mode 100644
index 0000000..488a90e
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompactingMemStore.InMemoryCompactionRunnable (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="CompactingMemStore.InMemoryCompactionRunnable (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompactingMemStore.InMemoryCompactionRunnable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactionPipeline.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html" target="_top">Frames</a></li>
+<li><a href="CompactingMemStore.InMemoryCompactionRunnable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.regionserver</div>
+<h2 title="Class CompactingMemStore.InMemoryCompactionRunnable" class="title">Class CompactingMemStore.InMemoryCompactionRunnable</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.regionserver.CompactingMemStore.InMemoryCompactionRunnable</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a></dd>
+</dl>
+<hr>
+<br>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.580">CompactingMemStore.InMemoryCompactionRunnable</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
+<div class="block">The in-memory-flusher thread performs the flush asynchronously.
+ There is at most one thread per memstore instance.
+ It takes the updatesLock exclusively, pushes active into the pipeline, releases updatesLock
+ and compacts the pipeline.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colLast" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html#InMemoryCompactionRunnable--">InMemoryCompactionRunnable</a></span>()</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html#run--">run</a></span>()</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="InMemoryCompactionRunnable--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>InMemoryCompactionRunnable</h4>
+<pre>private <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html#line.580">InMemoryCompactionRunnable</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="run--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>run</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html#line.582">run</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code> in interface <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompactingMemStore.InMemoryCompactionRunnable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactionPipeline.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html" target="_top">Frames</a></li>
+<li><a href="CompactingMemStore.InMemoryCompactionRunnable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html
deleted file mode 100644
index 0c49f88..0000000
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html
+++ /dev/null
@@ -1,291 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>CompactingMemStore.InMemoryFlushRunnable (Apache HBase 3.0.0-SNAPSHOT API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
- try {
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="CompactingMemStore.InMemoryFlushRunnable (Apache HBase 3.0.0-SNAPSHOT API)";
- }
- }
- catch(err) {
- }
-//-->
-var methods = {"i0":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
-var altColor = "altColor";
-var rowColor = "rowColor";
-var tableTab = "tableTab";
-var activeTableTab = "activeTableTab";
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!-- -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!-- -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/CompactingMemStore.InMemoryFlushRunnable.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactionPipeline.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html" target="_top">Frames</a></li>
-<li><a href="CompactingMemStore.InMemoryFlushRunnable.html" target="_top">No Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
- allClassesLink = document.getElementById("allclasses_navbar_top");
- if(window==top) {
- allClassesLink.style.display = "block";
- }
- else {
- allClassesLink.style.display = "none";
- }
- //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary: </li>
-<li>Nested | </li>
-<li>Field | </li>
-<li><a href="#constructor.summary">Constr</a> | </li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail: </li>
-<li>Field | </li>
-<li><a href="#constructor.detail">Constr</a> | </li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.top">
-<!-- -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<!-- ======== START OF CLASS DATA ======== -->
-<div class="header">
-<div class="subTitle">org.apache.hadoop.hbase.regionserver</div>
-<h2 title="Class CompactingMemStore.InMemoryFlushRunnable" class="title">Class CompactingMemStore.InMemoryFlushRunnable</h2>
-</div>
-<div class="contentContainer">
-<ul class="inheritance">
-<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
-<li>
-<ul class="inheritance">
-<li>org.apache.hadoop.hbase.regionserver.CompactingMemStore.InMemoryFlushRunnable</li>
-</ul>
-</li>
-</ul>
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<dl>
-<dt>All Implemented Interfaces:</dt>
-<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></dd>
-</dl>
-<dl>
-<dt>Enclosing class:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">CompactingMemStore</a></dd>
-</dl>
-<hr>
-<br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html#line.526">CompactingMemStore.InMemoryFlushRunnable</a>
-extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
-<div class="block">The in-memory-flusher thread performs the flush asynchronously.
- There is at most one thread per memstore instance.
- It takes the updatesLock exclusively, pushes active into the pipeline, releases updatesLock
- and compacts the pipeline.</div>
-</li>
-</ul>
-</div>
-<div class="summary">
-<ul class="blockList">
-<li class="blockList">
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
-<!-- -->
-</a>
-<h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
-<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier</th>
-<th class="colLast" scope="col">Constructor and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>private </code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html#InMemoryFlushRunnable--">InMemoryFlushRunnable</a></span>()</code> </td>
-</tr>
-</table>
-</li>
-</ul>
-<!-- ========== METHOD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.summary">
-<!-- -->
-</a>
-<h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tr id="i0" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html#run--">run</a></span>()</code> </td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
-<!-- -->
-</a>
-<h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="details">
-<ul class="blockList">
-<li class="blockList">
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
-<!-- -->
-</a>
-<h3>Constructor Detail</h3>
-<a name="InMemoryFlushRunnable--">
-<!-- -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>InMemoryFlushRunnable</h4>
-<pre>private <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html#line.526">InMemoryFlushRunnable</a>()</pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ============ METHOD DETAIL ========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.detail">
-<!-- -->
-</a>
-<h3>Method Detail</h3>
-<a name="run--">
-<!-- -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>run</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html#line.529">run</a>()</pre>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code> in interface <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
-</dl>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<!-- ========= END OF CLASS DATA ========= -->
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!-- -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!-- -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/CompactingMemStore.InMemoryFlushRunnable.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactionPipeline.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html" target="_top">Frames</a></li>
-<li><a href="CompactingMemStore.InMemoryFlushRunnable.html" target="_top">No Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
- allClassesLink = document.getElementById("allclasses_navbar_bottom");
- if(window==top) {
- allClassesLink.style.display = "block";
- }
- else {
- allClassesLink.style.display = "none";
- }
- //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary: </li>
-<li>Nested | </li>
-<li>Field | </li>
-<li><a href="#constructor.summary">Constr</a> | </li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail: </li>
-<li>Field | </li>
-<li><a href="#constructor.detail">Constr</a> | </li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.bottom">
-<!-- -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html
index 5e0b1b0..b9b6f76 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" target="_top">Frames</a></li>
@@ -315,7 +315,7 @@ not permitted.)</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" target="_top">Frames</a></li>
[37/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html b/devapidocs/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html
index 7d20fe1..be0991b 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":6,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":6,"i14":10,"i15":10,"i16":6,"i17":10,"i18":6,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":6,"i25":10,"i26":10};
+var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":6,"i16":10,"i17":10,"i18":6,"i19":10,"i20":6,"i21":10,"i22":6,"i23":6,"i24":10,"i25":10,"i26":6,"i27":10,"i28":10,"i29":6,"i30":10,"i31":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -141,7 +141,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a></code></td>
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#active">active</a></span></code> </td>
</tr>
<tr class="rowColor">
@@ -238,78 +238,94 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> scanners)</code> </td>
</tr>
<tr id="i4" class="altColor">
-<td class="colFirst"><code>protected abstract void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#checkActiveSize--">checkActiveSize</a></span>()</code>
-<div class="block">Check whether anything need to be done based on the current active set size</div>
-</td>
-</tr>
-<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#clearSnapshot-long-">clearSnapshot</a></span>(long id)</code>
<div class="block">The passed snapshot was successfully persisted; it can be let go.</div>
</td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#deepCopyIfNeeded-org.apache.hadoop.hbase.Cell-">deepCopyIfNeeded</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#doAdd-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">doAdd</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
<tr id="i7" class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#doAddOrUpsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">doAddOrUpsert</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ long readpoint,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean doAdd)</code> </td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#doUpsert-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">doUpsert</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ long readpoint,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
+</tr>
+<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#dump-org.slf4j.Logger-">dump</a></span>(org.slf4j.Logger log)</code> </td>
</tr>
-<tr id="i8" class="altColor">
+<tr id="i10" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#getActive--">getActive</a></span>()</code> </td>
</tr>
-<tr id="i9" class="rowColor">
+<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#getComparator--">getComparator</a></span>()</code> </td>
</tr>
-<tr id="i10" class="altColor">
+<tr id="i12" class="altColor">
<td class="colFirst"><code>protected org.apache.hadoop.conf.Configuration</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#getConfiguration--">getConfiguration</a></span>()</code> </td>
</tr>
-<tr id="i11" class="rowColor">
+<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#getLowest-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">getLowest</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> a,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> b)</code> </td>
</tr>
-<tr id="i12" class="altColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#getNextRow-org.apache.hadoop.hbase.Cell-java.util.NavigableSet-">getNextRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> set)</code> </td>
</tr>
-<tr id="i13" class="rowColor">
+<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#getSegments--">getSegments</a></span>()</code> </td>
</tr>
-<tr id="i14" class="altColor">
+<tr id="i16" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#getSnapshot--">getSnapshot</a></span>()</code> </td>
</tr>
-<tr id="i15" class="rowColor">
+<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#getSnapshotSize--">getSnapshotSize</a></span>()</code>
<div class="block">Return the size of the snapshot(s) if any</div>
</td>
</tr>
-<tr id="i16" class="altColor">
+<tr id="i18" class="altColor">
<td class="colFirst"><code>protected abstract long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#heapSize--">heapSize</a></span>()</code> </td>
</tr>
-<tr id="i17" class="rowColor">
+<tr id="i19" class="rowColor">
<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> toAdd,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#internalAdd-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> toAdd,
boolean mslabUsed,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
</tr>
-<tr id="i18" class="altColor">
+<tr id="i20" class="altColor">
<td class="colFirst"><code>protected abstract long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#keySize--">keySize</a></span>()</code> </td>
</tr>
-<tr id="i19" class="rowColor">
+<tr id="i21" class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean forceCloneOfBigCell)</code>
<div class="block">If the segment has a memory allocator the cell is being cloned to this space, and returned;
Otherwise the given cell is returned
@@ -317,35 +333,53 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
When a cell's size is too big (bigger than maxAlloc), it is not allocated on MSLAB.</div>
</td>
</tr>
-<tr id="i20" class="altColor">
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>protected abstract void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">postUpdate</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive)</code>
+<div class="block">Issue any post update synchronization and tests</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>protected abstract boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">preUpdate</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code>
+<div class="block">Issue any synchronization and test needed before applying the update</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#resetActive--">resetActive</a></span>()</code> </td>
</tr>
-<tr id="i21" class="rowColor">
+<tr id="i25" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#setOldestEditTimeToNow--">setOldestEditTimeToNow</a></span>()</code> </td>
</tr>
-<tr id="i22" class="altColor">
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>protected abstract boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#sizeAddedPreOperation--">sizeAddedPreOperation</a></span>()</code> </td>
+</tr>
+<tr id="i27" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#timeOfOldestEdit--">timeOfOldestEdit</a></span>()</code> </td>
</tr>
-<tr id="i23" class="rowColor">
+<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#toString--">toString</a></span>()</code> </td>
</tr>
-<tr id="i24" class="altColor">
+<tr id="i29" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#updateLowestUnflushedSequenceIdInWAL-boolean-">updateLowestUnflushedSequenceIdInWAL</a></span>(boolean onlyIfMoreRecent)</code>
<div class="block">Updates the wal with the lowest sequence id (oldest entry) that is still in memory</div>
</td>
</tr>
-<tr id="i25" class="rowColor">
+<tr id="i30" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#upsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">upsert</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
long readpoint,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</code> </td>
</tr>
-<tr id="i26" class="altColor">
+<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#upsert-java.lang.Iterable-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">upsert</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> cells,
long readpoint,
@@ -419,7 +453,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>active</h4>
-<pre>protected volatile <a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.50">active</a></pre>
+<pre>private volatile <a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.50">active</a></pre>
</li>
</ul>
<a name="snapshot">
@@ -575,13 +609,93 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
</dl>
</li>
</ul>
+<a name="upsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>upsert</h4>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.122">upsert</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ long readpoint,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
+</li>
+</ul>
+<a name="doAddOrUpsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doAddOrUpsert</h4>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.126">doAddOrUpsert</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ long readpoint,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ boolean doAdd)</pre>
+</li>
+</ul>
+<a name="doAdd-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doAdd</h4>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.144">doAdd</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
+</li>
+</ul>
+<a name="doUpsert-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doUpsert</h4>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.162">doUpsert</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ long readpoint,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
+</li>
+</ul>
+<a name="preUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>preUpdate</h4>
+<pre>protected abstract boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.186">preUpdate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
+<div class="block">Issue any synchronization and test needed before applying the update</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>currentActive</code> - the segment to be updated</dd>
+<dd><code>cell</code> - the cell to be added</dd>
+<dd><code>memstoreSizing</code> - object to accumulate region size changes</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true iff can proceed with applying the update</dd>
+</dl>
+</li>
+</ul>
+<a name="postUpdate-org.apache.hadoop.hbase.regionserver.MutableSegment-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>postUpdate</h4>
+<pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.193">postUpdate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive)</pre>
+<div class="block">Issue any post update synchronization and tests</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>currentActive</code> - updated segment</dd>
+</dl>
+</li>
+</ul>
<a name="deepCopyIfNeeded-org.apache.hadoop.hbase.Cell-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deepCopyIfNeeded</h4>
-<pre>private static <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.122">deepCopyIfNeeded</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</pre>
+<pre>private static <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.195">deepCopyIfNeeded</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</pre>
</li>
</ul>
<a name="upsert-java.lang.Iterable-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
@@ -590,7 +704,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>upsert</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.130">upsert</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> cells,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.203">upsert</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> cells,
long readpoint,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore.html#upsert-java.lang.Iterable-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">MemStore</a></code></span></div>
@@ -619,7 +733,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>timeOfOldestEdit</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.140">timeOfOldestEdit</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.213">timeOfOldestEdit</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore.html#timeOfOldestEdit--">timeOfOldestEdit</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStore</a></code></dd>
@@ -634,7 +748,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>clearSnapshot</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.150">clearSnapshot</a>(long id)
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.223">clearSnapshot</a>(long id)
throws <a href="../../../../../org/apache/hadoop/hbase/exceptions/UnexpectedStateException.html" title="class in org.apache.hadoop.hbase.exceptions">UnexpectedStateException</a></pre>
<div class="block">The passed snapshot was successfully persisted; it can be let go.</div>
<dl>
@@ -655,7 +769,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getSnapshotSize</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.167">getSnapshotSize</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.240">getSnapshotSize</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore.html#getSnapshotSize--">MemStore</a></code></span></div>
<div class="block">Return the size of the snapshot(s) if any</div>
<dl>
@@ -672,7 +786,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.172">toString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.245">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -685,7 +799,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getConfiguration</h4>
-<pre>protected org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.186">getConfiguration</a>()</pre>
+<pre>protected org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.259">getConfiguration</a>()</pre>
</li>
</ul>
<a name="dump-org.slf4j.Logger-">
@@ -694,18 +808,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>dump</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.190">dump</a>(org.slf4j.Logger log)</pre>
-</li>
-</ul>
-<a name="upsert-org.apache.hadoop.hbase.Cell-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
-<!-- -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>upsert</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.211">upsert</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
- long readpoint,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.263">dump</a>(org.slf4j.Logger log)</pre>
</li>
</ul>
<a name="getLowest-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">
@@ -714,7 +817,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getLowest</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.232">getLowest</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> a,
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.274">getLowest</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> a,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> b)</pre>
</li>
</ul>
@@ -724,17 +827,18 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getNextRow</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.248">getNextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key,
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.290">getNextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> set)</pre>
</li>
</ul>
-<a name="maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">
+<a name="maybeCloneWithAllocator-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maybeCloneWithAllocator</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.278">maybeCloneWithAllocator</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.320">maybeCloneWithAllocator</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell,
boolean forceCloneOfBigCell)</pre>
<div class="block">If the segment has a memory allocator the cell is being cloned to this space, and returned;
Otherwise the given cell is returned
@@ -752,24 +856,34 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
</dl>
</li>
</ul>
-<a name="internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
+<a name="internalAdd-org.apache.hadoop.hbase.regionserver.MutableSegment-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>internalAdd</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.291">internalAdd</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> toAdd,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.334">internalAdd</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> currentActive,
+ <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> toAdd,
boolean mslabUsed,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing)</pre>
</li>
</ul>
+<a name="sizeAddedPreOperation--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sizeAddedPreOperation</h4>
+<pre>protected abstract boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.341">sizeAddedPreOperation</a>()</pre>
+</li>
+</ul>
<a name="setOldestEditTimeToNow--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOldestEditTimeToNow</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.297">setOldestEditTimeToNow</a>()</pre>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.343">setOldestEditTimeToNow</a>()</pre>
</li>
</ul>
<a name="keySize--">
@@ -778,7 +892,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>keySize</h4>
-<pre>protected abstract long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.306">keySize</a>()</pre>
+<pre>protected abstract long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.352">keySize</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The total size of cells in this memstore. We will not consider cells in the snapshot</dd>
@@ -791,7 +905,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>heapSize</h4>
-<pre>protected abstract long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.312">heapSize</a>()</pre>
+<pre>protected abstract long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.358">heapSize</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The total heap size of cells in this memstore. We will not consider cells in the
@@ -805,7 +919,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getComparator</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.314">getComparator</a>()</pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.360">getComparator</a>()</pre>
</li>
</ul>
<a name="getActive--">
@@ -814,7 +928,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getActive</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.319">getActive</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">MutableSegment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.365">getActive</a>()</pre>
</li>
</ul>
<a name="getSnapshot--">
@@ -823,17 +937,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockList">
<li class="blockList">
<h4>getSnapshot</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.324">getSnapshot</a>()</pre>
-</li>
-</ul>
-<a name="checkActiveSize--">
-<!-- -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>checkActiveSize</h4>
-<pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.331">checkActiveSize</a>()</pre>
-<div class="block">Check whether anything need to be done based on the current active set size</div>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.370">getSnapshot</a>()</pre>
</li>
</ul>
<a name="getSegments--">
@@ -842,7 +946,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStore
<ul class="blockListLast">
<li class="blockList">
<h4>getSegments</h4>
-<pre>protected abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.336">getSegments</a>()
+<pre>protected abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/AbstractMemStore.html#line.377">getSegments</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/CSLMImmutableSegment.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/CSLMImmutableSegment.html b/devapidocs/org/apache/hadoop/hbase/regionserver/CSLMImmutableSegment.html
index 582d5be..8f25e59 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/CSLMImmutableSegment.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/CSLMImmutableSegment.html
@@ -230,7 +230,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#decScannerCount--">decScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#dump-org.slf4j.Logger-">dump</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellLength-org.apache.hadoop.hbase.Cell-">getCellLength</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellsCount--">getCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellSet--">getCellSet</a>, <a hr
ef="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getComparator--">getComparator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getDataSize--">getDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getHeapSize--">getHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreLAB--">getMemStoreLAB</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreSize--">getMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMinSequenceId--">getMinSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getOffHeapSize--">getOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanner-long-">getScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanners-long-">getScanners</a>, <a href=
"../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getTimeRangeTracker--">getTimeRangeTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#headSet-org.apache.hadoop.hbase.Cell-">headSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#heapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">heapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incMemStoreSize-long-long-long-">incMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incScannerCount--">incScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOffHeapSize-boolean-">indexEntryOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOnHeapSize-boolean-">indexEntryOnHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop
.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isTagsPresent--">isTagsPresent</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#iterator--">iterator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#last--">last</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#offHeapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">offHeapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#setCellSet-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.CellSet-">setCellSe
t</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#shouldSeek-org.apache.hadoop.hbase.io.TimeRange-long-">shouldSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#tailSet-org.apache.hadoop.hbase.Cell-">tailSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareAndSetDataSize-long-long-">compareAndSetDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#decScannerCount--">decScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#dump-org.slf4j.Logger-">dump</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellLength-org.apache.hadoop.hbase.Cell-">getCellLength</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellsCo
unt--">getCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellSet--">getCellSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getComparator--">getComparator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getDataSize--">getDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getHeapSize--">getHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreLAB--">getMemStoreLAB</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreSize--">getMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMinSequenceId--">getMinSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getOffHeapSize--">getOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanner-long-"
>getScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanners-long-">getScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getTimeRangeTracker--">getTimeRangeTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#headSet-org.apache.hadoop.hbase.Cell-">headSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#heapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">heapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incMemStoreSize-long-long-long-">incMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incScannerCount--">incScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOffHeapSize-boolean-">indexEntryOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOnHeapSize-bool
ean-">indexEntryOnHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">internalAdd</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isTagsPresent--">isTagsPresent</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#iterator--">iterator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#last--">last</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#offHeapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">offHeapSizeChange</a>, <a href="../../../../../org/apache/hadoop/h
base/regionserver/Segment.html#setCellSet-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.CellSet-">setCellSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#sharedLock--">sharedLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#sharedUnlock--">sharedUnlock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#shouldSeek-org.apache.hadoop.hbase.io.TimeRange-long-">shouldSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#tailSet-org.apache.hadoop.hbase.Cell-">tailSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbas
e.regionserver.MemStoreSizing-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#waitForUpdates--">waitForUpdates</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html b/devapidocs/org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html
index 19dfafa..0ade15a 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html
@@ -202,7 +202,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html#CellArrayImmutableSegment-org.apache.hadoop.hbase.regionserver.CSLMImmutableSegment-org.apache.hadoop.hbase.regionserver.MemStoreSizing-org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy.Action-">CellArrayImmutableSegment</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CSLMImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">CSLMImmutableSegment</a> segment,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> mss,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</code>
<div class="block">------------------------------------------------------------------------
C-tor to be used when new CellChunkImmutableSegment is built as a result of flattening
@@ -259,7 +259,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#decScannerCount--">decScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#dump-org.slf4j.Logger-">dump</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellLength-org.apache.hadoop.hbase.Cell-">getCellLength</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellsCount--">getCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellSet--">getCellSet</a>, <a hr
ef="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getComparator--">getComparator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getDataSize--">getDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getHeapSize--">getHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreLAB--">getMemStoreLAB</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreSize--">getMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMinSequenceId--">getMinSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getOffHeapSize--">getOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanner-long-">getScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanners-long-">getScanners</a>, <a href=
"../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getTimeRangeTracker--">getTimeRangeTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#headSet-org.apache.hadoop.hbase.Cell-">headSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#heapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">heapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incMemStoreSize-long-long-long-">incMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incScannerCount--">incScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOffHeapSize-boolean-">indexEntryOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOnHeapSize-boolean-">indexEntryOnHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop
.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">internalAdd</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isTagsPresent--">isTagsPresent</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#iterator--">iterator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#last--">last</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#offHeapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">offHeapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#setCellSet-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.CellSet-">setCellSe
t</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#shouldSeek-org.apache.hadoop.hbase.io.TimeRange-long-">shouldSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#tailSet-org.apache.hadoop.hbase.Cell-">tailSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">updateMetaInfo</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareAndSetDataSize-long-long-">compareAndSetDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#decScannerCount--">decScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#dump-org.slf4j.Logger-">dump</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellLength-org.apache.hadoop.hbase.Cell-">getCellLength</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellsCo
unt--">getCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getCellSet--">getCellSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getComparator--">getComparator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getDataSize--">getDataSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getHeapSize--">getHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreLAB--">getMemStoreLAB</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMemStoreSize--">getMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getMinSequenceId--">getMinSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getOffHeapSize--">getOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanner-long-"
>getScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getScanners-long-">getScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#getTimeRangeTracker--">getTimeRangeTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#headSet-org.apache.hadoop.hbase.Cell-">headSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#heapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">heapSizeChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incMemStoreSize-long-long-long-">incMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#incScannerCount--">incScannerCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOffHeapSize-boolean-">indexEntryOffHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntryOnHeapSize-bool
ean-">indexEntryOnHeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#internalAdd-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">internalAdd</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#isTagsPresent--">isTagsPresent</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#iterator--">iterator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#last--">last</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#maybeCloneWithAllocator-org.apache.hadoop.hbase.Cell-boolean-">maybeCloneWithAllocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#offHeapSizeChange-org.apache.hadoop.hbase.Cell-boolean-">offHeapSizeChange</a>, <a href="../../../../../org/apache/hadoop/h
base/regionserver/Segment.html#setCellSet-org.apache.hadoop.hbase.regionserver.CellSet-org.apache.hadoop.hbase.regionserver.CellSet-">setCellSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#sharedLock--">sharedLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#sharedUnlock--">sharedUnlock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#shouldSeek-org.apache.hadoop.hbase.io.TimeRange-long-">shouldSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#tailSet-org.apache.hadoop.hbase.Cell-">tailSet</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-boolean-org.apache.hadoop.hbase.regionserver.MemStoreSizing-boolean-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#updateMetaInfo-org.apache.hadoop.hbase.Cell-boolean-org.apache.hadoop.hbas
e.regionserver.MemStoreSizing-">updateMetaInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#waitForUpdates--">waitForUpdates</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -330,7 +330,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<li class="blockList">
<h4>CellArrayImmutableSegment</h4>
<pre>protected <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html#line.58">CellArrayImmutableSegment</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CSLMImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">CSLMImmutableSegment</a> segment,
- <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreSizing,
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> mss,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</pre>
<div class="block">------------------------------------------------------------------------
C-tor to be used when new CellChunkImmutableSegment is built as a result of flattening
@@ -352,7 +352,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>indexEntrySize</h4>
-<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html#line.75">indexEntrySize</a>()</pre>
+<pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html#line.76">indexEntrySize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html#indexEntrySize--">indexEntrySize</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></code></dd>
@@ -365,7 +365,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>canBeFlattened</h4>
-<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html#line.80">canBeFlattened</a>()</pre>
+<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html#line.81">canBeFlattened</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html#canBeFlattened--">canBeFlattened</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a></code></dd>
@@ -378,7 +378,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockList">
<li class="blockList">
<h4>initializeCellSet</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html#line.87">initializeCellSet</a>(int numOfCells,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html#line.88">initializeCellSet</a>(int numOfCells,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSegmentsIterator.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSegmentsIterator</a> iterator,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</pre>
</li>
@@ -389,7 +389,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSe
<ul class="blockListLast">
<li class="blockList">
<h4>reinitializeCellSet</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html#line.137">reinitializeCellSet</a>(int numOfCells,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.html#line.138">reinitializeCellSet</a>(int numOfCells,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a> segmentScanner,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a> oldCellSet,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy.Action</a> action)</pre>
[18/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-tree.html
index f824378..4814bd4 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-tree.html
@@ -86,6 +86,7 @@
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">BlockCacheTmplImpl</span></a> (implements org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl.Intf</a>)</li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">BlockCacheViewTmplImpl</span></a> (implements org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl.Intf</a>)</li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RegionListTmplImpl</span></a> (implements org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">RegionListTmpl.Intf</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ReplicationStatusTmplImpl</span></a> (implements org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.Intf</a>)</li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RSStatusTmplImpl</span></a> (implements org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.Intf</a>)</li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ServerMetricsTmplImpl</span></a> (implements org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">ServerMetricsTmpl.Intf</a>)</li>
</ul>
@@ -95,6 +96,7 @@
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">BlockCacheTmpl</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">BlockCacheViewTmpl</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RegionListTmpl</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ReplicationStatusTmpl</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RSStatusTmpl</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ServerMetricsTmpl</span></a></li>
</ul>
@@ -104,6 +106,7 @@
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">BlockCacheTmpl.ImplData</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">BlockCacheViewTmpl.ImplData</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RegionListTmpl.ImplData</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ReplicationStatusTmpl.ImplData</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RSStatusTmpl.ImplData</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ServerMetricsTmpl.ImplData</span></a></li>
</ul>
@@ -118,6 +121,7 @@
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">BlockCacheTmpl.Intf</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">BlockCacheViewTmpl.Intf</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RegionListTmpl.Intf</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ReplicationStatusTmpl.Intf</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RSStatusTmpl.Intf</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ServerMetricsTmpl.Intf</span></a></li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-use.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-use.html
index 78ba6e0..4814761 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-use.html
@@ -117,6 +117,12 @@
<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/class-use/RegionListTmpl.Intf.html#org.apache.hadoop.hbase.tmpl.regionserver">RegionListTmpl.Intf</a> </td>
</tr>
<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.ImplData.html#org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.Intf.html#org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.Intf</a> </td>
+</tr>
+<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/class-use/RSStatusTmpl.html#org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a> </td>
</tr>
<tr class="rowColor">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
index d61aa1c..9894900 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -533,14 +533,14 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a><T>)</li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a><T>)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index bcb1724..c6caa9b 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -191,8 +191,8 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index 27b4591..8373e3e 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -434,6 +434,7 @@
<li type="circle">org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.master"><span class="typeNameLink">MasterStatusTmplImpl</span></a> (implements org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl.Intf</a>)</li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RegionListTmplImpl</span></a> (implements org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">RegionListTmpl.Intf</a>)</li>
<li type="circle">org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/RegionServerListTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.master"><span class="typeNameLink">RegionServerListTmplImpl</span></a> (implements org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/RegionServerListTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.master">RegionServerListTmpl.Intf</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ReplicationStatusTmplImpl</span></a> (implements org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.Intf</a>)</li>
<li type="circle">org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/RSGroupListTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.master"><span class="typeNameLink">RSGroupListTmplImpl</span></a> (implements org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/RSGroupListTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.master">RSGroupListTmpl.Intf</a>)</li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RSStatusTmplImpl</span></a> (implements org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.Intf</a>)</li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ServerMetricsTmplImpl</span></a> (implements org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">ServerMetricsTmpl.Intf</a>)</li>
@@ -448,6 +449,7 @@
<li type="circle">org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master"><span class="typeNameLink">MasterStatusTmpl</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RegionListTmpl</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/RegionServerListTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master"><span class="typeNameLink">RegionServerListTmpl</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ReplicationStatusTmpl</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/RSGroupListTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master"><span class="typeNameLink">RSGroupListTmpl</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RSStatusTmpl</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ServerMetricsTmpl</span></a></li>
@@ -462,6 +464,7 @@
<li type="circle">org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.master"><span class="typeNameLink">MasterStatusTmpl.ImplData</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RegionListTmpl.ImplData</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/RegionServerListTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.master"><span class="typeNameLink">RegionServerListTmpl.ImplData</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ReplicationStatusTmpl.ImplData</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/RSGroupListTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.master"><span class="typeNameLink">RSGroupListTmpl.ImplData</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RSStatusTmpl.ImplData</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ServerMetricsTmpl.ImplData</span></a></li>
@@ -1125,7 +1128,7 @@
<li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/CommonFSUtils.StreamCapabilities.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">CommonFSUtils.StreamCapabilities</span></a></li>
<li type="circle">org.apache.hadoop.hbase.io.crypto.aes.<a href="org/apache/hadoop/hbase/io/crypto/aes/CommonsCryptoAESDecryptor.html" title="class in org.apache.hadoop.hbase.io.crypto.aes"><span class="typeNameLink">CommonsCryptoAESDecryptor</span></a> (implements org.apache.hadoop.hbase.io.crypto.<a href="org/apache/hadoop/hbase/io/crypto/Decryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto">Decryptor</a>)</li>
<li type="circle">org.apache.hadoop.hbase.io.crypto.aes.<a href="org/apache/hadoop/hbase/io/crypto/aes/CommonsCryptoAESEncryptor.html" title="class in org.apache.hadoop.hbase.io.crypto.aes"><span class="typeNameLink">CommonsCryptoAESEncryptor</span></a> (implements org.apache.hadoop.hbase.io.crypto.<a href="org/apache/hadoop/hbase/io/crypto/Encryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto">Encryptor</a>)</li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.InMemoryFlushRunnable</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.InMemoryCompactionRunnable</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>)</li>
<li type="circle">org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/CompactionConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.compactions"><span class="typeNameLink">CompactionConfiguration</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions"><span class="typeNameLink">CompactionContext</span></a>
<ul>
@@ -3099,6 +3102,8 @@
<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceFactory.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceFactory</span></a></li>
<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceManager</span></a> (implements org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationListener.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationListener</a>)</li>
<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALActionListener.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceWALActionListener</span></a> (implements org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.ReplicationStatusBuilder.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationStatus.ReplicationStatusBuilder</span></a></li>
<li type="circle">org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationStorageFactory.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationStorageFactory</span></a></li>
<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.DummyServer.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSyncUp.DummyServer</span></a> (implements org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>)</li>
<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationThrottler.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationThrottler</span></a></li>
@@ -4318,6 +4323,7 @@
<li type="circle">org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.master"><span class="typeNameLink">MasterStatusTmpl.Intf</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RegionListTmpl.Intf</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/RegionServerListTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.master"><span class="typeNameLink">RegionServerListTmpl.Intf</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ReplicationStatusTmpl.Intf</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/RSGroupListTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.master"><span class="typeNameLink">RSGroupListTmpl.Intf</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">RSStatusTmpl.Intf</span></a></li>
<li type="circle">org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ServerMetricsTmpl.Intf</span></a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index c4383f4..5bd42ce 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,11 +16,11 @@
<span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
<span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
<span class="sourceLineNo">010</span> public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span> public static final String revision = "34e23fe425e62f240a65c435d41adfbbe211522d";<a name="line.11"></a>
+<span class="sourceLineNo">011</span> public static final String revision = "0f23784182ab88649de340d75804e0ff20dcd0fc";<a name="line.11"></a>
<span class="sourceLineNo">012</span> public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span> public static final String date = "Sat Jun 30 17:13:05 UTC 2018";<a name="line.13"></a>
+<span class="sourceLineNo">013</span> public static final String date = "Tue Jul 3 19:56:40 UTC 2018";<a name="line.13"></a>
<span class="sourceLineNo">014</span> public static final String url = "git://jenkins-websites1.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span> public static final String srcChecksum = "347800161f61d858e14faba963857be6";<a name="line.15"></a>
+<span class="sourceLineNo">015</span> public static final String srcChecksum = "2d59bf0d31a96d5e7e8ecd09c2fa180c";<a name="line.15"></a>
<span class="sourceLineNo">016</span>}<a name="line.16"></a>
[31/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
index db9b75d..8c494308 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
@@ -3142,7 +3142,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
<ul class="blockList">
<li class="blockList">
<h4>closeLock</h4>
-<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1434">closeLock</a></pre>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1437">closeLock</a></pre>
</li>
</ul>
<a name="MEMSTORE_PERIODIC_FLUSH_INTERVAL">
@@ -3151,7 +3151,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
<ul class="blockList">
<li class="blockList">
<h4>MEMSTORE_PERIODIC_FLUSH_INTERVAL</h4>
-<pre>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1437">MEMSTORE_PERIODIC_FLUSH_INTERVAL</a></pre>
+<pre>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1440">MEMSTORE_PERIODIC_FLUSH_INTERVAL</a></pre>
<div class="block">Conf key for the periodic flush interval</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
@@ -3165,7 +3165,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_CACHE_FLUSH_INTERVAL</h4>
-<pre>public static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1440">DEFAULT_CACHE_FLUSH_INTERVAL</a></pre>
+<pre>public static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1443">DEFAULT_CACHE_FLUSH_INTERVAL</a></pre>
<div class="block">Default interval for the memstore flush</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
@@ -3179,7 +3179,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
<ul class="blockList">
<li class="blockList">
<h4>SYSTEM_CACHE_FLUSH_INTERVAL</h4>
-<pre>public static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1442">SYSTEM_CACHE_FLUSH_INTERVAL</a></pre>
+<pre>public static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1445">SYSTEM_CACHE_FLUSH_INTERVAL</a></pre>
<div class="block">Default interval for System tables memstore flush</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
@@ -3193,7 +3193,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
<ul class="blockList">
<li class="blockList">
<h4>MEMSTORE_FLUSH_PER_CHANGES</h4>
-<pre>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1445">MEMSTORE_FLUSH_PER_CHANGES</a></pre>
+<pre>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1448">MEMSTORE_FLUSH_PER_CHANGES</a></pre>
<div class="block">Conf key to force a flush if there are already enough changes for one region in memstore</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
@@ -3207,7 +3207,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_FLUSH_PER_CHANGES</h4>
-<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1447">DEFAULT_FLUSH_PER_CHANGES</a></pre>
+<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1450">DEFAULT_FLUSH_PER_CHANGES</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegion.DEFAULT_FLUSH_PER_CHANGES">Constant Field Values</a></dd>
@@ -3220,7 +3220,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
<ul class="blockList">
<li class="blockList">
<h4>MAX_FLUSH_PER_CHANGES</h4>
-<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1452">MAX_FLUSH_PER_CHANGES</a></pre>
+<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1455">MAX_FLUSH_PER_CHANGES</a></pre>
<div class="block">The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes
overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region</div>
<dl>
@@ -3235,7 +3235,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
<ul class="blockList">
<li class="blockList">
<h4>FOR_UNIT_TESTS_ONLY</h4>
-<pre>private static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2909">FOR_UNIT_TESTS_ONLY</a></pre>
+<pre>private static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2915">FOR_UNIT_TESTS_ONLY</a></pre>
<div class="block">Row needed by below method.</div>
</li>
</ul>
@@ -3245,7 +3245,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
<ul class="blockList">
<li class="blockList">
<h4>FIXED_OVERHEAD</h4>
-<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8018">FIXED_OVERHEAD</a></pre>
+<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8022">FIXED_OVERHEAD</a></pre>
</li>
</ul>
<a name="DEEP_OVERHEAD">
@@ -3254,7 +3254,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
<ul class="blockList">
<li class="blockList">
<h4>DEEP_OVERHEAD</h4>
-<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8035">DEEP_OVERHEAD</a></pre>
+<pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8039">DEEP_OVERHEAD</a></pre>
</li>
</ul>
<a name="MOCKED_LIST">
@@ -3263,7 +3263,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
<ul class="blockListLast">
<li class="blockList">
<h4>MOCKED_LIST</h4>
-<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8430">MOCKED_LIST</a></pre>
+<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8434">MOCKED_LIST</a></pre>
<div class="block">A mocked list implementation - discards all updates.</div>
</li>
</ul>
@@ -3434,7 +3434,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>initializeStores</h4>
-<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1005">initializeStores</a>(<a href="../../../../../org/apache/hadoop/hbase/util/CancelableProgressable.html" title="interface in org.apache.hadoop.hbase.util">CancelableProgressable</a> reporter,
+<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1008">initializeStores</a>(<a href="../../../../../org/apache/hadoop/hbase/util/CancelableProgressable.html" title="interface in org.apache.hadoop.hbase.util">CancelableProgressable</a> reporter,
<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a> status)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Open all Stores.</div>
@@ -3455,7 +3455,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>initializeWarmup</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1079">initializeWarmup</a>(<a href="../../../../../org/apache/hadoop/hbase/util/CancelableProgressable.html" title="interface in org.apache.hadoop.hbase.util">CancelableProgressable</a> reporter)
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1082">initializeWarmup</a>(<a href="../../../../../org/apache/hadoop/hbase/util/CancelableProgressable.html" title="interface in org.apache.hadoop.hbase.util">CancelableProgressable</a> reporter)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -3469,7 +3469,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getStoreFiles</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.fs.Path>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1093">getStoreFiles</a>()</pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.fs.Path>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1096">getStoreFiles</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map of StoreFiles by column family</dd>
@@ -3482,7 +3482,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>writeRegionOpenMarker</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1110">writeRegionOpenMarker</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> wal,
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1113">writeRegionOpenMarker</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> wal,
long openSeqId)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
@@ -3497,7 +3497,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>writeRegionCloseMarker</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1119">writeRegionCloseMarker</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> wal)
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1122">writeRegionCloseMarker</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> wal)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -3511,7 +3511,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>hasReferences</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1139">hasReferences</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1142">hasReferences</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if this region has references.</dd>
@@ -3524,7 +3524,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>blockUpdates</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1143">blockUpdates</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1146">blockUpdates</a>()</pre>
</li>
</ul>
<a name="unblockUpdates--">
@@ -3533,7 +3533,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>unblockUpdates</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1147">unblockUpdates</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1150">unblockUpdates</a>()</pre>
</li>
</ul>
<a name="getHDFSBlocksDistribution--">
@@ -3542,7 +3542,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getHDFSBlocksDistribution</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1151">getHDFSBlocksDistribution</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1154">getHDFSBlocksDistribution</a>()</pre>
</li>
</ul>
<a name="computeHDFSBlocksDistribution-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo-">
@@ -3551,7 +3551,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>computeHDFSBlocksDistribution</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1167">computeHDFSBlocksDistribution</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1170">computeHDFSBlocksDistribution</a>(org.apache.hadoop.conf.Configuration conf,
<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a> tableDescriptor,
<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> regionInfo)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3574,7 +3574,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>computeHDFSBlocksDistribution</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1182">computeHDFSBlocksDistribution</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1185">computeHDFSBlocksDistribution</a>(org.apache.hadoop.conf.Configuration conf,
<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a> tableDescriptor,
<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> regionInfo,
org.apache.hadoop.fs.Path tablePath)
@@ -3599,7 +3599,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>incMemStoreSize</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1221">incMemStoreSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> mss)</pre>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1224">incMemStoreSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> mss)</pre>
<div class="block">Increase the size of mem store in this region and the size of global mem
store</div>
</li>
@@ -3610,7 +3610,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>incMemStoreSize</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1225">incMemStoreSize</a>(long dataSizeDelta,
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1228">incMemStoreSize</a>(long dataSizeDelta,
long heapSizeDelta,
long offHeapSizeDelta)</pre>
</li>
@@ -3621,7 +3621,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>decrMemStoreSize</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1234">decrMemStoreSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> mss)</pre>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1237">decrMemStoreSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a> mss)</pre>
</li>
</ul>
<a name="decrMemStoreSize-long-long-long-">
@@ -3630,7 +3630,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>decrMemStoreSize</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1238">decrMemStoreSize</a>(long dataSizeDelta,
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1241">decrMemStoreSize</a>(long dataSizeDelta,
long heapSizeDelta,
long offHeapSizeDelta)</pre>
</li>
@@ -3641,7 +3641,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>checkNegativeMemStoreDataSize</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1247">checkNegativeMemStoreDataSize</a>(long memStoreDataSize,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1250">checkNegativeMemStoreDataSize</a>(long memStoreDataSize,
long delta)</pre>
</li>
</ul>
@@ -3651,7 +3651,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getRegionInfo</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1258">getRegionInfo</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1261">getRegionInfo</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getRegionInfo--">getRegionInfo</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3666,7 +3666,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getRegionServerServices</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1266">getRegionServerServices</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1269">getRegionServerServices</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Instance of <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver"><code>RegionServerServices</code></a> used by this HRegion.
@@ -3680,7 +3680,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getReadRequestsCount</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1271">getReadRequestsCount</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1274">getReadRequestsCount</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getReadRequestsCount--">getReadRequestsCount</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3695,7 +3695,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getCpRequestsCount</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1276">getCpRequestsCount</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1279">getCpRequestsCount</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getCpRequestsCount--">getCpRequestsCount</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3710,7 +3710,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getFilteredReadRequestsCount</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1281">getFilteredReadRequestsCount</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1284">getFilteredReadRequestsCount</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getFilteredReadRequestsCount--">getFilteredReadRequestsCount</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3725,7 +3725,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getWriteRequestsCount</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1286">getWriteRequestsCount</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1289">getWriteRequestsCount</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getWriteRequestsCount--">getWriteRequestsCount</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3740,7 +3740,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getMemStoreDataSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1291">getMemStoreDataSize</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1294">getMemStoreDataSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getMemStoreDataSize--">getMemStoreDataSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3757,7 +3757,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getMemStoreHeapSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1296">getMemStoreHeapSize</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1299">getMemStoreHeapSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getMemStoreHeapSize--">getMemStoreHeapSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3774,7 +3774,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getMemStoreOffHeapSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1301">getMemStoreOffHeapSize</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1304">getMemStoreOffHeapSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getMemStoreOffHeapSize--">getMemStoreOffHeapSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3791,7 +3791,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getRegionServicesForStores</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1306">getRegionServicesForStores</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1309">getRegionServicesForStores</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>store services for this region, to access services required by store level needs</dd>
@@ -3804,7 +3804,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getNumMutationsWithoutWAL</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1311">getNumMutationsWithoutWAL</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1314">getNumMutationsWithoutWAL</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getNumMutationsWithoutWAL--">getNumMutationsWithoutWAL</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3819,7 +3819,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getDataInMemoryWithoutWAL</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1316">getDataInMemoryWithoutWAL</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1319">getDataInMemoryWithoutWAL</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getDataInMemoryWithoutWAL--">getDataInMemoryWithoutWAL</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3834,7 +3834,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getBlockedRequestsCount</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1321">getBlockedRequestsCount</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1324">getBlockedRequestsCount</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getBlockedRequestsCount--">getBlockedRequestsCount</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3849,7 +3849,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getCheckAndMutateChecksPassed</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1326">getCheckAndMutateChecksPassed</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1329">getCheckAndMutateChecksPassed</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getCheckAndMutateChecksPassed--">getCheckAndMutateChecksPassed</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3864,7 +3864,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getCheckAndMutateChecksFailed</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1331">getCheckAndMutateChecksFailed</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1334">getCheckAndMutateChecksFailed</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getCheckAndMutateChecksFailed--">getCheckAndMutateChecksFailed</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3879,7 +3879,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getMetrics</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegion.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1338">getMetrics</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegion.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1341">getMetrics</a>()</pre>
</li>
</ul>
<a name="isClosed--">
@@ -3888,7 +3888,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>isClosed</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1343">isClosed</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1346">isClosed</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#isClosed--">isClosed</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3903,7 +3903,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>isClosing</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1348">isClosing</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1351">isClosing</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#isClosing--">isClosing</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3918,7 +3918,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>isReadOnly</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1353">isReadOnly</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1356">isReadOnly</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#isReadOnly--">isReadOnly</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3933,7 +3933,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>isAvailable</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1358">isAvailable</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1361">isAvailable</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#isAvailable--">isAvailable</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3948,7 +3948,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>isSplittable</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1363">isSplittable</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1366">isSplittable</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#isSplittable--">isSplittable</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3963,7 +3963,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>isMergeable</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1368">isMergeable</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1371">isMergeable</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#isMergeable--">isMergeable</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3978,7 +3978,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>areWritesEnabled</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1383">areWritesEnabled</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1386">areWritesEnabled</a>()</pre>
</li>
</ul>
<a name="getMVCC--">
@@ -3987,7 +3987,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getMVCC</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1390">getMVCC</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1393">getMVCC</a>()</pre>
</li>
</ul>
<a name="getMaxFlushedSeqId--">
@@ -3996,7 +3996,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getMaxFlushedSeqId</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1395">getMaxFlushedSeqId</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1398">getMaxFlushedSeqId</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getMaxFlushedSeqId--">getMaxFlushedSeqId</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -4012,7 +4012,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getReadPoint</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1402">getReadPoint</a>(<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a> isolationLevel)</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1405">getReadPoint</a>(<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a> isolationLevel)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>readpoint considering given IsolationLevel. Pass <code>null</code> for default</dd>
@@ -4025,7 +4025,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>isLoadingCfsOnDemandDefault</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1410">isLoadingCfsOnDemandDefault</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1413">isLoadingCfsOnDemandDefault</a>()</pre>
</li>
</ul>
<a name="close--">
@@ -4034,7 +4034,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1430">close</a>()
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1433">close</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Close down this HRegion. Flush the cache, shut down each HStore, don't
service any more calls.
@@ -4060,7 +4060,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1471">close</a>(boolean abort)
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1474">close</a>(boolean abort)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Close down this HRegion. Flush the cache unless abort parameter is true,
Shut down each HStore, don't service any more calls.
@@ -4088,7 +4088,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>setClosing</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1492">setClosing</a>(boolean closing)</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1495">setClosing</a>(boolean closing)</pre>
<div class="block">Exposed for some very specific unit tests.</div>
</li>
</ul>
@@ -4098,7 +4098,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>setTimeoutForWriteLock</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1502">setTimeoutForWriteLock</a>(long timeoutForWriteLock)</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1505">setTimeoutForWriteLock</a>(long timeoutForWriteLock)</pre>
<div class="block">The <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#doClose-boolean-org.apache.hadoop.hbase.monitoring.MonitoredTask-"><code>doClose(boolean, org.apache.hadoop.hbase.monitoring.MonitoredTask)</code></a> will block forever if someone tries proving the dead lock via the unit test.
Instead of blocking, the <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#doClose-boolean-org.apache.hadoop.hbase.monitoring.MonitoredTask-"><code>doClose(boolean, org.apache.hadoop.hbase.monitoring.MonitoredTask)</code></a> will throw exception if you set the timeout.</div>
<dl>
@@ -4113,7 +4113,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>doClose</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1509">doClose</a>(boolean abort,
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1512">doClose</a>(boolean abort,
<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a> status)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
@@ -4128,7 +4128,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>waitForFlushesAndCompactions</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1691">waitForFlushesAndCompactions</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1697">waitForFlushesAndCompactions</a>()</pre>
<div class="block">Wait for all current flushes and compactions of the region to complete</div>
</li>
</ul>
@@ -4138,7 +4138,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>waitForFlushes</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1723">waitForFlushes</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1729">waitForFlushes</a>()</pre>
<div class="block">Wait for all current flushes of the region to complete</div>
</li>
</ul>
@@ -4148,7 +4148,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>waitForFlushes</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1728">waitForFlushes</a>(long timeout)</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1734">waitForFlushes</a>(long timeout)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#waitForFlushes-long-">Region</a></code></span></div>
<div class="block">Wait for all current flushes of the region to complete</div>
<dl>
@@ -4168,7 +4168,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getStoreOpenAndCloseThreadPool</h4>
-<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1765">getStoreOpenAndCloseThreadPool</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> threadNamePrefix)</pre>
+<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1771">getStoreOpenAndCloseThreadPool</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> threadNamePrefix)</pre>
</li>
</ul>
<a name="getStoreFileOpenAndCloseThreadPool-java.lang.String-">
@@ -4177,7 +4177,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getStoreFileOpenAndCloseThreadPool</h4>
-<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1774">getStoreFileOpenAndCloseThreadPool</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> threadNamePrefix)</pre>
+<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1780">getStoreFileOpenAndCloseThreadPool</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> threadNamePrefix)</pre>
</li>
</ul>
<a name="getOpenAndCloseThreadPool-int-java.lang.String-">
@@ -4186,7 +4186,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getOpenAndCloseThreadPool</h4>
-<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1784">getOpenAndCloseThreadPool</a>(int maxThreads,
+<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1790">getOpenAndCloseThreadPool</a>(int maxThreads,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> threadNamePrefix)</pre>
</li>
</ul>
@@ -4196,7 +4196,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>worthPreFlushing</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1800">worthPreFlushing</a>()</pre>
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1806">worthPreFlushing</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if its worth doing a flush before we put up the close flag.</dd>
@@ -4209,7 +4209,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getTableDescriptor</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1810">getTableDescriptor</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1816">getTableDescriptor</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getTableDescriptor--">getTableDescriptor</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -4224,7 +4224,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>setTableDescriptor</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1815">setTableDescriptor</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a> desc)</pre>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1821">setTableDescriptor</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a> desc)</pre>
</li>
</ul>
<a name="getWAL--">
@@ -4233,7 +4233,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getWAL</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1820">getWAL</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1826">getWAL</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>WAL in use for this region</dd>
@@ -4246,7 +4246,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getSplitPolicy</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">RegionSplitPolicy</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1827">getSplitPolicy</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">RegionSplitPolicy</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1833">getSplitPolicy</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>split policy for this region.</dd>
@@ -4259,7 +4259,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getBaseConf</h4>
-<pre>org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1838">getBaseConf</a>()</pre>
+<pre>org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1844">getBaseConf</a>()</pre>
<div class="block">A split takes the config from the parent region & passes it to the daughter
region's constructor. If 'conf' was passed, you would end up using the HTD
of the parent region in addition to the new daughter HTD. Pass 'baseConf'
@@ -4276,7 +4276,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getFilesystem</h4>
-<pre>public org.apache.hadoop.fs.FileSystem <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1843">getFilesystem</a>()</pre>
+<pre>public org.apache.hadoop.fs.FileSystem <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1849">getFilesystem</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>FileSystem</code> being used by this region</dd>
@@ -4289,7 +4289,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getRegionFileSystem</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1848">getRegionFileSystem</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1854">getRegionFileSystem</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver"><code>HRegionFileSystem</code></a> used by this region</dd>
@@ -4302,7 +4302,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getEarliestFlushTimeForAllStores</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1853">getEarliestFlushTimeForAllStores</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1859">getEarliestFlushTimeForAllStores</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getEarliestFlushTimeForAllStores--">getEarliestFlushTimeForAllStores</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -4319,7 +4319,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>getOldestHfileTs</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1858">getOldestHfileTs</a>(boolean majorCompactionOnly)
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1864">getOldestHfileTs</a>(boolean majorCompactionOnly)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getOldestHfileTs-boolean-">Region</a></code></span></div>
<div class="block">This can be used to determine the last time all files of this region were major compacted.</div>
@@ -4341,7 +4341,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>setCompleteSequenceId</h4>
-<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1886">setCompleteSequenceId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder regionLoadBldr)</pre>
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1892">setCompleteSequenceId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder regionLoadBldr)</pre>
</li>
</ul>
<a name="doRegionCompactionPrep--">
@@ -4350,7 +4350,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>doRegionCompactionPrep</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1912">doRegionCompactionPrep</a>()
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1918">doRegionCompactionPrep</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Do preparation for pending compaction.</div>
<dl>
@@ -4365,7 +4365,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>compact</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1928">compact</a>(boolean majorCompaction)
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1934">compact</a>(boolean majorCompaction)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Synchronously compact all stores in the region.
<p>This operation could block for a long time, so don't call it from a
@@ -4389,7 +4389,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>compactStores</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1953">compactStores</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1959">compactStores</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">This is a helper function that compact all the stores synchronously.
<p>
@@ -4406,7 +4406,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>compactStore</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1968">compactStore</a>(byte[] family,
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1974">compactStore</a>(byte[] family,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a> throughputController)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">This is a helper function that compact the given store.
@@ -4424,7 +4424,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>compact</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1991">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a> compaction,
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1997">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a> compaction,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a> store,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a> throughputController)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4454,7 +4454,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>shouldForbidMajorCompaction</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1996">shouldForbidMajorCompaction</a>()</pre>
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2002">shouldForbidMajorCompaction</a>()</pre>
</li>
</ul>
<a name="compact-org.apache.hadoop.hbase.regionserver.compactions.CompactionContext-org.apache.hadoop.hbase.regionserver.HStore-org.apache.hadoop.hbase.regionserver.throttle.ThroughputController-org.apache.hadoop.hbase.security.User-">
@@ -4463,7 +4463,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>compact</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2078">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a> compaction,
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2084">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a> compaction,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a> store,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a> throughputController,
<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a> user)
@@ -4552,7 +4552,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>flush</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2181">flush</a>(boolean force)
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2187">flush</a>(boolean force)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Flush the cache.
@@ -4584,7 +4584,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>flushcache</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2228">flushcache</a>(boolean forceFlushAllStores,
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2234">flushcache</a>(boolean forceFlushAllStores,
boolean writeFlushRequestWalMarker,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a> tracker)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4621,7 +4621,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>shouldFlushStore</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2311">shouldFlushStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a> store)</pre>
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2317">shouldFlushStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a> store)</pre>
<div class="block">Should the store be flushed because it is old enough.
<p>
Every FlushPolicy should call this to determine whether a store is old enough to flush (except
@@ -4635,7 +4635,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>shouldFlush</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2340">shouldFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a> whyFlush)</pre>
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2346">shouldFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a> whyFlush)</pre>
<div class="block">Should the memstore be flushed now</div>
</li>
</ul>
@@ -4645,7 +4645,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>internalFlushcache</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2377">internalFlushcache</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a> status)
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2383">internalFlushcache</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a> status)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Flushing all stores.</div>
<dl>
@@ -4662,7 +4662,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>internalFlushcache</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2385">internalFlushcache</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>> storesToFlush,
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2391">internalFlushcache</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>> storesToFlush,
<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a> status,
boolean writeFlushWalMarker,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a> tracker)
@@ -4682,7 +4682,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>internalFlushcache</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2409">internalFlushcache</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> wal,
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2415">internalFlushcache</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> wal,
long myseqid,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>> storesToFlush,
<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a> status,
@@ -4718,7 +4718,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>internalPrepareFlushCache</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2423">internalPrepareFlushCache</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> wal,
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2429">internalPrepareFlushCache</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> wal,
long myseqid,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>> storesToFlush,
<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a> status,
@@ -4737,7 +4737,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>logFatLineOnFlush</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2563">logFatLineOnFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>> storesToFlush,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2569">logFatLineOnFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>> storesToFlush,
long sequenceId)</pre>
<div class="block">Utility method broken out of internalPrepareFlushCache so that method is smaller.</div>
</li>
@@ -4748,7 +4748,7 @@ public long <a href="../../../../../src-html/org/apache/hadoop/hbase/r
<ul class="blockList">
<li class="blockList">
<h4>doAbortFlushToWAL</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2591">doAbortFlushToWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> wal,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2597">doAbortFlushToWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> wal,
long flushOpSeqId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in j
<TRUNCATED>
[19/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html
new file mode 100644
index 0000000..9c85343
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html
@@ -0,0 +1,450 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ReplicationStatusTmpl (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="ReplicationStatusTmpl (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReplicationStatusTmpl.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmpl.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested.class.summary">Nested</a> | </li>
+<li>Field | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.tmpl.regionserver</div>
+<h2 title="Class ReplicationStatusTmpl" class="title">Class ReplicationStatusTmpl</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.jamon.AbstractTemplateProxy</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#line.21">ReplicationStatusTmpl</a>
+extends org.jamon.AbstractTemplateProxy</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!-- -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static interface </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.Intf</a></span></code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.jamon.AbstractTemplateProxy">
+<!-- -->
+</a>
+<h3>Nested classes/interfaces inherited from class org.jamon.AbstractTemplateProxy</h3>
+<code>org.jamon.AbstractTemplateProxy.ImplDataCompatible<T extends org.jamon.AbstractTemplateProxy.ImplData>, org.jamon.AbstractTemplateProxy.ReplacementConstructor</code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colLast" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code> </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#ReplicationStatusTmpl--">ReplicationStatusTmpl</a></span>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#ReplicationStatusTmpl-java.lang.String-">ReplicationStatusTmpl</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> p_path)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code> </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#ReplicationStatusTmpl-org.jamon.TemplateManager-">ReplicationStatusTmpl</a></span>(org.jamon.TemplateManager p_manager)</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected org.jamon.AbstractTemplateImpl</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#constructImpl--">constructImpl</a></span>()</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.jamon.AbstractTemplateImpl</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#constructImpl-java.lang.Class-">constructImpl</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><? extends org.jamon.AbstractTemplateImpl> p_class)</code> </td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#getImplData--">getImplData</a></span>()</code> </td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected org.jamon.AbstractTemplateProxy.ImplData</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#makeImplData--">makeImplData</a></span>()</code> </td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>org.jamon.Renderer</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#makeRenderer-org.apache.hadoop.hbase.regionserver.HRegionServer-">makeRenderer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)</code> </td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.regionserver.HRegionServer-">render</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)</code> </td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.regionserver.HRegionServer-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.jamon.AbstractTemplateProxy">
+<!-- -->
+</a>
+<h3>Methods inherited from class org.jamon.AbstractTemplateProxy</h3>
+<code>getTemplateManager, reset</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ReplicationStatusTmpl-org.jamon.TemplateManager-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ReplicationStatusTmpl</h4>
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#line.25">ReplicationStatusTmpl</a>(org.jamon.TemplateManager p_manager)</pre>
+</li>
+</ul>
+<a name="ReplicationStatusTmpl-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ReplicationStatusTmpl</h4>
+<pre>protected <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#line.30">ReplicationStatusTmpl</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> p_path)</pre>
+</li>
+</ul>
+<a name="ReplicationStatusTmpl--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReplicationStatusTmpl</h4>
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#line.35">ReplicationStatusTmpl</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="makeImplData--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>makeImplData</h4>
+<pre>protected org.jamon.AbstractTemplateProxy.ImplData <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#line.63">makeImplData</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>makeImplData</code> in class <code>org.jamon.AbstractTemplateProxy</code></dd>
+</dl>
+</li>
+</ul>
+<a name="getImplData--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImplData</h4>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#line.67">getImplData</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>getImplData</code> in class <code>org.jamon.AbstractTemplateProxy</code></dd>
+</dl>
+</li>
+</ul>
+<a name="constructImpl-java.lang.Class-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>constructImpl</h4>
+<pre>public org.jamon.AbstractTemplateImpl <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#line.74">constructImpl</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><? extends org.jamon.AbstractTemplateImpl> p_class)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>constructImpl</code> in class <code>org.jamon.AbstractTemplateProxy</code></dd>
+</dl>
+</li>
+</ul>
+<a name="constructImpl--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>constructImpl</h4>
+<pre>protected org.jamon.AbstractTemplateImpl <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#line.92">constructImpl</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>constructImpl</code> in class <code>org.jamon.AbstractTemplateProxy</code></dd>
+</dl>
+</li>
+</ul>
+<a name="makeRenderer-org.apache.hadoop.hbase.regionserver.HRegionServer-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>makeRenderer</h4>
+<pre>public org.jamon.Renderer <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#line.95">makeRenderer</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)</pre>
+</li>
+</ul>
+<a name="render-java.io.Writer-org.apache.hadoop.hbase.regionserver.HRegionServer-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>render</h4>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#line.107">render</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.regionserver.HRegionServer-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>renderNoFlush</h4>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#line.113">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> regionServer)
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReplicationStatusTmpl.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmpl.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested.class.summary">Nested</a> | </li>
+<li>Field | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html
new file mode 100644
index 0000000..d968fad
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html
@@ -0,0 +1,387 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ReplicationStatusTmplImpl (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="ReplicationStatusTmplImpl (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":10,"i1":10,"i2":9,"i3":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReplicationStatusTmplImpl.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmplImpl.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.tmpl.regionserver</div>
+<h2 title="Class ReplicationStatusTmplImpl" class="title">Class ReplicationStatusTmplImpl</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.jamon.AbstractTemplateImpl</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmplImpl</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.Intf</a>, org.jamon.AbstractTemplateProxy.Intf</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#line.17">ReplicationStatusTmplImpl</a>
+extends org.jamon.AbstractTemplateImpl
+implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.Intf</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#regionServer">regionServer</a></span></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#ReplicationStatusTmplImpl-org.jamon.TemplateManager-org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.ImplData-">ReplicationStatusTmplImpl</a></span>(org.jamon.TemplateManager p_templateManager,
+ <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a> p_implData)</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#Z:Z__jamon_innerUnit__currentLog-java.io.Writer-java.util.Map-">__jamon_innerUnit__currentLog</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>> metrics)</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#Z:Z__jamon_innerUnit__replicationDelay-java.io.Writer-java.util.Map-">__jamon_innerUnit__replicationDelay</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>> metrics)</code> </td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected static <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#Z:Z__jamon_setOptionalArguments-org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.ImplData-">__jamon_setOptionalArguments</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a> p_implData)</code> </td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#renderNoFlush-java.io.Writer-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter)</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.jamon.AbstractTemplateImpl">
+<!-- -->
+</a>
+<h3>Methods inherited from class org.jamon.AbstractTemplateImpl</h3>
+<code>getTemplateManager</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="regionServer">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>regionServer</h4>
+<pre>private final <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#line.22">regionServer</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ReplicationStatusTmplImpl-org.jamon.TemplateManager-org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.ImplData-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReplicationStatusTmplImpl</h4>
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#line.27">ReplicationStatusTmplImpl</a>(org.jamon.TemplateManager p_templateManager,
+ <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a> p_implData)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="Z:Z__jamon_setOptionalArguments-org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.ImplData-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>__jamon_setOptionalArguments</h4>
+<pre>protected static <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#line.23">__jamon_setOptionalArguments</a>(<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a> p_implData)</pre>
+</li>
+</ul>
+<a name="renderNoFlush-java.io.Writer-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>renderNoFlush</h4>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#line.33">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter)
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html#renderNoFlush-java.io.Writer-">renderNoFlush</a></code> in interface <code><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.Intf</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="Z:Z__jamon_innerUnit__currentLog-java.io.Writer-java.util.Map-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>__jamon_innerUnit__currentLog</h4>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#line.72">__jamon_innerUnit__currentLog</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>> metrics)
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="Z:Z__jamon_innerUnit__replicationDelay-java.io.Writer-java.util.Map-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>__jamon_innerUnit__replicationDelay</h4>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#line.113">__jamon_innerUnit__replicationDelay</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> jamonWriter,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>> metrics)
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReplicationStatusTmplImpl.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmplImpl.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.ImplData.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.ImplData.html
new file mode 100644
index 0000000..a445efc
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.ImplData.html
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.ImplData (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.ImplData (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.ImplData.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmpl.ImplData.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.ImplData" class="title">Uses of Class<br>org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.ImplData</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.tmpl.regionserver">org.apache.hadoop.hbase.tmpl.regionserver</a></td>
+<td class="colLast"> </td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.tmpl.regionserver">
+<!-- -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a> in <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a> that return <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatusTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#Z:Z__jamon_setOptionalArguments-org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.ImplData-">__jamon_setOptionalArguments</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a> p_implData)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatusTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html#getImplData--">getImplData</a></span>()</code> </td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a> with parameters of type <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReplicationStatusTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#Z:Z__jamon_setOptionalArguments-org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.ImplData-">__jamon_setOptionalArguments</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a> p_implData)</code> </td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a> with parameters of type <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html#ReplicationStatusTmplImpl-org.jamon.TemplateManager-org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.ImplData-">ReplicationStatusTmplImpl</a></span>(org.jamon.TemplateManager p_templateManager,
+ <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a> p_implData)</code> </td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.ImplData.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmpl.ImplData.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.Intf.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.Intf.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.Intf.html
new file mode 100644
index 0000000..2193fcc
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.Intf.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.Intf (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Interface org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.Intf (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.Intf.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmpl.Intf.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.Intf" class="title">Uses of Interface<br>org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl.Intf</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.Intf</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.tmpl.regionserver">org.apache.hadoop.hbase.tmpl.regionserver</a></td>
+<td class="colLast"> </td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.tmpl.regionserver">
+<!-- -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.Intf</a> in <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a> that implement <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.Intf</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmplImpl</a></span></code> </td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.Intf.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmpl.Intf.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.html
new file mode 100644
index 0000000..1d09def
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmpl.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl" class="title">Uses of Class<br>org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmpl.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmpl.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmplImpl.html
new file mode 100644
index 0000000..cec7c4a
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmplImpl.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmplImpl (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmplImpl (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmplImpl.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmplImpl.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmplImpl" class="title">Uses of Class<br>org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmplImpl</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmplImpl</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/tmpl/regionserver/class-use/ReplicationStatusTmplImpl.html" target="_top">Frames</a></li>
+<li><a href="ReplicationStatusTmplImpl.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-frame.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-frame.html
index a0bdbde..5fb9d48 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-frame.html
@@ -16,6 +16,7 @@
<li><a href="BlockCacheTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame"><span class="interfaceName">BlockCacheTmpl.Intf</span></a></li>
<li><a href="BlockCacheViewTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame"><span class="interfaceName">BlockCacheViewTmpl.Intf</span></a></li>
<li><a href="RegionListTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame"><span class="interfaceName">RegionListTmpl.Intf</span></a></li>
+<li><a href="ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame"><span class="interfaceName">ReplicationStatusTmpl.Intf</span></a></li>
<li><a href="RSStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame"><span class="interfaceName">RSStatusTmpl.Intf</span></a></li>
<li><a href="ServerMetricsTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame"><span class="interfaceName">ServerMetricsTmpl.Intf</span></a></li>
</ul>
@@ -30,6 +31,9 @@
<li><a href="RegionListTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame">RegionListTmpl</a></li>
<li><a href="RegionListTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame">RegionListTmpl.ImplData</a></li>
<li><a href="RegionListTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame">RegionListTmplImpl</a></li>
+<li><a href="ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame">ReplicationStatusTmpl</a></li>
+<li><a href="ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame">ReplicationStatusTmpl.ImplData</a></li>
+<li><a href="ReplicationStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame">ReplicationStatusTmplImpl</a></li>
<li><a href="RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame">RSStatusTmpl</a></li>
<li><a href="RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame">RSStatusTmpl.ImplData</a></li>
<li><a href="RSStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame">RSStatusTmplImpl</a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html
index c762cae..01a6669 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html
@@ -95,10 +95,14 @@
<td class="colLast"> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.Intf</a></td>
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.Intf</a></td>
<td class="colLast"> </td>
</tr>
<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.Intf</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">ServerMetricsTmpl.Intf</a></td>
<td class="colLast"> </td>
</tr>
@@ -150,26 +154,38 @@
<td class="colLast"> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a></td>
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl</a></td>
<td class="colLast"> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a></td>
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmpl.ImplData</a></td>
<td class="colLast"> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmplImpl</a></td>
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ReplicationStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ReplicationStatusTmplImpl</a></td>
<td class="colLast"> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ServerMetricsTmpl</a></td>
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a></td>
<td class="colLast"> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ServerMetricsTmpl.ImplData</a></td>
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a></td>
<td class="colLast"> </td>
</tr>
<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmplImpl</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ServerMetricsTmpl</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ServerMetricsTmpl.ImplData</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ServerMetricsTmplImpl</a></td>
<td class="colLast"> </td>
</tr>
[11/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html
index 05e032c..40ef9f4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html
@@ -25,767 +25,805 @@
<span class="sourceLineNo">017</span> */<a name="line.17"></a>
<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.io.asyncfs;<a name="line.18"></a>
<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.21"></a>
+<span class="sourceLineNo">020</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.21"></a>
<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import com.google.protobuf.CodedOutputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.io.IOException;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.lang.reflect.Field;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.lang.reflect.InvocationTargetException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.lang.reflect.Method;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.net.InetAddress;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import java.net.InetSocketAddress;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import java.nio.ByteBuffer;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import java.security.GeneralSecurityException;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import java.util.Arrays;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import java.util.Collections;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import java.util.List;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import java.util.Map;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import java.util.Set;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import java.util.concurrent.TimeUnit;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>import javax.security.auth.callback.Callback;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import javax.security.auth.callback.CallbackHandler;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import javax.security.auth.callback.NameCallback;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import javax.security.auth.callback.PasswordCallback;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import javax.security.sasl.RealmCallback;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import javax.security.sasl.Sasl;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import javax.security.sasl.SaslClient;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import javax.security.sasl.SaslException;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.commons.codec.binary.Base64;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.commons.lang3.StringUtils;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.conf.Configuration;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.slf4j.Logger;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.slf4j.LoggerFactory;<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>import com.google.protobuf.ByteString;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.security.token.Token;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>/**<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@InterfaceAudience.Private<a name="line.109"></a>
-<span class="sourceLineNo">110</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.110"></a>
-<span class="sourceLineNo">111</span> private static final Logger LOG =<a name="line.111"></a>
-<span class="sourceLineNo">112</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.112"></a>
+<span class="sourceLineNo">023</span>import com.google.protobuf.ByteString;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import com.google.protobuf.CodedOutputStream;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.lang.reflect.Field;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.lang.reflect.InvocationTargetException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.lang.reflect.Method;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.net.InetAddress;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.net.InetSocketAddress;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.ByteBuffer;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.security.GeneralSecurityException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.Arrays;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.List;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Map;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.Set;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import java.util.concurrent.TimeUnit;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import javax.security.auth.callback.Callback;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import javax.security.auth.callback.CallbackHandler;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import javax.security.auth.callback.NameCallback;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import javax.security.auth.callback.PasswordCallback;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import javax.security.sasl.RealmCallback;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import javax.security.sasl.Sasl;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import javax.security.sasl.SaslClient;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import javax.security.sasl.SaslException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.commons.codec.binary.Base64;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.commons.lang3.StringUtils;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.conf.Configuration;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.crypto.key.KeyProvider;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.security.token.Token;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.slf4j.Logger;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.slf4j.LoggerFactory;<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>/**<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.104"></a>
+<span class="sourceLineNo">105</span> */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>@InterfaceAudience.Private<a name="line.106"></a>
+<span class="sourceLineNo">107</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> private static final Logger LOG =<a name="line.108"></a>
+<span class="sourceLineNo">109</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span> }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span> private static final String SERVER_NAME = "0";<a name="line.117"></a>
-<span class="sourceLineNo">118</span> private static final String PROTOCOL = "hdfs";<a name="line.118"></a>
-<span class="sourceLineNo">119</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.119"></a>
-<span class="sourceLineNo">120</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> private static final String NAME_DELIMITER = " ";<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span> private interface SaslAdaptor {<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.127"></a>
+<span class="sourceLineNo">114</span> private static final String SERVER_NAME = "0";<a name="line.114"></a>
+<span class="sourceLineNo">115</span> private static final String PROTOCOL = "hdfs";<a name="line.115"></a>
+<span class="sourceLineNo">116</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.116"></a>
+<span class="sourceLineNo">117</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> private static final String NAME_DELIMITER = " ";<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span> private interface SaslAdaptor {<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> }<a name="line.127"></a>
<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> }<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.132"></a>
+<span class="sourceLineNo">129</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span> // helper class for convert protos.<a name="line.131"></a>
+<span class="sourceLineNo">132</span> private interface PBHelper {<a name="line.132"></a>
<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span> // helper class for convert protos.<a name="line.134"></a>
-<span class="sourceLineNo">135</span> private interface PBHelper {<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.137"></a>
+<span class="sourceLineNo">134</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.139"></a>
-<span class="sourceLineNo">140</span> }<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span> private static final PBHelper PB_HELPER;<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> private interface TransparentCryptoHelper {<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.146"></a>
-<span class="sourceLineNo">147</span> throws IOException;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span> private static SaslAdaptor createSaslAdaptor()<a name="line.152"></a>
-<span class="sourceLineNo">153</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.153"></a>
-<span class="sourceLineNo">154</span> Field saslPropsResolverField =<a name="line.154"></a>
-<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.155"></a>
-<span class="sourceLineNo">156</span> saslPropsResolverField.setAccessible(true);<a name="line.156"></a>
-<span class="sourceLineNo">157</span> Field trustedChannelResolverField =<a name="line.157"></a>
-<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.158"></a>
-<span class="sourceLineNo">159</span> trustedChannelResolverField.setAccessible(true);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> Field fallbackToSimpleAuthField =<a name="line.160"></a>
-<span class="sourceLineNo">161</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.161"></a>
-<span class="sourceLineNo">162</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.162"></a>
-<span class="sourceLineNo">163</span> return new SaslAdaptor() {<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> @Override<a name="line.165"></a>
-<span class="sourceLineNo">166</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span> try {<a name="line.167"></a>
-<span class="sourceLineNo">168</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.168"></a>
-<span class="sourceLineNo">169</span> } catch (IllegalAccessException e) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> throw new RuntimeException(e);<a name="line.170"></a>
-<span class="sourceLineNo">171</span> }<a name="line.171"></a>
-<span class="sourceLineNo">172</span> }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span> @Override<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> try {<a name="line.176"></a>
-<span class="sourceLineNo">177</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> } catch (IllegalAccessException e) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span> throw new RuntimeException(e);<a name="line.179"></a>
-<span class="sourceLineNo">180</span> }<a name="line.180"></a>
-<span class="sourceLineNo">181</span> }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span> @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span> try {<a name="line.185"></a>
-<span class="sourceLineNo">186</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.186"></a>
-<span class="sourceLineNo">187</span> } catch (IllegalAccessException e) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> throw new RuntimeException(e);<a name="line.188"></a>
-<span class="sourceLineNo">189</span> }<a name="line.189"></a>
-<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span> };<a name="line.191"></a>
-<span class="sourceLineNo">192</span> }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.194"></a>
-<span class="sourceLineNo">195</span> Class<?> helperClass;<a name="line.195"></a>
-<span class="sourceLineNo">196</span> try {<a name="line.196"></a>
-<span class="sourceLineNo">197</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.197"></a>
-<span class="sourceLineNo">198</span> } catch (ClassNotFoundException e) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.199"></a>
-<span class="sourceLineNo">200</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.200"></a>
-<span class="sourceLineNo">201</span> }<a name="line.201"></a>
-<span class="sourceLineNo">202</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> Method convertCipherOptionProtosMethod =<a name="line.203"></a>
-<span class="sourceLineNo">204</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.204"></a>
-<span class="sourceLineNo">205</span> return new PBHelper() {<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span> @SuppressWarnings("unchecked")<a name="line.207"></a>
-<span class="sourceLineNo">208</span> @Override<a name="line.208"></a>
-<span class="sourceLineNo">209</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span> try {<a name="line.210"></a>
-<span class="sourceLineNo">211</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span> throw new RuntimeException(e);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> }<a name="line.214"></a>
-<span class="sourceLineNo">215</span> }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> @SuppressWarnings("unchecked")<a name="line.217"></a>
-<span class="sourceLineNo">218</span> @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span> try {<a name="line.220"></a>
-<span class="sourceLineNo">221</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.221"></a>
-<span class="sourceLineNo">222</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span> throw new RuntimeException(e);<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span> }<a name="line.225"></a>
-<span class="sourceLineNo">226</span> };<a name="line.226"></a>
-<span class="sourceLineNo">227</span> }<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.229"></a>
-<span class="sourceLineNo">230</span> throws NoSuchMethodException {<a name="line.230"></a>
-<span class="sourceLineNo">231</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.231"></a>
-<span class="sourceLineNo">232</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.232"></a>
-<span class="sourceLineNo">233</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span> return new TransparentCryptoHelper() {<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span> @Override<a name="line.236"></a>
-<span class="sourceLineNo">237</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.237"></a>
-<span class="sourceLineNo">238</span> DFSClient client) throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span> try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> KeyVersion decryptedKey =<a name="line.240"></a>
-<span class="sourceLineNo">241</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.241"></a>
-<span class="sourceLineNo">242</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.242"></a>
-<span class="sourceLineNo">243</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.243"></a>
-<span class="sourceLineNo">244</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.244"></a>
-<span class="sourceLineNo">245</span> return encryptor;<a name="line.245"></a>
-<span class="sourceLineNo">246</span> } catch (InvocationTargetException e) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.247"></a>
-<span class="sourceLineNo">248</span> throw new RuntimeException(e.getTargetException());<a name="line.248"></a>
-<span class="sourceLineNo">249</span> } catch (GeneralSecurityException e) {<a name="line.249"></a>
-<span class="sourceLineNo">250</span> throw new IOException(e);<a name="line.250"></a>
-<span class="sourceLineNo">251</span> } catch (IllegalAccessException e) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> throw new RuntimeException(e);<a name="line.252"></a>
-<span class="sourceLineNo">253</span> }<a name="line.253"></a>
-<span class="sourceLineNo">254</span> }<a name="line.254"></a>
-<span class="sourceLineNo">255</span> };<a name="line.255"></a>
-<span class="sourceLineNo">256</span> }<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span> static {<a name="line.258"></a>
-<span class="sourceLineNo">259</span> try {<a name="line.259"></a>
-<span class="sourceLineNo">260</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.260"></a>
-<span class="sourceLineNo">261</span> PB_HELPER = createPBHelper();<a name="line.261"></a>
-<span class="sourceLineNo">262</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.262"></a>
-<span class="sourceLineNo">263</span> } catch (Exception e) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.264"></a>
-<span class="sourceLineNo">265</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.265"></a>
-<span class="sourceLineNo">266</span> + "HBASE-16110 for more information.";<a name="line.266"></a>
-<span class="sourceLineNo">267</span> LOG.error(msg, e);<a name="line.267"></a>
-<span class="sourceLineNo">268</span> throw new Error(msg, e);<a name="line.268"></a>
-<span class="sourceLineNo">269</span> }<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span> /**<a name="line.272"></a>
-<span class="sourceLineNo">273</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.273"></a>
-<span class="sourceLineNo">274</span> */<a name="line.274"></a>
-<span class="sourceLineNo">275</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span> private final char[] password;<a name="line.277"></a>
-<span class="sourceLineNo">278</span> private final String userName;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span> /**<a name="line.280"></a>
-<span class="sourceLineNo">281</span> * Creates a new SaslClientCallbackHandler.<a name="line.281"></a>
-<span class="sourceLineNo">282</span> * @param userName SASL user name<a name="line.282"></a>
-<span class="sourceLineNo">283</span> * @Param password SASL password<a name="line.283"></a>
-<span class="sourceLineNo">284</span> */<a name="line.284"></a>
-<span class="sourceLineNo">285</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span> this.password = password;<a name="line.286"></a>
-<span class="sourceLineNo">287</span> this.userName = userName;<a name="line.287"></a>
-<span class="sourceLineNo">288</span> }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span> @Override<a name="line.290"></a>
-<span class="sourceLineNo">291</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.291"></a>
-<span class="sourceLineNo">292</span> NameCallback nc = null;<a name="line.292"></a>
-<span class="sourceLineNo">293</span> PasswordCallback pc = null;<a name="line.293"></a>
-<span class="sourceLineNo">294</span> RealmCallback rc = null;<a name="line.294"></a>
-<span class="sourceLineNo">295</span> for (Callback callback : callbacks) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span> if (callback instanceof RealmChoiceCallback) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span> continue;<a name="line.297"></a>
-<span class="sourceLineNo">298</span> } else if (callback instanceof NameCallback) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span> nc = (NameCallback) callback;<a name="line.299"></a>
-<span class="sourceLineNo">300</span> } else if (callback instanceof PasswordCallback) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span> pc = (PasswordCallback) callback;<a name="line.301"></a>
-<span class="sourceLineNo">302</span> } else if (callback instanceof RealmCallback) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span> rc = (RealmCallback) callback;<a name="line.303"></a>
-<span class="sourceLineNo">304</span> } else {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span> }<a name="line.307"></a>
-<span class="sourceLineNo">308</span> if (nc != null) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span> nc.setName(userName);<a name="line.309"></a>
-<span class="sourceLineNo">310</span> }<a name="line.310"></a>
-<span class="sourceLineNo">311</span> if (pc != null) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> pc.setPassword(password);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span> if (rc != null) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span> rc.setText(rc.getDefaultText());<a name="line.315"></a>
-<span class="sourceLineNo">316</span> }<a name="line.316"></a>
-<span class="sourceLineNo">317</span> }<a name="line.317"></a>
-<span class="sourceLineNo">318</span> }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span> private final Configuration conf;<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span> private final Map<String, String> saslProps;<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span> private final SaslClient saslClient;<a name="line.326"></a>
+<span class="sourceLineNo">139</span> private static final PBHelper PB_HELPER;<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span> private interface TransparentCryptoHelper {<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.143"></a>
+<span class="sourceLineNo">144</span> throws IOException;<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span> private static SaslAdaptor createSaslAdaptor()<a name="line.149"></a>
+<span class="sourceLineNo">150</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Field saslPropsResolverField =<a name="line.151"></a>
+<span class="sourceLineNo">152</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.152"></a>
+<span class="sourceLineNo">153</span> saslPropsResolverField.setAccessible(true);<a name="line.153"></a>
+<span class="sourceLineNo">154</span> Field trustedChannelResolverField =<a name="line.154"></a>
+<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.155"></a>
+<span class="sourceLineNo">156</span> trustedChannelResolverField.setAccessible(true);<a name="line.156"></a>
+<span class="sourceLineNo">157</span> Field fallbackToSimpleAuthField =<a name="line.157"></a>
+<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.158"></a>
+<span class="sourceLineNo">159</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.159"></a>
+<span class="sourceLineNo">160</span> return new SaslAdaptor() {<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span> @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span> try {<a name="line.164"></a>
+<span class="sourceLineNo">165</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.165"></a>
+<span class="sourceLineNo">166</span> } catch (IllegalAccessException e) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span> throw new RuntimeException(e);<a name="line.167"></a>
+<span class="sourceLineNo">168</span> }<a name="line.168"></a>
+<span class="sourceLineNo">169</span> }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span> @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span> try {<a name="line.173"></a>
+<span class="sourceLineNo">174</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.174"></a>
+<span class="sourceLineNo">175</span> } catch (IllegalAccessException e) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span> throw new RuntimeException(e);<a name="line.176"></a>
+<span class="sourceLineNo">177</span> }<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span> @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span> try {<a name="line.182"></a>
+<span class="sourceLineNo">183</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.183"></a>
+<span class="sourceLineNo">184</span> } catch (IllegalAccessException e) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span> throw new RuntimeException(e);<a name="line.185"></a>
+<span class="sourceLineNo">186</span> }<a name="line.186"></a>
+<span class="sourceLineNo">187</span> }<a name="line.187"></a>
+<span class="sourceLineNo">188</span> };<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.191"></a>
+<span class="sourceLineNo">192</span> Class<?> helperClass;<a name="line.192"></a>
+<span class="sourceLineNo">193</span> try {<a name="line.193"></a>
+<span class="sourceLineNo">194</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.194"></a>
+<span class="sourceLineNo">195</span> } catch (ClassNotFoundException e) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.197"></a>
+<span class="sourceLineNo">198</span> }<a name="line.198"></a>
+<span class="sourceLineNo">199</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.199"></a>
+<span class="sourceLineNo">200</span> Method convertCipherOptionProtosMethod =<a name="line.200"></a>
+<span class="sourceLineNo">201</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.201"></a>
+<span class="sourceLineNo">202</span> return new PBHelper() {<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span> @SuppressWarnings("unchecked")<a name="line.204"></a>
+<span class="sourceLineNo">205</span> @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> try {<a name="line.207"></a>
+<span class="sourceLineNo">208</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.208"></a>
+<span class="sourceLineNo">209</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span> throw new RuntimeException(e);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> }<a name="line.211"></a>
+<span class="sourceLineNo">212</span> }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span> @SuppressWarnings("unchecked")<a name="line.214"></a>
+<span class="sourceLineNo">215</span> @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> try {<a name="line.217"></a>
+<span class="sourceLineNo">218</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span> throw new RuntimeException(e);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> };<a name="line.223"></a>
+<span class="sourceLineNo">224</span> }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span> private static TransparentCryptoHelper createTransparentCryptoHelper27()<a name="line.226"></a>
+<span class="sourceLineNo">227</span> throws NoSuchMethodException {<a name="line.227"></a>
+<span class="sourceLineNo">228</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.228"></a>
+<span class="sourceLineNo">229</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> return new TransparentCryptoHelper() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.234"></a>
+<span class="sourceLineNo">235</span> DFSClient client) throws IOException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span> try {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> KeyVersion decryptedKey =<a name="line.237"></a>
+<span class="sourceLineNo">238</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.238"></a>
+<span class="sourceLineNo">239</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.239"></a>
+<span class="sourceLineNo">240</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.241"></a>
+<span class="sourceLineNo">242</span> return encryptor;<a name="line.242"></a>
+<span class="sourceLineNo">243</span> } catch (InvocationTargetException e) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.244"></a>
+<span class="sourceLineNo">245</span> throw new RuntimeException(e.getTargetException());<a name="line.245"></a>
+<span class="sourceLineNo">246</span> } catch (GeneralSecurityException e) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> throw new IOException(e);<a name="line.247"></a>
+<span class="sourceLineNo">248</span> } catch (IllegalAccessException e) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span> throw new RuntimeException(e);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span> }<a name="line.251"></a>
+<span class="sourceLineNo">252</span> };<a name="line.252"></a>
+<span class="sourceLineNo">253</span> }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span> private static TransparentCryptoHelper createTransparentCryptoHelper28()<a name="line.255"></a>
+<span class="sourceLineNo">256</span> throws ClassNotFoundException, NoSuchMethodException {<a name="line.256"></a>
+<span class="sourceLineNo">257</span> Class<?> hdfsKMSUtilCls = Class.forName("org.apache.hadoop.hdfs.HdfsKMSUtil");<a name="line.257"></a>
+<span class="sourceLineNo">258</span> Method decryptEncryptedDataEncryptionKeyMethod = hdfsKMSUtilCls.getDeclaredMethod(<a name="line.258"></a>
+<span class="sourceLineNo">259</span> "decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class, KeyProvider.class);<a name="line.259"></a>
+<span class="sourceLineNo">260</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.260"></a>
+<span class="sourceLineNo">261</span> return new TransparentCryptoHelper() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span> @Override<a name="line.263"></a>
+<span class="sourceLineNo">264</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.264"></a>
+<span class="sourceLineNo">265</span> DFSClient client) throws IOException {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> try {<a name="line.266"></a>
+<span class="sourceLineNo">267</span> KeyVersion decryptedKey = (KeyVersion) decryptEncryptedDataEncryptionKeyMethod<a name="line.267"></a>
+<span class="sourceLineNo">268</span> .invoke(null, feInfo, client.getKeyProvider());<a name="line.268"></a>
+<span class="sourceLineNo">269</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.269"></a>
+<span class="sourceLineNo">270</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.270"></a>
+<span class="sourceLineNo">271</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.271"></a>
+<span class="sourceLineNo">272</span> return encryptor;<a name="line.272"></a>
+<span class="sourceLineNo">273</span> } catch (InvocationTargetException e) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.274"></a>
+<span class="sourceLineNo">275</span> throw new RuntimeException(e.getTargetException());<a name="line.275"></a>
+<span class="sourceLineNo">276</span> } catch (GeneralSecurityException e) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> throw new IOException(e);<a name="line.277"></a>
+<span class="sourceLineNo">278</span> } catch (IllegalAccessException e) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> throw new RuntimeException(e);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> }<a name="line.280"></a>
+<span class="sourceLineNo">281</span> }<a name="line.281"></a>
+<span class="sourceLineNo">282</span> };<a name="line.282"></a>
+<span class="sourceLineNo">283</span> }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.285"></a>
+<span class="sourceLineNo">286</span> throws NoSuchMethodException, ClassNotFoundException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> try {<a name="line.287"></a>
+<span class="sourceLineNo">288</span> return createTransparentCryptoHelper27();<a name="line.288"></a>
+<span class="sourceLineNo">289</span> } catch (NoSuchMethodException e) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> LOG.debug("No decryptEncryptedDataEncryptionKey method in DFSClient, should be hadoop 2.8+",<a name="line.290"></a>
+<span class="sourceLineNo">291</span> e);<a name="line.291"></a>
+<span class="sourceLineNo">292</span> }<a name="line.292"></a>
+<span class="sourceLineNo">293</span> return createTransparentCryptoHelper28();<a name="line.293"></a>
+<span class="sourceLineNo">294</span> }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span> static {<a name="line.296"></a>
+<span class="sourceLineNo">297</span> try {<a name="line.297"></a>
+<span class="sourceLineNo">298</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.298"></a>
+<span class="sourceLineNo">299</span> PB_HELPER = createPBHelper();<a name="line.299"></a>
+<span class="sourceLineNo">300</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.300"></a>
+<span class="sourceLineNo">301</span> } catch (Exception e) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.302"></a>
+<span class="sourceLineNo">303</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.303"></a>
+<span class="sourceLineNo">304</span> + "HBASE-16110 for more information.";<a name="line.304"></a>
+<span class="sourceLineNo">305</span> LOG.error(msg, e);<a name="line.305"></a>
+<span class="sourceLineNo">306</span> throw new Error(msg, e);<a name="line.306"></a>
+<span class="sourceLineNo">307</span> }<a name="line.307"></a>
+<span class="sourceLineNo">308</span> }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span> /**<a name="line.310"></a>
+<span class="sourceLineNo">311</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.311"></a>
+<span class="sourceLineNo">312</span> */<a name="line.312"></a>
+<span class="sourceLineNo">313</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span> private final char[] password;<a name="line.315"></a>
+<span class="sourceLineNo">316</span> private final String userName;<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span> /**<a name="line.318"></a>
+<span class="sourceLineNo">319</span> * Creates a new SaslClientCallbackHandler.<a name="line.319"></a>
+<span class="sourceLineNo">320</span> * @param userName SASL user name<a name="line.320"></a>
+<span class="sourceLineNo">321</span> * @Param password SASL password<a name="line.321"></a>
+<span class="sourceLineNo">322</span> */<a name="line.322"></a>
+<span class="sourceLineNo">323</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span> this.password = password;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> this.userName = userName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> }<a name="line.326"></a>
<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span> private final int timeoutMs;<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span> private final Promise<Void> promise;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span> private int step = 0;<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.334"></a>
-<span class="sourceLineNo">335</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.335"></a>
-<span class="sourceLineNo">336</span> this.conf = conf;<a name="line.336"></a>
-<span class="sourceLineNo">337</span> this.saslProps = saslProps;<a name="line.337"></a>
-<span class="sourceLineNo">338</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.338"></a>
-<span class="sourceLineNo">339</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.339"></a>
-<span class="sourceLineNo">340</span> this.timeoutMs = timeoutMs;<a name="line.340"></a>
-<span class="sourceLineNo">341</span> this.promise = promise;<a name="line.341"></a>
-<span class="sourceLineNo">342</span> }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.344"></a>
-<span class="sourceLineNo">345</span> sendSaslMessage(ctx, payload, null);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.349"></a>
-<span class="sourceLineNo">350</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.350"></a>
-<span class="sourceLineNo">351</span> // values for future expansion.<a name="line.351"></a>
-<span class="sourceLineNo">352</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span> return null;<a name="line.354"></a>
-<span class="sourceLineNo">355</span> }<a name="line.355"></a>
-<span class="sourceLineNo">356</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.357"></a>
-<span class="sourceLineNo">358</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.358"></a>
-<span class="sourceLineNo">359</span> }<a name="line.359"></a>
-<span class="sourceLineNo">360</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.360"></a>
-<span class="sourceLineNo">361</span> }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.363"></a>
-<span class="sourceLineNo">364</span> List<CipherOption> options) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.365"></a>
-<span class="sourceLineNo">366</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.366"></a>
-<span class="sourceLineNo">367</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> if (payload != null) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.369"></a>
-<span class="sourceLineNo">370</span> // and we want to keep that out of hbase-server.<a name="line.370"></a>
-<span class="sourceLineNo">371</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.371"></a>
-<span class="sourceLineNo">372</span> }<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (options != null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.376"></a>
-<span class="sourceLineNo">377</span> int size = proto.getSerializedSize();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.378"></a>
-<span class="sourceLineNo">379</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.379"></a>
-<span class="sourceLineNo">380</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> ctx.write(buf);<a name="line.381"></a>
-<span class="sourceLineNo">382</span> }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span> @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.385"></a>
-<span class="sourceLineNo">386</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.386"></a>
-<span class="sourceLineNo">387</span> sendSaslMessage(ctx, new byte[0]);<a name="line.387"></a>
-<span class="sourceLineNo">388</span> ctx.flush();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> step++;<a name="line.389"></a>
-<span class="sourceLineNo">390</span> }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span> @Override<a name="line.392"></a>
-<span class="sourceLineNo">393</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.393"></a>
-<span class="sourceLineNo">394</span> saslClient.dispose();<a name="line.394"></a>
-<span class="sourceLineNo">395</span> }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.399"></a>
-<span class="sourceLineNo">400</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span> throw new IOException(proto.getMessage());<a name="line.401"></a>
-<span class="sourceLineNo">402</span> }<a name="line.402"></a>
-<span class="sourceLineNo">403</span> }<a name="line.403"></a>
-<span class="sourceLineNo">404</span><a name="line.404"></a>
-<span class="sourceLineNo">405</span> private String getNegotiatedQop() {<a name="line.405"></a>
-<span class="sourceLineNo">406</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.406"></a>
-<span class="sourceLineNo">407</span> }<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span> private boolean isNegotiatedQopPrivacy() {<a name="line.409"></a>
-<span class="sourceLineNo">410</span> String qop = getNegotiatedQop();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> return qop != null && "auth-conf".equalsIgnoreCase(qop);<a name="line.411"></a>
-<span class="sourceLineNo">412</span> }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span> private boolean requestedQopContainsPrivacy() {<a name="line.414"></a>
-<span class="sourceLineNo">415</span> Set<String> requestedQop =<a name="line.415"></a>
-<span class="sourceLineNo">416</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.416"></a>
-<span class="sourceLineNo">417</span> return requestedQop.contains("auth-conf");<a name="line.417"></a>
-<span class="sourceLineNo">418</span> }<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span> private void checkSaslComplete() throws IOException {<a name="line.420"></a>
-<span class="sourceLineNo">421</span> if (!saslClient.isComplete()) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> throw new IOException("Failed to complete SASL handshake");<a name="line.422"></a>
-<span class="sourceLineNo">423</span> }<a name="line.423"></a>
-<span class="sourceLineNo">424</span> Set<String> requestedQop =<a name="line.424"></a>
-<span class="sourceLineNo">425</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.425"></a>
-<span class="sourceLineNo">426</span> String negotiatedQop = getNegotiatedQop();<a name="line.426"></a>
-<span class="sourceLineNo">427</span> LOG.debug(<a name="line.427"></a>
-<span class="sourceLineNo">428</span> "Verifying QOP, requested QOP = " + requestedQop + ", negotiated QOP = " + negotiatedQop);<a name="line.428"></a>
-<span class="sourceLineNo">429</span> if (!requestedQop.contains(negotiatedQop)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span> throw new IOException(String.format("SASL handshake completed, but "<a name="line.430"></a>
-<span class="sourceLineNo">431</span> + "channel does not have acceptable quality of protection, "<a name="line.431"></a>
-<span class="sourceLineNo">432</span> + "requested = %s, negotiated = %s",<a name="line.432"></a>
-<span class="sourceLineNo">433</span> requestedQop, negotiatedQop));<a name="line.433"></a>
-<span class="sourceLineNo">434</span> }<a name="line.434"></a>
-<span class="sourceLineNo">435</span> }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span> private boolean useWrap() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> String qop = (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> return qop != null && !"auth".equalsIgnoreCase(qop);<a name="line.439"></a>
-<span class="sourceLineNo">440</span> }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span> private CipherOption unwrap(CipherOption option, SaslClient saslClient) throws IOException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> byte[] inKey = option.getInKey();<a name="line.443"></a>
-<span class="sourceLineNo">444</span> if (inKey != null) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span> inKey = saslClient.unwrap(inKey, 0, inKey.length);<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> byte[] outKey = option.getOutKey();<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (outKey != null) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> outKey = saslClient.unwrap(outKey, 0, outKey.length);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> }<a name="line.450"></a>
-<span class="sourceLineNo">451</span> return new CipherOption(option.getCipherSuite(), inKey, option.getInIv(), outKey,<a name="line.451"></a>
-<span class="sourceLineNo">452</span> option.getOutIv());<a name="line.452"></a>
-<span class="sourceLineNo">453</span> }<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span> private CipherOption getCipherOption(DataTransferEncryptorMessageProto proto,<a name="line.455"></a>
-<span class="sourceLineNo">456</span> boolean isNegotiatedQopPrivacy, SaslClient saslClient) throws IOException {<a name="line.456"></a>
-<span class="sourceLineNo">457</span> List<CipherOption> cipherOptions =<a name="line.457"></a>
-<span class="sourceLineNo">458</span> PB_HELPER.convertCipherOptionProtos(proto.getCipherOptionList());<a name="line.458"></a>
-<span class="sourceLineNo">459</span> if (cipherOptions == null || cipherOptions.isEmpty()) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span> return null;<a name="line.460"></a>
+<span class="sourceLineNo">328</span> @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.329"></a>
+<span class="sourceLineNo">330</span> NameCallback nc = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span> PasswordCallback pc = null;<a name="line.331"></a>
+<span class="sourceLineNo">332</span> RealmCallback rc = null;<a name="line.332"></a>
+<span class="sourceLineNo">333</span> for (Callback callback : callbacks) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span> if (callback instanceof RealmChoiceCallback) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span> continue;<a name="line.335"></a>
+<span class="sourceLineNo">336</span> } else if (callback instanceof NameCallback) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span> nc = (NameCallback) callback;<a name="line.337"></a>
+<span class="sourceLineNo">338</span> } else if (callback instanceof PasswordCallback) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span> pc = (PasswordCallback) callback;<a name="line.339"></a>
+<span class="sourceLineNo">340</span> } else if (callback instanceof RealmCallback) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span> rc = (RealmCallback) callback;<a name="line.341"></a>
+<span class="sourceLineNo">342</span> } else {<a name="line.342"></a>
+<span class="sourceLineNo">343</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.343"></a>
+<span class="sourceLineNo">344</span> }<a name="line.344"></a>
+<span class="sourceLineNo">345</span> }<a name="line.345"></a>
+<span class="sourceLineNo">346</span> if (nc != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> nc.setName(userName);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span> if (pc != null) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span> pc.setPassword(password);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> }<a name="line.351"></a>
+<span class="sourceLineNo">352</span> if (rc != null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span> rc.setText(rc.getDefaultText());<a name="line.353"></a>
+<span class="sourceLineNo">354</span> }<a name="line.354"></a>
+<span class="sourceLineNo">355</span> }<a name="line.355"></a>
+<span class="sourceLineNo">356</span> }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span> private final Configuration conf;<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span> private final Map<String, String> saslProps;<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span> private final SaslClient saslClient;<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span> private final int timeoutMs;<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span> private final Promise<Void> promise;<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span> private int step = 0;<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.372"></a>
+<span class="sourceLineNo">373</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span> this.conf = conf;<a name="line.374"></a>
+<span class="sourceLineNo">375</span> this.saslProps = saslProps;<a name="line.375"></a>
+<span class="sourceLineNo">376</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.376"></a>
+<span class="sourceLineNo">377</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.377"></a>
+<span class="sourceLineNo">378</span> this.timeoutMs = timeoutMs;<a name="line.378"></a>
+<span class="sourceLineNo">379</span> this.promise = promise;<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> sendSaslMessage(ctx, payload, null);<a name="line.383"></a>
+<span class="sourceLineNo">384</span> }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.386"></a>
+<span class="sourceLineNo">387</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.387"></a>
+<span class="sourceLineNo">388</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.388"></a>
+<span class="sourceLineNo">389</span> // values for future expansion.<a name="line.389"></a>
+<span class="sourceLineNo">390</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.390"></a>
+<span class="sourceLineNo">391</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span> return null;<a name="line.392"></a>
+<span class="sourceLineNo">393</span> }<a name="line.393"></a>
+<span class="sourceLineNo">394</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.395"></a>
+<span class="sourceLineNo">396</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.396"></a>
+<span class="sourceLineNo">397</span> }<a name="line.397"></a>
+<span class="sourceLineNo">398</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.398"></a>
+<span class="sourceLineNo">399</span> }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.401"></a>
+<span class="sourceLineNo">402</span> List<CipherOption> options) throws IOException {<a name="line.402"></a>
+<span class="sourceLineNo">403</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.403"></a>
+<span class="sourceLineNo">404</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.404"></a>
+<span class="sourceLineNo">405</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.405"></a>
+<span class="sourceLineNo">406</span> if (payload != null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.407"></a>
+<span class="sourceLineNo">408</span> // and we want to keep that out of hbase-server.<a name="line.408"></a>
+<span class="sourceLineNo">409</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.409"></a>
+<span class="sourceLineNo">410</span> }<a name="line.410"></a>
+<span class="sourceLineNo">411</span> if (options != null) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.412"></a>
+<span class="sourceLineNo">413</span> }<a name="line.413"></a>
+<span class="sourceLineNo">414</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.414"></a>
+<span class="sourceLineNo">415</span> int size = proto.getSerializedSize();<a name="line.415"></a>
+<span class="sourceLineNo">416</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.416"></a>
+<span class="sourceLineNo">417</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.417"></a>
+<span class="sourceLineNo">418</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.418"></a>
+<span class="sourceLineNo">419</span> ctx.write(buf);<a name="line.419"></a>
+<span class="sourceLineNo">420</span> }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span> @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.424"></a>
+<span class="sourceLineNo">425</span> sendSaslMessage(ctx, new byte[0]);<a name="line.425"></a>
+<span class="sourceLineNo">426</span> ctx.flush();<a name="line.426"></a>
+<span class="sourceLineNo">427</span> step++;<a name="line.427"></a>
+<span class="sourceLineNo">428</span> }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span> @Override<a name="line.430"></a>
+<span class="sourceLineNo">431</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.431"></a>
+<span class="sourceLineNo">432</span> saslClient.dispose();<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.435"></a>
+<span class="sourceLineNo">436</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.437"></a>
+<span class="sourceLineNo">438</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span> throw new IOException(proto.getMessage());<a name="line.439"></a>
+<span class="sourceLineNo">440</span> }<a name="line.440"></a>
+<span class="sourceLineNo">441</span> }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span> private String getNegotiatedQop() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span> private boolean isNegotiatedQopPrivacy()
<TRUNCATED>
[32/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
index 30d4887..47ab720 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
@@ -121,7 +121,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.6209">HRegion.RegionScannerImpl</a>
+<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.6215">HRegion.RegionScannerImpl</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html" title="interface in org.apache.hadoop.hbase.regionserver">Shipper</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a></pre>
<div class="block">RegionScannerImpl is used to combine scanners from multiple Stores (aka column families).</div>
@@ -425,7 +425,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>storeHeap</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6212">storeHeap</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6218">storeHeap</a></pre>
</li>
</ul>
<a name="joinedHeap">
@@ -434,7 +434,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>joinedHeap</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6215">joinedHeap</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6221">joinedHeap</a></pre>
<div class="block">Heap of key-values that are not essential for the provided filters and are thus read
on demand, if on-demand column family loading is enabled.</div>
</li>
@@ -445,7 +445,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>joinedContinuationRow</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6219">joinedContinuationRow</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6225">joinedContinuationRow</a></pre>
<div class="block">If the joined heap data gathering is interrupted due to scan limits, this will
contain the row for which we are populating the values.</div>
</li>
@@ -456,7 +456,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>filterClosed</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6220">filterClosed</a></pre>
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6226">filterClosed</a></pre>
</li>
</ul>
<a name="stopRow">
@@ -465,7 +465,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>stopRow</h4>
-<pre>protected final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6222">stopRow</a></pre>
+<pre>protected final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6228">stopRow</a></pre>
</li>
</ul>
<a name="includeStopRow">
@@ -474,7 +474,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>includeStopRow</h4>
-<pre>protected final boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6223">includeStopRow</a></pre>
+<pre>protected final boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6229">includeStopRow</a></pre>
</li>
</ul>
<a name="region">
@@ -483,7 +483,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>region</h4>
-<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6224">region</a></pre>
+<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6230">region</a></pre>
</li>
</ul>
<a name="comparator">
@@ -492,7 +492,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>comparator</h4>
-<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6225">comparator</a></pre>
+<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6231">comparator</a></pre>
</li>
</ul>
<a name="readPt">
@@ -501,7 +501,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>readPt</h4>
-<pre>private final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6227">readPt</a></pre>
+<pre>private final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6233">readPt</a></pre>
</li>
</ul>
<a name="maxResultSize">
@@ -510,7 +510,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>maxResultSize</h4>
-<pre>private final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6228">maxResultSize</a></pre>
+<pre>private final long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6234">maxResultSize</a></pre>
</li>
</ul>
<a name="defaultScannerContext">
@@ -519,7 +519,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>defaultScannerContext</h4>
-<pre>private final <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6229">defaultScannerContext</a></pre>
+<pre>private final <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6235">defaultScannerContext</a></pre>
</li>
</ul>
<a name="filter">
@@ -528,7 +528,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockListLast">
<li class="blockList">
<h4>filter</h4>
-<pre>private final <a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.html" title="class in org.apache.hadoop.hbase.filter">FilterWrapper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6230">filter</a></pre>
+<pre>private final <a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.html" title="class in org.apache.hadoop.hbase.filter">FilterWrapper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6236">filter</a></pre>
</li>
</ul>
</li>
@@ -545,7 +545,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>RegionScannerImpl</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6237">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6243">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> additionalScanners,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> region)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -561,7 +561,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockListLast">
<li class="blockList">
<h4>RegionScannerImpl</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6242">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6248">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> additionalScanners,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> region,
long nonceGroup,
@@ -587,7 +587,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>getRegionInfo</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6233">getRegionInfo</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6239">getRegionInfo</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getRegionInfo--">getRegionInfo</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -602,7 +602,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>initializeScanners</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6280">initializeScanners</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan,
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6286">initializeScanners</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> additionalScanners)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
@@ -617,7 +617,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>initializeKVHeap</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6312">initializeKVHeap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> scanners,
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6318">initializeKVHeap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> scanners,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> joinedScanners,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> region)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -633,7 +633,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>handleException</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6321">handleException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> instantiatedScanners,
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6327">handleException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>> instantiatedScanners,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a> t)</pre>
</li>
</ul>
@@ -643,7 +643,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>getMaxResultSize</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6342">getMaxResultSize</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6348">getMaxResultSize</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getMaxResultSize--">getMaxResultSize</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -659,7 +659,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>getMvccReadPoint</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6347">getMvccReadPoint</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6353">getMvccReadPoint</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getMvccReadPoint--">getMvccReadPoint</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -674,7 +674,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>getBatch</h4>
-<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6352">getBatch</a>()</pre>
+<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6358">getBatch</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getBatch--">getBatch</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -690,7 +690,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>resetFilters</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6361">resetFilters</a>()
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6367">resetFilters</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Reset both the filter and the old filter.</div>
<dl>
@@ -705,7 +705,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>next</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6368">next</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> outResults)
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6374">next</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> outResults)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-">InternalScanner</a></code></span></div>
<div class="block">Grab the next row's worth of values.</div>
@@ -727,7 +727,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>next</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6375">next</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> outResults,
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6381">next</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> outResults,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> scannerContext)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-org.apache.hadoop.hbase.regionserver.ScannerContext-">InternalScanner</a></code></span></div>
@@ -750,7 +750,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>nextRaw</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6391">nextRaw</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> outResults)
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6397">nextRaw</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> outResults)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#nextRaw-java.util.List-">RegionScanner</a></code></span></div>
<div class="block">Grab the next row's worth of values. This is a special internal method to be called from
@@ -775,7 +775,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>nextRaw</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6397">nextRaw</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> outResults,
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6403">nextRaw</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> outResults,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> scannerContext)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#nextRaw-java.util.List-org.apache.hadoop.hbase.regionserver.ScannerContext-">RegionScanner</a></code></span></div>
@@ -821,7 +821,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>populateFromJoinedHeap</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6434">populateFromJoinedHeap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> results,
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6440">populateFromJoinedHeap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> results,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> scannerContext)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
@@ -838,7 +838,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>populateResult</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6458">populateResult</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> results,
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6464">populateResult</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> results,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> heap,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> scannerContext,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentRowCell)
@@ -863,7 +863,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>moreCellsInRow</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6499">moreCellsInRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> nextKv,
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6505">moreCellsInRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> nextKv,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentRowCell)</pre>
<div class="block">Based on the nextKv in the heap, and the current row, decide whether or not there are more
cells to be read in the heap. If the row of the nextKv in the heap matches the current row
@@ -883,7 +883,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>isFilterDone</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6507">isFilterDone</a>()
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6513">isFilterDone</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -901,7 +901,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>isFilterDoneInternal</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6511">isFilterDoneInternal</a>()
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6517">isFilterDoneInternal</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -915,7 +915,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>nextInternal</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6515">nextInternal</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> results,
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6521">nextInternal</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> results,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> scannerContext)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
@@ -930,7 +930,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>incrementCountOfRowsFilteredMetric</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6738">incrementCountOfRowsFilteredMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> scannerContext)</pre>
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6744">incrementCountOfRowsFilteredMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> scannerContext)</pre>
</li>
</ul>
<a name="incrementCountOfRowsScannedMetric-org.apache.hadoop.hbase.regionserver.ScannerContext-">
@@ -939,7 +939,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>incrementCountOfRowsScannedMetric</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6746">incrementCountOfRowsScannedMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> scannerContext)</pre>
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6752">incrementCountOfRowsScannedMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> scannerContext)</pre>
</li>
</ul>
<a name="joinedHeapMayHaveData-org.apache.hadoop.hbase.Cell-">
@@ -948,7 +948,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>joinedHeapMayHaveData</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6757">joinedHeapMayHaveData</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentRowCell)
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6763">joinedHeapMayHaveData</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentRowCell)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -966,7 +966,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>filterRow</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6784">filterRow</a>()
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6790">filterRow</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">This function is to maintain backward compatibility for 0.94 filters. HBASE-6429 combines
both filterRow & filterRow(<code>List<KeyValue> kvs</code>) functions. While 0.94 code or older,
@@ -985,7 +985,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>filterRowKey</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6791">filterRowKey</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> current)
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6797">filterRowKey</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> current)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -999,7 +999,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>nextRow</h4>
-<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6795">nextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> scannerContext,
+<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6801">nextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> scannerContext,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> curRowCell)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
@@ -1014,7 +1014,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>shouldStop</h4>
-<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6810">shouldStop</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentRowCell)</pre>
+<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6816">shouldStop</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentRowCell)</pre>
</li>
</ul>
<a name="close--">
@@ -1023,7 +1023,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6822">close</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6828">close</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#close--">InternalScanner</a></code></span></div>
<div class="block">Closes the scanner and releases any resources it has allocated</div>
<dl>
@@ -1042,7 +1042,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>getStoreHeapForTesting</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6836">getStoreHeapForTesting</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6842">getStoreHeapForTesting</a>()</pre>
</li>
</ul>
<a name="reseek-byte:A-">
@@ -1051,7 +1051,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>reseek</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6841">reseek</a>(byte[] row)
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6847">reseek</a>(byte[] row)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#reseek-byte:A-">RegionScanner</a></code></span></div>
<div class="block">Do a reseek to the required row. Should not be used to seek to a key which
@@ -1071,7 +1071,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockList">
<li class="blockList">
<h4>shipped</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6861">shipped</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6867">shipped</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html#shipped--">Shipper</a></code></span></div>
<div class="block">Called after a batch of rows scanned and set to be returned to client. Any in between cleanup
@@ -1090,7 +1090,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
<ul class="blockListLast">
<li class="blockList">
<h4>run</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6871">run</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6877">run</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html#run--">RpcCallback</a></code></span></div>
<div class="block">Called at the end of an Rpc Call <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc"><code>RpcCallContext</code></a></div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
index 97fe0c3..6ac285d 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3757">HRegion.ReplayBatchOperation</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3763">HRegion.ReplayBatchOperation</a>
extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a><<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>></pre>
<div class="block">Batch of mutations for replay. Base class is shared with <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver"><code>HRegion.MutationBatchOperation</code></a> as most
of the logic is same.</div>
@@ -306,7 +306,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockListLast">
<li class="blockList">
<h4>origLogSeqNum</h4>
-<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3758">origLogSeqNum</a></pre>
+<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3764">origLogSeqNum</a></pre>
</li>
</ul>
</li>
@@ -323,7 +323,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockListLast">
<li class="blockList">
<h4>ReplayBatchOperation</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3759">ReplayBatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> region,
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3765">ReplayBatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> region,
<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>[] operations,
long origLogSeqNum)</pre>
</li>
@@ -342,7 +342,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>getMutation</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3766">getMutation</a>(int index)</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3772">getMutation</a>(int index)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutation-int-">getMutation</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a><<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>></code></dd>
@@ -355,7 +355,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>getNonceGroup</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3771">getNonceGroup</a>(int index)</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3777">getNonceGroup</a>(int index)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonceGroup-int-">getNonceGroup</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a><<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>></code></dd>
@@ -368,7 +368,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>getNonce</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3776">getNonce</a>(int index)</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3782">getNonce</a>(int index)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonce-int-">getNonce</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a><<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>></code></dd>
@@ -381,7 +381,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>getMutationsForCoprocs</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3781">getMutationsForCoprocs</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3787">getMutationsForCoprocs</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutationsForCoprocs--">HRegion.BatchOperation</a></code></span></div>
<div class="block">This method is potentially expensive and useful mostly for non-replay CP path.</div>
<dl>
@@ -396,7 +396,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>isInReplay</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3786">isInReplay</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3792">isInReplay</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#isInReplay--">isInReplay</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a><<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>></code></dd>
@@ -409,7 +409,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>getOrigLogSeqNum</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3791">getOrigLogSeqNum</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3797">getOrigLogSeqNum</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getOrigLogSeqNum--">getOrigLogSeqNum</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a><<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>></code></dd>
@@ -422,7 +422,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>startRegionOperation</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3796">startRegionOperation</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3802">startRegionOperation</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -438,7 +438,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>closeRegionOperation</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3801">closeRegionOperation</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3807">closeRegionOperation</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -454,7 +454,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>checkAndPreparePut</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3810">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a> p)
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3816">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a> p)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">During replay, there could exist column families which are removed between region server
failure and replay</div>
@@ -472,7 +472,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>checkAndPrepare</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3831">checkAndPrepare</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3837">checkAndPrepare</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#checkAndPrepare--">HRegion.BatchOperation</a></code></span></div>
<div class="block">Validates each mutation and prepares a batch for write. If necessary (non-replay case), runs
@@ -494,7 +494,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>prepareMiniBatchOperations</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3840">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3846">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
long timestamp,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>> acquiredRowLocks)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -515,7 +515,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>writeMiniBatchOperationsToMemStore</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3852">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3858">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a> writeEntry)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#writeMiniBatchOperationsToMemStore-org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">HRegion.BatchOperation</a></code></span></div>
@@ -534,7 +534,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockListLast">
<li class="blockList">
<h4>completeMiniBatchOperations</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3860">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3866">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a> writeEntry)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#completeMiniBatchOperations-org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">HRegion.BatchOperation</a></code></span></div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
index d61c88c..d6ef4ef 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5817">HRegion.RowLockContext</a>
+<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5823">HRegion.RowLockContext</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
</li>
</ul>
@@ -241,7 +241,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>row</h4>
-<pre>private final <a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5818">row</a></pre>
+<pre>private final <a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5824">row</a></pre>
</li>
</ul>
<a name="readWriteLock">
@@ -250,7 +250,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>readWriteLock</h4>
-<pre>final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5819">readWriteLock</a></pre>
+<pre>final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5825">readWriteLock</a></pre>
</li>
</ul>
<a name="usable">
@@ -259,7 +259,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>usable</h4>
-<pre>final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5820">usable</a></pre>
+<pre>final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5826">usable</a></pre>
</li>
</ul>
<a name="count">
@@ -268,7 +268,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>count</h4>
-<pre>final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5821">count</a></pre>
+<pre>final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5827">count</a></pre>
</li>
</ul>
<a name="lock">
@@ -277,7 +277,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>lock</h4>
-<pre>final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5822">lock</a></pre>
+<pre>final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5828">lock</a></pre>
</li>
</ul>
<a name="threadName">
@@ -286,7 +286,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>threadName</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5823">threadName</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5829">threadName</a></pre>
</li>
</ul>
</li>
@@ -303,7 +303,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>RowLockContext</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5825">RowLockContext</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a> row)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5831">RowLockContext</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a> row)</pre>
</li>
</ul>
</li>
@@ -320,7 +320,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>newWriteLock</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5829">newWriteLock</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5835">newWriteLock</a>()</pre>
</li>
</ul>
<a name="newReadLock--">
@@ -329,7 +329,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>newReadLock</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5833">newReadLock</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5839">newReadLock</a>()</pre>
</li>
</ul>
<a name="getRowLock-java.util.concurrent.locks.Lock-">
@@ -338,7 +338,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getRowLock</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5838">getRowLock</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> l)</pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5844">getRowLock</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> l)</pre>
</li>
</ul>
<a name="cleanUp--">
@@ -347,7 +347,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>cleanUp</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5849">cleanUp</a>()</pre>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5855">cleanUp</a>()</pre>
</li>
</ul>
<a name="setThreadName-java.lang.String-">
@@ -356,7 +356,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>setThreadName</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5862">setThreadName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> threadName)</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5868">setThreadName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> threadName)</pre>
</li>
</ul>
<a name="toString--">
@@ -365,7 +365,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5867">toString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5873">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
index de133d2..e42049f 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5880">HRegion.RowLockImpl</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5886">HRegion.RowLockImpl</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a></pre>
<div class="block">Class used to represent a lock on a row.</div>
@@ -226,7 +226,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
<ul class="blockList">
<li class="blockList">
<h4>context</h4>
-<pre>private final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5881">context</a></pre>
+<pre>private final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5887">context</a></pre>
</li>
</ul>
<a name="lock">
@@ -235,7 +235,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
<ul class="blockListLast">
<li class="blockList">
<h4>lock</h4>
-<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5882">lock</a></pre>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5888">lock</a></pre>
</li>
</ul>
</li>
@@ -252,7 +252,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
<ul class="blockListLast">
<li class="blockList">
<h4>RowLockImpl</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5884">RowLockImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a> context,
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5890">RowLockImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a> context,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> lock)</pre>
</li>
</ul>
@@ -270,7 +270,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
<ul class="blockList">
<li class="blockList">
<h4>getLock</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5889">getLock</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5895">getLock</a>()</pre>
</li>
</ul>
<a name="getContext--">
@@ -279,7 +279,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
<ul class="blockList">
<li class="blockList">
<h4>getContext</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5894">getContext</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5900">getContext</a>()</pre>
</li>
</ul>
<a name="release--">
@@ -288,7 +288,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
<ul class="blockList">
<li class="blockList">
<h4>release</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5899">release</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5905">release</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html#release--">Region.RowLock</a></code></span></div>
<div class="block">Release the given lock. If there are no remaining locks held by the current thread
then unlock the row and allow other threads to acquire the lock.</div>
@@ -304,7 +304,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5905">toString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5911">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
[22/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html
index 550e16d..92f8ac3 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":18,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":18,"i14":18,"i15":6,"i16":18,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":18,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":18,"i13":6,"i14":18,"i15":18,"i16":6,"i17":18,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -106,7 +106,7 @@ var activeTableTab = "activeTableTab";
<hr>
<br>
<pre>@InterfaceAudience.Private
-public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.43">ReplicationSourceInterface</a></pre>
+public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.45">ReplicationSourceInterface</a></pre>
<div class="block">Interface that defines a replication source</div>
</li>
</ul>
@@ -194,6 +194,12 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getWALFileLengthProvider--">getWALFileLengthProvider</a></span>()</code> </td>
</tr>
<tr id="i12" class="altColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#getWalGroupStatus--">getWalGroupStatus</a></span>()</code>
+<div class="block">get the stat of replication for each wal group.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#init-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceManager-org.apache.hadoop.hbase.replication.ReplicationQueueStorage-org.apache.hadoop.hbase.replication.ReplicationPeer-org.apache.hadoop.hbase.Server-java.lang.String-java.util.UUID-org.apache.hadoop.hbase.replication.regionserver.WALFileLengthProvider-org.apache.hadoop.hbase.replication.regionserver.MetricsSource-">init</a></span>(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.fs.FileSystem fs,
@@ -208,49 +214,49 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<div class="block">Initializer for the source</div>
</td>
</tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code>default boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#isPeerEnabled--">isPeerEnabled</a></span>()</code> </td>
</tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
<td class="colFirst"><code>default boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#isRecovered--">isRecovered</a></span>()</code> </td>
</tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#isSourceActive--">isSourceActive</a></span>()</code> </td>
</tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
<td class="colFirst"><code>default boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#isSyncReplication--">isSyncReplication</a></span>()</code> </td>
</tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#postShipEdits-java.util.List-int-">postShipEdits</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>> entries,
int batchSize)</code>
<div class="block">Call this after the shipper thread ship some entries to peer cluster.</div>
</td>
</tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#startup--">startup</a></span>()</code>
<div class="block">Start the replication</div>
</td>
</tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#terminate-java.lang.String-">terminate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason)</code>
<div class="block">End the replication</div>
</td>
</tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#terminate-java.lang.String-java.lang.Exception-">terminate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> cause)</code>
<div class="block">End the replication</div>
</td>
</tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#tryThrottle-int-">tryThrottle</a></span>(int batchSize)</code>
<div class="block">Try to throttle when the peer config with a bandwidth</div>
@@ -277,7 +283,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
-<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.52">init</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.54">init</a>(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.fs.FileSystem fs,
<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a> manager,
<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueStorage.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationQueueStorage</a> queueStorage,
@@ -306,7 +312,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>enqueueLog</h4>
-<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.61">enqueueLog</a>(org.apache.hadoop.fs.Path log)</pre>
+<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.63">enqueueLog</a>(org.apache.hadoop.fs.Path log)</pre>
<div class="block">Add a log to the list of logs to replicate</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -320,7 +326,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>addHFileRefs</h4>
-<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.71">addHFileRefs</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName,
+<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.73">addHFileRefs</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName,
byte[] family,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path>> pairs)
throws <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a></pre>
@@ -342,7 +348,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>startup</h4>
-<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.77">startup</a>()</pre>
+<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.79">startup</a>()</pre>
<div class="block">Start the replication</div>
</li>
</ul>
@@ -352,7 +358,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>terminate</h4>
-<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.83">terminate</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason)</pre>
+<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.85">terminate</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason)</pre>
<div class="block">End the replication</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -366,7 +372,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>terminate</h4>
-<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.90">terminate</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason,
+<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.92">terminate</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> reason,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> cause)</pre>
<div class="block">End the replication</div>
<dl>
@@ -382,7 +388,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>getCurrentPath</h4>
-<pre>org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.96">getCurrentPath</a>()</pre>
+<pre>org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.98">getCurrentPath</a>()</pre>
<div class="block">Get the current log that's replicated</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -396,7 +402,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>getQueueId</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.103">getQueueId</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.105">getQueueId</a>()</pre>
<div class="block">Get the queue id that the source is replicating to</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -410,7 +416,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>getPeerId</h4>
-<pre>default <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.109">getPeerId</a>()</pre>
+<pre>default <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.111">getPeerId</a>()</pre>
<div class="block">Get the id that the source is replicating to.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -424,7 +430,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>getPeer</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationPeer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.117">getPeer</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationPeer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.119">getPeer</a>()</pre>
<div class="block">Get the replication peer instance.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -438,7 +444,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>getStats</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.124">getStats</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.126">getStats</a>()</pre>
<div class="block">Get a string representation of the current statistics
for this source</div>
<dl>
@@ -453,7 +459,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>isPeerEnabled</h4>
-<pre>default boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.129">isPeerEnabled</a>()</pre>
+<pre>default boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.131">isPeerEnabled</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>peer enabled or not</dd>
@@ -466,7 +472,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>isSyncReplication</h4>
-<pre>default boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.136">isSyncReplication</a>()</pre>
+<pre>default boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.138">isSyncReplication</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether this is sync replication peer.</dd>
@@ -479,7 +485,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>isSourceActive</h4>
-<pre>boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.142">isSourceActive</a>()</pre>
+<pre>boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.144">isSourceActive</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>active or not</dd>
@@ -492,7 +498,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>getSourceMetrics</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsSource</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.147">getSourceMetrics</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsSource</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.149">getSourceMetrics</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>metrics of this replication source</dd>
@@ -505,7 +511,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>getReplicationEndpoint</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationEndpoint</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.152">getReplicationEndpoint</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationEndpoint</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.154">getReplicationEndpoint</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the replication endpoint used by this replication source</dd>
@@ -518,7 +524,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>getSourceManager</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.157">getSourceManager</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.159">getSourceManager</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the replication source manager</dd>
@@ -531,7 +537,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>getWALFileLengthProvider</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALFileLengthProvider.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">WALFileLengthProvider</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.162">getWALFileLengthProvider</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALFileLengthProvider.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">WALFileLengthProvider</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.164">getWALFileLengthProvider</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the wal file length provider</dd>
@@ -544,7 +550,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>tryThrottle</h4>
-<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.169">tryThrottle</a>(int batchSize)
+<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.171">tryThrottle</a>(int batchSize)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<div class="block">Try to throttle when the peer config with a bandwidth</div>
<dl>
@@ -561,7 +567,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>postShipEdits</h4>
-<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.176">postShipEdits</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>> entries,
+<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.178">postShipEdits</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>> entries,
int batchSize)</pre>
<div class="block">Call this after the shipper thread ship some entries to peer cluster.</div>
<dl>
@@ -577,7 +583,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
<ul class="blockList">
<li class="blockList">
<h4>getServerWALsBelongTo</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.183">getServerWALsBelongTo</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.185">getServerWALsBelongTo</a>()</pre>
<div class="block">The queue of WALs only belong to one region server. This will return the server name which all
WALs belong to.</div>
<dl>
@@ -586,13 +592,27 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/rep
</dl>
</li>
</ul>
+<a name="getWalGroupStatus--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWalGroupStatus</h4>
+<pre>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.191">getWalGroupStatus</a>()</pre>
+<div class="block">get the stat of replication for each wal group.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>stat of replication</dd>
+</dl>
+</li>
+</ul>
<a name="isRecovered--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isRecovered</h4>
-<pre>default boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.188">isRecovered</a>()</pre>
+<pre>default boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#line.198">isRecovered</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether this is a replication source for recovery.</dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html
index ea2196f..03a0103 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html
@@ -184,9 +184,17 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#currentPosition">currentPosition</a></span></code> </td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><code>private int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#DEFAULT_TIMEOUT">DEFAULT_TIMEOUT</a></span></code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceWALReader</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#entryReader">entryReader</a></span></code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#getEntriesTimeout">getEntriesTimeout</a></span></code> </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#LOG">LOG</a></span></code> </td>
@@ -447,12 +455,34 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<a name="maxRetriesMultiplier">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>maxRetriesMultiplier</h4>
<pre>protected final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.74">maxRetriesMultiplier</a></pre>
</li>
</ul>
+<a name="DEFAULT_TIMEOUT">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEFAULT_TIMEOUT</h4>
+<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.75">DEFAULT_TIMEOUT</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceShipper.DEFAULT_TIMEOUT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getEntriesTimeout">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEntriesTimeout</h4>
+<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.76">getEntriesTimeout</a></pre>
+</li>
+</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -467,7 +497,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockListLast">
<li class="blockList">
<h4>ReplicationSourceShipper</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.76">ReplicationSourceShipper</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.78">ReplicationSourceShipper</a>(org.apache.hadoop.conf.Configuration conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroupId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">PriorityBlockingQueue</a><org.apache.hadoop.fs.Path> queue,
<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSource</a> source)</pre>
@@ -487,7 +517,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
-<pre>public final void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.89">run</a>()</pre>
+<pre>public final void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.93">run</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code> in interface <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -502,7 +532,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>noMoreData</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.122">noMoreData</a>()</pre>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.132">noMoreData</a>()</pre>
</li>
</ul>
<a name="postFinish--">
@@ -511,7 +541,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>postFinish</h4>
-<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.134">postFinish</a>()</pre>
+<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.144">postFinish</a>()</pre>
</li>
</ul>
<a name="getBatchEntrySizeExcludeBulkLoad-org.apache.hadoop.hbase.replication.regionserver.WALEntryBatch-">
@@ -520,7 +550,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>getBatchEntrySizeExcludeBulkLoad</h4>
-<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.141">getBatchEntrySizeExcludeBulkLoad</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> entryBatch)</pre>
+<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.151">getBatchEntrySizeExcludeBulkLoad</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> entryBatch)</pre>
<div class="block">get batchEntry size excludes bulk load file sizes.
Uses ReplicationSourceWALReader's static method.</div>
</li>
@@ -531,7 +561,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>shipEdits</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.152">shipEdits</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> entryBatch)</pre>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.162">shipEdits</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> entryBatch)</pre>
<div class="block">Do the shipping logic</div>
</li>
</ul>
@@ -541,7 +571,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>cleanUpHFileRefs</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.232">cleanUpHFileRefs</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a> edit)
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.242">cleanUpHFileRefs</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a> edit)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -555,7 +585,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>updateLogPosition</h4>
-<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.256">updateLogPosition</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> batch)</pre>
+<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.266">updateLogPosition</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> batch)</pre>
</li>
</ul>
<a name="startup-java.lang.Thread.UncaughtExceptionHandler-">
@@ -564,7 +594,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>startup</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.280">startup</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.UncaughtExceptionHandler.html?is-external=true" title="class or interface in java.lang">Thread.UncaughtExceptionHandler</a> handler)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.290">startup</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.UncaughtExceptionHandler.html?is-external=true" title="class or interface in java.lang">Thread.UncaughtExceptionHandler</a> handler)</pre>
</li>
</ul>
<a name="getCurrentPath--">
@@ -573,7 +603,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>getCurrentPath</h4>
-<pre>org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.286">getCurrentPath</a>()</pre>
+<pre>org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.296">getCurrentPath</a>()</pre>
</li>
</ul>
<a name="getCurrentPosition--">
@@ -582,7 +612,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>getCurrentPosition</h4>
-<pre>long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.290">getCurrentPosition</a>()</pre>
+<pre>long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.300">getCurrentPosition</a>()</pre>
</li>
</ul>
<a name="setWALReader-org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceWALReader-">
@@ -591,7 +621,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>setWALReader</h4>
-<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.294">setWALReader</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceWALReader</a> entryReader)</pre>
+<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.304">setWALReader</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceWALReader</a> entryReader)</pre>
</li>
</ul>
<a name="getStartPosition--">
@@ -600,7 +630,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>getStartPosition</h4>
-<pre>long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.298">getStartPosition</a>()</pre>
+<pre>long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.308">getStartPosition</a>()</pre>
</li>
</ul>
<a name="isActive--">
@@ -609,7 +639,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>isActive</h4>
-<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.302">isActive</a>()</pre>
+<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.312">isActive</a>()</pre>
</li>
</ul>
<a name="setWorkerState-org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceShipper.WorkerState-">
@@ -618,7 +648,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>setWorkerState</h4>
-<pre>protected final void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.306">setWorkerState</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper.WorkerState</a> state)</pre>
+<pre>protected final void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.316">setWorkerState</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceShipper.WorkerState</a> state)</pre>
</li>
</ul>
<a name="stopWorker--">
@@ -627,7 +657,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>stopWorker</h4>
-<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.310">stopWorker</a>()</pre>
+<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.320">stopWorker</a>()</pre>
</li>
</ul>
<a name="isFinished--">
@@ -636,7 +666,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockListLast">
<li class="blockList">
<h4>isFinished</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.314">isFinished</a>()</pre>
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.html#line.324">isFinished</a>()</pre>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html
index 2384450..97295e8 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":9,"i17":10,"i18":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":9,"i18":10,"i19":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALActionListener.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" target="_top">Frames</a></li>
@@ -124,7 +124,7 @@ var activeTableTab = "activeTableTab";
<br>
<pre>@InterfaceAudience.Private
@InterfaceStability.Evolving
-class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.54">ReplicationSourceWALReader</a>
+class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.55">ReplicationSourceWALReader</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></pre>
<div class="block">Reads and filters WAL entries, groups the filtered entries into batches, and puts the batches
onto a queue</div>
@@ -323,36 +323,40 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#isReaderRunning--">isReaderRunning</a></span>()</code> </td>
</tr>
<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#poll-long-">poll</a></span>(long timeout)</code> </td>
+</tr>
+<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#readWALEntries-org.apache.hadoop.hbase.replication.regionserver.WALEntryStream-">readWALEntries</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a> entryStream)</code> </td>
</tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#run--">run</a></span>()</code> </td>
</tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#setReaderRunning-boolean-">setReaderRunning</a></span>(boolean readerRunning)</code> </td>
</tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#sizeOfStoreFilesIncludeBulkLoad-org.apache.hadoop.hbase.wal.WALEdit-">sizeOfStoreFilesIncludeBulkLoad</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a> edit)</code>
<div class="block">Calculate the total size of all the store files</div>
</td>
</tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
<td class="colFirst"><code>protected static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#switched-org.apache.hadoop.hbase.replication.regionserver.WALEntryStream-org.apache.hadoop.fs.Path-">switched</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a> entryStream,
org.apache.hadoop.fs.Path path)</code> </td>
</tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#take--">take</a></span>()</code>
<div class="block">Retrieves the next batch of WAL entries from the queue, waiting up to the specified time for a
batch to become available</div>
</td>
</tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#updateBatchStats-org.apache.hadoop.hbase.replication.regionserver.WALEntryBatch-org.apache.hadoop.hbase.wal.WAL.Entry-long-">updateBatchStats</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> batch,
<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a> entry,
@@ -393,7 +397,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
-<pre>private static final org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.55">LOG</a></pre>
+<pre>private static final org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.56">LOG</a></pre>
</li>
</ul>
<a name="logQueue">
@@ -402,7 +406,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>logQueue</h4>
-<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">PriorityBlockingQueue</a><org.apache.hadoop.fs.Path> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.57">logQueue</a></pre>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">PriorityBlockingQueue</a><org.apache.hadoop.fs.Path> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.58">logQueue</a></pre>
</li>
</ul>
<a name="fs">
@@ -411,7 +415,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>fs</h4>
-<pre>private final org.apache.hadoop.fs.FileSystem <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.58">fs</a></pre>
+<pre>private final org.apache.hadoop.fs.FileSystem <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.59">fs</a></pre>
</li>
</ul>
<a name="conf">
@@ -420,7 +424,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>conf</h4>
-<pre>private final org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.59">conf</a></pre>
+<pre>private final org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.60">conf</a></pre>
</li>
</ul>
<a name="filter">
@@ -429,7 +433,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>filter</h4>
-<pre>private final <a href="../../../../../../org/apache/hadoop/hbase/replication/WALEntryFilter.html" title="interface in org.apache.hadoop.hbase.replication">WALEntryFilter</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.60">filter</a></pre>
+<pre>private final <a href="../../../../../../org/apache/hadoop/hbase/replication/WALEntryFilter.html" title="interface in org.apache.hadoop.hbase.replication">WALEntryFilter</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.61">filter</a></pre>
</li>
</ul>
<a name="source">
@@ -438,7 +442,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>source</h4>
-<pre>private final <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSource</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.61">source</a></pre>
+<pre>private final <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSource</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.62">source</a></pre>
</li>
</ul>
<a name="entryBatchQueue">
@@ -447,7 +451,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>entryBatchQueue</h4>
-<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a><<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.63">entryBatchQueue</a></pre>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a><<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.64">entryBatchQueue</a></pre>
</li>
</ul>
<a name="replicationBatchSizeCapacity">
@@ -456,7 +460,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>replicationBatchSizeCapacity</h4>
-<pre>private final long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.65">replicationBatchSizeCapacity</a></pre>
+<pre>private final long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.66">replicationBatchSizeCapacity</a></pre>
</li>
</ul>
<a name="replicationBatchCountCapacity">
@@ -465,7 +469,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>replicationBatchCountCapacity</h4>
-<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.67">replicationBatchCountCapacity</a></pre>
+<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.68">replicationBatchCountCapacity</a></pre>
</li>
</ul>
<a name="currentPosition">
@@ -474,7 +478,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>currentPosition</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.69">currentPosition</a></pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.70">currentPosition</a></pre>
</li>
</ul>
<a name="sleepForRetries">
@@ -483,7 +487,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>sleepForRetries</h4>
-<pre>private final long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.70">sleepForRetries</a></pre>
+<pre>private final long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.71">sleepForRetries</a></pre>
</li>
</ul>
<a name="maxRetriesMultiplier">
@@ -492,7 +496,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>maxRetriesMultiplier</h4>
-<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.71">maxRetriesMultiplier</a></pre>
+<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.72">maxRetriesMultiplier</a></pre>
</li>
</ul>
<a name="eofAutoRecovery">
@@ -501,7 +505,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>eofAutoRecovery</h4>
-<pre>private final boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.72">eofAutoRecovery</a></pre>
+<pre>private final boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.73">eofAutoRecovery</a></pre>
</li>
</ul>
<a name="isReaderRunning">
@@ -510,7 +514,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>isReaderRunning</h4>
-<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.75">isReaderRunning</a></pre>
+<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.76">isReaderRunning</a></pre>
</li>
</ul>
<a name="totalBufferUsed">
@@ -519,7 +523,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>totalBufferUsed</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.77">totalBufferUsed</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.78">totalBufferUsed</a></pre>
</li>
</ul>
<a name="totalBufferQuota">
@@ -528,7 +532,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockListLast">
<li class="blockList">
<h4>totalBufferQuota</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.78">totalBufferQuota</a></pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.79">totalBufferQuota</a></pre>
</li>
</ul>
</li>
@@ -545,7 +549,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockListLast">
<li class="blockList">
<h4>ReplicationSourceWALReader</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.90">ReplicationSourceWALReader</a>(org.apache.hadoop.fs.FileSystem fs,
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.91">ReplicationSourceWALReader</a>(org.apache.hadoop.fs.FileSystem fs,
org.apache.hadoop.conf.Configuration conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">PriorityBlockingQueue</a><org.apache.hadoop.fs.Path> logQueue,
long startPosition,
@@ -578,7 +582,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.122">run</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.123">run</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code> in interface <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -593,7 +597,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>addEntryToBatch</h4>
-<pre>protected final boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.167">addEntryToBatch</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> batch,
+<pre>protected final boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.168">addEntryToBatch</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> batch,
<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a> entry)</pre>
</li>
</ul>
@@ -603,7 +607,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>switched</h4>
-<pre>protected static final boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.183">switched</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a> entryStream,
+<pre>protected static final boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.184">switched</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a> entryStream,
org.apache.hadoop.fs.Path path)</pre>
</li>
</ul>
@@ -613,7 +617,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>readWALEntries</h4>
-<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.188">readWALEntries</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a> entryStream)
+<pre>protected <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.189">readWALEntries</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a> entryStream)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<dl>
@@ -629,7 +633,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>handleEmptyWALEntryBatch</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.230">handleEmptyWALEntryBatch</a>()
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.231">handleEmptyWALEntryBatch</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -643,7 +647,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>handleEofException</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.246">handleEofException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> e)</pre>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.247">handleEofException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> e)</pre>
</li>
</ul>
<a name="getCurrentPath--">
@@ -652,7 +656,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>getCurrentPath</h4>
-<pre>public org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.261">getCurrentPath</a>()</pre>
+<pre>public org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.262">getCurrentPath</a>()</pre>
</li>
</ul>
<a name="checkQuota--">
@@ -661,7 +665,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>checkQuota</h4>
-<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.272">checkQuota</a>()</pre>
+<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.273">checkQuota</a>()</pre>
</li>
</ul>
<a name="createBatch-org.apache.hadoop.hbase.replication.regionserver.WALEntryStream-">
@@ -670,7 +674,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>createBatch</h4>
-<pre>protected final <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.281">createBatch</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a> entryStream)</pre>
+<pre>protected final <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.282">createBatch</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a> entryStream)</pre>
</li>
</ul>
<a name="filterEntry-org.apache.hadoop.hbase.wal.WAL.Entry-">
@@ -679,7 +683,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>filterEntry</h4>
-<pre>protected final <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.285">filterEntry</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a> entry)</pre>
+<pre>protected final <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.286">filterEntry</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a> entry)</pre>
</li>
</ul>
<a name="take--">
@@ -688,7 +692,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>take</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.299">take</a>()
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.300">take</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<div class="block">Retrieves the next batch of WAL entries from the queue, waiting up to the specified time for a
batch to become available</div>
@@ -700,13 +704,27 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
</dl>
</li>
</ul>
+<a name="poll-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>poll</h4>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.304">poll</a>(long timeout)
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
<a name="getEntrySizeIncludeBulkLoad-org.apache.hadoop.hbase.wal.WAL.Entry-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEntrySizeIncludeBulkLoad</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.303">getEntrySizeIncludeBulkLoad</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a> entry)</pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.308">getEntrySizeIncludeBulkLoad</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a> entry)</pre>
</li>
</ul>
<a name="getEntrySizeExcludeBulkLoad-org.apache.hadoop.hbase.wal.WAL.Entry-">
@@ -715,7 +733,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>getEntrySizeExcludeBulkLoad</h4>
-<pre>public static long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.310">getEntrySizeExcludeBulkLoad</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a> entry)</pre>
+<pre>public static long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.315">getEntrySizeExcludeBulkLoad</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a> entry)</pre>
</li>
</ul>
<a name="updateBatchStats-org.apache.hadoop.hbase.replication.regionserver.WALEntryBatch-org.apache.hadoop.hbase.wal.WAL.Entry-long-">
@@ -724,7 +742,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>updateBatchStats</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.317">updateBatchStats</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> batch,
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.322">updateBatchStats</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALEntryBatch.html" title="class in org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> batch,
<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a> entry,
long entrySize)</pre>
</li>
@@ -735,7 +753,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>countDistinctRowKeysAndHFiles</h4>
-<pre>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.331">countDistinctRowKeysAndHFiles</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a> edit)</pre>
+<pre>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.336">countDistinctRowKeysAndHFiles</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a> edit)</pre>
<div class="block">Count the number of different row keys in the given edit because of mini-batching. We assume
that there's at least one Cell in the WALEdit.</div>
<dl>
@@ -752,7 +770,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>sizeOfStoreFilesIncludeBulkLoad</h4>
-<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.369">sizeOfStoreFilesIncludeBulkLoad</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a> edit)</pre>
+<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.374">sizeOfStoreFilesIncludeBulkLoad</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a> edit)</pre>
<div class="block">Calculate the total size of all the store files</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -768,7 +786,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>acquireBufferQuota</h4>
-<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.399">acquireBufferQuota</a>(long size)</pre>
+<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.404">acquireBufferQuota</a>(long size)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>size</code> - delta size for grown buffer</dd>
@@ -783,7 +801,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockList">
<li class="blockList">
<h4>isReaderRunning</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.406">isReaderRunning</a>()</pre>
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.411">isReaderRunning</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether the reader thread is running</dd>
@@ -796,7 +814,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockListLast">
<li class="blockList">
<h4>setReaderRunning</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.413">setReaderRunning</a>(boolean readerRunning)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#line.418">setReaderRunning</a>(boolean readerRunning)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>readerRunning</code> - the readerRunning to set</dd>
@@ -832,7 +850,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALActionListener.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" target="_top">Frames</a></li>
[15/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html
index 05e032c..40ef9f4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html
@@ -25,767 +25,805 @@
<span class="sourceLineNo">017</span> */<a name="line.17"></a>
<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.io.asyncfs;<a name="line.18"></a>
<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.21"></a>
+<span class="sourceLineNo">020</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.21"></a>
<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import com.google.protobuf.CodedOutputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.io.IOException;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.lang.reflect.Field;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.lang.reflect.InvocationTargetException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.lang.reflect.Method;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.net.InetAddress;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import java.net.InetSocketAddress;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import java.nio.ByteBuffer;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import java.security.GeneralSecurityException;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import java.util.Arrays;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import java.util.Collections;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import java.util.List;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import java.util.Map;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import java.util.Set;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import java.util.concurrent.TimeUnit;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>import javax.security.auth.callback.Callback;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import javax.security.auth.callback.CallbackHandler;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import javax.security.auth.callback.NameCallback;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import javax.security.auth.callback.PasswordCallback;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import javax.security.sasl.RealmCallback;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import javax.security.sasl.Sasl;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import javax.security.sasl.SaslClient;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import javax.security.sasl.SaslException;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.commons.codec.binary.Base64;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.commons.lang3.StringUtils;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.conf.Configuration;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.slf4j.Logger;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.slf4j.LoggerFactory;<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>import com.google.protobuf.ByteString;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.security.token.Token;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>/**<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@InterfaceAudience.Private<a name="line.109"></a>
-<span class="sourceLineNo">110</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.110"></a>
-<span class="sourceLineNo">111</span> private static final Logger LOG =<a name="line.111"></a>
-<span class="sourceLineNo">112</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.112"></a>
+<span class="sourceLineNo">023</span>import com.google.protobuf.ByteString;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import com.google.protobuf.CodedOutputStream;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.lang.reflect.Field;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.lang.reflect.InvocationTargetException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.lang.reflect.Method;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.net.InetAddress;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.net.InetSocketAddress;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.ByteBuffer;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.security.GeneralSecurityException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.Arrays;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.List;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Map;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.Set;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import java.util.concurrent.TimeUnit;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import javax.security.auth.callback.Callback;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import javax.security.auth.callback.CallbackHandler;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import javax.security.auth.callback.NameCallback;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import javax.security.auth.callback.PasswordCallback;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import javax.security.sasl.RealmCallback;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import javax.security.sasl.Sasl;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import javax.security.sasl.SaslClient;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import javax.security.sasl.SaslException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.commons.codec.binary.Base64;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.commons.lang3.StringUtils;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.conf.Configuration;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.crypto.key.KeyProvider;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.security.token.Token;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.slf4j.Logger;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.slf4j.LoggerFactory;<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>/**<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.104"></a>
+<span class="sourceLineNo">105</span> */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>@InterfaceAudience.Private<a name="line.106"></a>
+<span class="sourceLineNo">107</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> private static final Logger LOG =<a name="line.108"></a>
+<span class="sourceLineNo">109</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span> }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span> private static final String SERVER_NAME = "0";<a name="line.117"></a>
-<span class="sourceLineNo">118</span> private static final String PROTOCOL = "hdfs";<a name="line.118"></a>
-<span class="sourceLineNo">119</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.119"></a>
-<span class="sourceLineNo">120</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> private static final String NAME_DELIMITER = " ";<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span> private interface SaslAdaptor {<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.127"></a>
+<span class="sourceLineNo">114</span> private static final String SERVER_NAME = "0";<a name="line.114"></a>
+<span class="sourceLineNo">115</span> private static final String PROTOCOL = "hdfs";<a name="line.115"></a>
+<span class="sourceLineNo">116</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.116"></a>
+<span class="sourceLineNo">117</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> private static final String NAME_DELIMITER = " ";<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span> private interface SaslAdaptor {<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> }<a name="line.127"></a>
<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> }<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.132"></a>
+<span class="sourceLineNo">129</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span> // helper class for convert protos.<a name="line.131"></a>
+<span class="sourceLineNo">132</span> private interface PBHelper {<a name="line.132"></a>
<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span> // helper class for convert protos.<a name="line.134"></a>
-<span class="sourceLineNo">135</span> private interface PBHelper {<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.137"></a>
+<span class="sourceLineNo">134</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.139"></a>
-<span class="sourceLineNo">140</span> }<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span> private static final PBHelper PB_HELPER;<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> private interface TransparentCryptoHelper {<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.146"></a>
-<span class="sourceLineNo">147</span> throws IOException;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span> private static SaslAdaptor createSaslAdaptor()<a name="line.152"></a>
-<span class="sourceLineNo">153</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.153"></a>
-<span class="sourceLineNo">154</span> Field saslPropsResolverField =<a name="line.154"></a>
-<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.155"></a>
-<span class="sourceLineNo">156</span> saslPropsResolverField.setAccessible(true);<a name="line.156"></a>
-<span class="sourceLineNo">157</span> Field trustedChannelResolverField =<a name="line.157"></a>
-<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.158"></a>
-<span class="sourceLineNo">159</span> trustedChannelResolverField.setAccessible(true);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> Field fallbackToSimpleAuthField =<a name="line.160"></a>
-<span class="sourceLineNo">161</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.161"></a>
-<span class="sourceLineNo">162</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.162"></a>
-<span class="sourceLineNo">163</span> return new SaslAdaptor() {<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> @Override<a name="line.165"></a>
-<span class="sourceLineNo">166</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span> try {<a name="line.167"></a>
-<span class="sourceLineNo">168</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.168"></a>
-<span class="sourceLineNo">169</span> } catch (IllegalAccessException e) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> throw new RuntimeException(e);<a name="line.170"></a>
-<span class="sourceLineNo">171</span> }<a name="line.171"></a>
-<span class="sourceLineNo">172</span> }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span> @Override<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> try {<a name="line.176"></a>
-<span class="sourceLineNo">177</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> } catch (IllegalAccessException e) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span> throw new RuntimeException(e);<a name="line.179"></a>
-<span class="sourceLineNo">180</span> }<a name="line.180"></a>
-<span class="sourceLineNo">181</span> }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span> @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span> try {<a name="line.185"></a>
-<span class="sourceLineNo">186</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.186"></a>
-<span class="sourceLineNo">187</span> } catch (IllegalAccessException e) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> throw new RuntimeException(e);<a name="line.188"></a>
-<span class="sourceLineNo">189</span> }<a name="line.189"></a>
-<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span> };<a name="line.191"></a>
-<span class="sourceLineNo">192</span> }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.194"></a>
-<span class="sourceLineNo">195</span> Class<?> helperClass;<a name="line.195"></a>
-<span class="sourceLineNo">196</span> try {<a name="line.196"></a>
-<span class="sourceLineNo">197</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.197"></a>
-<span class="sourceLineNo">198</span> } catch (ClassNotFoundException e) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.199"></a>
-<span class="sourceLineNo">200</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.200"></a>
-<span class="sourceLineNo">201</span> }<a name="line.201"></a>
-<span class="sourceLineNo">202</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> Method convertCipherOptionProtosMethod =<a name="line.203"></a>
-<span class="sourceLineNo">204</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.204"></a>
-<span class="sourceLineNo">205</span> return new PBHelper() {<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span> @SuppressWarnings("unchecked")<a name="line.207"></a>
-<span class="sourceLineNo">208</span> @Override<a name="line.208"></a>
-<span class="sourceLineNo">209</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span> try {<a name="line.210"></a>
-<span class="sourceLineNo">211</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span> throw new RuntimeException(e);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> }<a name="line.214"></a>
-<span class="sourceLineNo">215</span> }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> @SuppressWarnings("unchecked")<a name="line.217"></a>
-<span class="sourceLineNo">218</span> @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span> try {<a name="line.220"></a>
-<span class="sourceLineNo">221</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.221"></a>
-<span class="sourceLineNo">222</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span> throw new RuntimeException(e);<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span> }<a name="line.225"></a>
-<span class="sourceLineNo">226</span> };<a name="line.226"></a>
-<span class="sourceLineNo">227</span> }<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.229"></a>
-<span class="sourceLineNo">230</span> throws NoSuchMethodException {<a name="line.230"></a>
-<span class="sourceLineNo">231</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.231"></a>
-<span class="sourceLineNo">232</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.232"></a>
-<span class="sourceLineNo">233</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span> return new TransparentCryptoHelper() {<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span> @Override<a name="line.236"></a>
-<span class="sourceLineNo">237</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.237"></a>
-<span class="sourceLineNo">238</span> DFSClient client) throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span> try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> KeyVersion decryptedKey =<a name="line.240"></a>
-<span class="sourceLineNo">241</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.241"></a>
-<span class="sourceLineNo">242</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.242"></a>
-<span class="sourceLineNo">243</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.243"></a>
-<span class="sourceLineNo">244</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.244"></a>
-<span class="sourceLineNo">245</span> return encryptor;<a name="line.245"></a>
-<span class="sourceLineNo">246</span> } catch (InvocationTargetException e) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.247"></a>
-<span class="sourceLineNo">248</span> throw new RuntimeException(e.getTargetException());<a name="line.248"></a>
-<span class="sourceLineNo">249</span> } catch (GeneralSecurityException e) {<a name="line.249"></a>
-<span class="sourceLineNo">250</span> throw new IOException(e);<a name="line.250"></a>
-<span class="sourceLineNo">251</span> } catch (IllegalAccessException e) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> throw new RuntimeException(e);<a name="line.252"></a>
-<span class="sourceLineNo">253</span> }<a name="line.253"></a>
-<span class="sourceLineNo">254</span> }<a name="line.254"></a>
-<span class="sourceLineNo">255</span> };<a name="line.255"></a>
-<span class="sourceLineNo">256</span> }<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span> static {<a name="line.258"></a>
-<span class="sourceLineNo">259</span> try {<a name="line.259"></a>
-<span class="sourceLineNo">260</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.260"></a>
-<span class="sourceLineNo">261</span> PB_HELPER = createPBHelper();<a name="line.261"></a>
-<span class="sourceLineNo">262</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.262"></a>
-<span class="sourceLineNo">263</span> } catch (Exception e) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.264"></a>
-<span class="sourceLineNo">265</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.265"></a>
-<span class="sourceLineNo">266</span> + "HBASE-16110 for more information.";<a name="line.266"></a>
-<span class="sourceLineNo">267</span> LOG.error(msg, e);<a name="line.267"></a>
-<span class="sourceLineNo">268</span> throw new Error(msg, e);<a name="line.268"></a>
-<span class="sourceLineNo">269</span> }<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span> /**<a name="line.272"></a>
-<span class="sourceLineNo">273</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.273"></a>
-<span class="sourceLineNo">274</span> */<a name="line.274"></a>
-<span class="sourceLineNo">275</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span> private final char[] password;<a name="line.277"></a>
-<span class="sourceLineNo">278</span> private final String userName;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span> /**<a name="line.280"></a>
-<span class="sourceLineNo">281</span> * Creates a new SaslClientCallbackHandler.<a name="line.281"></a>
-<span class="sourceLineNo">282</span> * @param userName SASL user name<a name="line.282"></a>
-<span class="sourceLineNo">283</span> * @Param password SASL password<a name="line.283"></a>
-<span class="sourceLineNo">284</span> */<a name="line.284"></a>
-<span class="sourceLineNo">285</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span> this.password = password;<a name="line.286"></a>
-<span class="sourceLineNo">287</span> this.userName = userName;<a name="line.287"></a>
-<span class="sourceLineNo">288</span> }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span> @Override<a name="line.290"></a>
-<span class="sourceLineNo">291</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.291"></a>
-<span class="sourceLineNo">292</span> NameCallback nc = null;<a name="line.292"></a>
-<span class="sourceLineNo">293</span> PasswordCallback pc = null;<a name="line.293"></a>
-<span class="sourceLineNo">294</span> RealmCallback rc = null;<a name="line.294"></a>
-<span class="sourceLineNo">295</span> for (Callback callback : callbacks) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span> if (callback instanceof RealmChoiceCallback) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span> continue;<a name="line.297"></a>
-<span class="sourceLineNo">298</span> } else if (callback instanceof NameCallback) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span> nc = (NameCallback) callback;<a name="line.299"></a>
-<span class="sourceLineNo">300</span> } else if (callback instanceof PasswordCallback) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span> pc = (PasswordCallback) callback;<a name="line.301"></a>
-<span class="sourceLineNo">302</span> } else if (callback instanceof RealmCallback) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span> rc = (RealmCallback) callback;<a name="line.303"></a>
-<span class="sourceLineNo">304</span> } else {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span> }<a name="line.307"></a>
-<span class="sourceLineNo">308</span> if (nc != null) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span> nc.setName(userName);<a name="line.309"></a>
-<span class="sourceLineNo">310</span> }<a name="line.310"></a>
-<span class="sourceLineNo">311</span> if (pc != null) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> pc.setPassword(password);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span> if (rc != null) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span> rc.setText(rc.getDefaultText());<a name="line.315"></a>
-<span class="sourceLineNo">316</span> }<a name="line.316"></a>
-<span class="sourceLineNo">317</span> }<a name="line.317"></a>
-<span class="sourceLineNo">318</span> }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span> private final Configuration conf;<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span> private final Map<String, String> saslProps;<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span> private final SaslClient saslClient;<a name="line.326"></a>
+<span class="sourceLineNo">139</span> private static final PBHelper PB_HELPER;<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span> private interface TransparentCryptoHelper {<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.143"></a>
+<span class="sourceLineNo">144</span> throws IOException;<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span> private static SaslAdaptor createSaslAdaptor()<a name="line.149"></a>
+<span class="sourceLineNo">150</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Field saslPropsResolverField =<a name="line.151"></a>
+<span class="sourceLineNo">152</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.152"></a>
+<span class="sourceLineNo">153</span> saslPropsResolverField.setAccessible(true);<a name="line.153"></a>
+<span class="sourceLineNo">154</span> Field trustedChannelResolverField =<a name="line.154"></a>
+<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.155"></a>
+<span class="sourceLineNo">156</span> trustedChannelResolverField.setAccessible(true);<a name="line.156"></a>
+<span class="sourceLineNo">157</span> Field fallbackToSimpleAuthField =<a name="line.157"></a>
+<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.158"></a>
+<span class="sourceLineNo">159</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.159"></a>
+<span class="sourceLineNo">160</span> return new SaslAdaptor() {<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span> @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span> try {<a name="line.164"></a>
+<span class="sourceLineNo">165</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.165"></a>
+<span class="sourceLineNo">166</span> } catch (IllegalAccessException e) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span> throw new RuntimeException(e);<a name="line.167"></a>
+<span class="sourceLineNo">168</span> }<a name="line.168"></a>
+<span class="sourceLineNo">169</span> }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span> @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span> try {<a name="line.173"></a>
+<span class="sourceLineNo">174</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.174"></a>
+<span class="sourceLineNo">175</span> } catch (IllegalAccessException e) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span> throw new RuntimeException(e);<a name="line.176"></a>
+<span class="sourceLineNo">177</span> }<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span> @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span> try {<a name="line.182"></a>
+<span class="sourceLineNo">183</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.183"></a>
+<span class="sourceLineNo">184</span> } catch (IllegalAccessException e) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span> throw new RuntimeException(e);<a name="line.185"></a>
+<span class="sourceLineNo">186</span> }<a name="line.186"></a>
+<span class="sourceLineNo">187</span> }<a name="line.187"></a>
+<span class="sourceLineNo">188</span> };<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.191"></a>
+<span class="sourceLineNo">192</span> Class<?> helperClass;<a name="line.192"></a>
+<span class="sourceLineNo">193</span> try {<a name="line.193"></a>
+<span class="sourceLineNo">194</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.194"></a>
+<span class="sourceLineNo">195</span> } catch (ClassNotFoundException e) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.197"></a>
+<span class="sourceLineNo">198</span> }<a name="line.198"></a>
+<span class="sourceLineNo">199</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.199"></a>
+<span class="sourceLineNo">200</span> Method convertCipherOptionProtosMethod =<a name="line.200"></a>
+<span class="sourceLineNo">201</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.201"></a>
+<span class="sourceLineNo">202</span> return new PBHelper() {<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span> @SuppressWarnings("unchecked")<a name="line.204"></a>
+<span class="sourceLineNo">205</span> @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> try {<a name="line.207"></a>
+<span class="sourceLineNo">208</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.208"></a>
+<span class="sourceLineNo">209</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span> throw new RuntimeException(e);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> }<a name="line.211"></a>
+<span class="sourceLineNo">212</span> }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span> @SuppressWarnings("unchecked")<a name="line.214"></a>
+<span class="sourceLineNo">215</span> @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> try {<a name="line.217"></a>
+<span class="sourceLineNo">218</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span> throw new RuntimeException(e);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> };<a name="line.223"></a>
+<span class="sourceLineNo">224</span> }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span> private static TransparentCryptoHelper createTransparentCryptoHelper27()<a name="line.226"></a>
+<span class="sourceLineNo">227</span> throws NoSuchMethodException {<a name="line.227"></a>
+<span class="sourceLineNo">228</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.228"></a>
+<span class="sourceLineNo">229</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> return new TransparentCryptoHelper() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.234"></a>
+<span class="sourceLineNo">235</span> DFSClient client) throws IOException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span> try {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> KeyVersion decryptedKey =<a name="line.237"></a>
+<span class="sourceLineNo">238</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.238"></a>
+<span class="sourceLineNo">239</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.239"></a>
+<span class="sourceLineNo">240</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.241"></a>
+<span class="sourceLineNo">242</span> return encryptor;<a name="line.242"></a>
+<span class="sourceLineNo">243</span> } catch (InvocationTargetException e) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.244"></a>
+<span class="sourceLineNo">245</span> throw new RuntimeException(e.getTargetException());<a name="line.245"></a>
+<span class="sourceLineNo">246</span> } catch (GeneralSecurityException e) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> throw new IOException(e);<a name="line.247"></a>
+<span class="sourceLineNo">248</span> } catch (IllegalAccessException e) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span> throw new RuntimeException(e);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span> }<a name="line.251"></a>
+<span class="sourceLineNo">252</span> };<a name="line.252"></a>
+<span class="sourceLineNo">253</span> }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span> private static TransparentCryptoHelper createTransparentCryptoHelper28()<a name="line.255"></a>
+<span class="sourceLineNo">256</span> throws ClassNotFoundException, NoSuchMethodException {<a name="line.256"></a>
+<span class="sourceLineNo">257</span> Class<?> hdfsKMSUtilCls = Class.forName("org.apache.hadoop.hdfs.HdfsKMSUtil");<a name="line.257"></a>
+<span class="sourceLineNo">258</span> Method decryptEncryptedDataEncryptionKeyMethod = hdfsKMSUtilCls.getDeclaredMethod(<a name="line.258"></a>
+<span class="sourceLineNo">259</span> "decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class, KeyProvider.class);<a name="line.259"></a>
+<span class="sourceLineNo">260</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.260"></a>
+<span class="sourceLineNo">261</span> return new TransparentCryptoHelper() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span> @Override<a name="line.263"></a>
+<span class="sourceLineNo">264</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.264"></a>
+<span class="sourceLineNo">265</span> DFSClient client) throws IOException {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> try {<a name="line.266"></a>
+<span class="sourceLineNo">267</span> KeyVersion decryptedKey = (KeyVersion) decryptEncryptedDataEncryptionKeyMethod<a name="line.267"></a>
+<span class="sourceLineNo">268</span> .invoke(null, feInfo, client.getKeyProvider());<a name="line.268"></a>
+<span class="sourceLineNo">269</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.269"></a>
+<span class="sourceLineNo">270</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.270"></a>
+<span class="sourceLineNo">271</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.271"></a>
+<span class="sourceLineNo">272</span> return encryptor;<a name="line.272"></a>
+<span class="sourceLineNo">273</span> } catch (InvocationTargetException e) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.274"></a>
+<span class="sourceLineNo">275</span> throw new RuntimeException(e.getTargetException());<a name="line.275"></a>
+<span class="sourceLineNo">276</span> } catch (GeneralSecurityException e) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> throw new IOException(e);<a name="line.277"></a>
+<span class="sourceLineNo">278</span> } catch (IllegalAccessException e) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> throw new RuntimeException(e);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> }<a name="line.280"></a>
+<span class="sourceLineNo">281</span> }<a name="line.281"></a>
+<span class="sourceLineNo">282</span> };<a name="line.282"></a>
+<span class="sourceLineNo">283</span> }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.285"></a>
+<span class="sourceLineNo">286</span> throws NoSuchMethodException, ClassNotFoundException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> try {<a name="line.287"></a>
+<span class="sourceLineNo">288</span> return createTransparentCryptoHelper27();<a name="line.288"></a>
+<span class="sourceLineNo">289</span> } catch (NoSuchMethodException e) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> LOG.debug("No decryptEncryptedDataEncryptionKey method in DFSClient, should be hadoop 2.8+",<a name="line.290"></a>
+<span class="sourceLineNo">291</span> e);<a name="line.291"></a>
+<span class="sourceLineNo">292</span> }<a name="line.292"></a>
+<span class="sourceLineNo">293</span> return createTransparentCryptoHelper28();<a name="line.293"></a>
+<span class="sourceLineNo">294</span> }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span> static {<a name="line.296"></a>
+<span class="sourceLineNo">297</span> try {<a name="line.297"></a>
+<span class="sourceLineNo">298</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.298"></a>
+<span class="sourceLineNo">299</span> PB_HELPER = createPBHelper();<a name="line.299"></a>
+<span class="sourceLineNo">300</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.300"></a>
+<span class="sourceLineNo">301</span> } catch (Exception e) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.302"></a>
+<span class="sourceLineNo">303</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.303"></a>
+<span class="sourceLineNo">304</span> + "HBASE-16110 for more information.";<a name="line.304"></a>
+<span class="sourceLineNo">305</span> LOG.error(msg, e);<a name="line.305"></a>
+<span class="sourceLineNo">306</span> throw new Error(msg, e);<a name="line.306"></a>
+<span class="sourceLineNo">307</span> }<a name="line.307"></a>
+<span class="sourceLineNo">308</span> }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span> /**<a name="line.310"></a>
+<span class="sourceLineNo">311</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.311"></a>
+<span class="sourceLineNo">312</span> */<a name="line.312"></a>
+<span class="sourceLineNo">313</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span> private final char[] password;<a name="line.315"></a>
+<span class="sourceLineNo">316</span> private final String userName;<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span> /**<a name="line.318"></a>
+<span class="sourceLineNo">319</span> * Creates a new SaslClientCallbackHandler.<a name="line.319"></a>
+<span class="sourceLineNo">320</span> * @param userName SASL user name<a name="line.320"></a>
+<span class="sourceLineNo">321</span> * @Param password SASL password<a name="line.321"></a>
+<span class="sourceLineNo">322</span> */<a name="line.322"></a>
+<span class="sourceLineNo">323</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span> this.password = password;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> this.userName = userName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> }<a name="line.326"></a>
<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span> private final int timeoutMs;<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span> private final Promise<Void> promise;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span> private int step = 0;<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.334"></a>
-<span class="sourceLineNo">335</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.335"></a>
-<span class="sourceLineNo">336</span> this.conf = conf;<a name="line.336"></a>
-<span class="sourceLineNo">337</span> this.saslProps = saslProps;<a name="line.337"></a>
-<span class="sourceLineNo">338</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.338"></a>
-<span class="sourceLineNo">339</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.339"></a>
-<span class="sourceLineNo">340</span> this.timeoutMs = timeoutMs;<a name="line.340"></a>
-<span class="sourceLineNo">341</span> this.promise = promise;<a name="line.341"></a>
-<span class="sourceLineNo">342</span> }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.344"></a>
-<span class="sourceLineNo">345</span> sendSaslMessage(ctx, payload, null);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.349"></a>
-<span class="sourceLineNo">350</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.350"></a>
-<span class="sourceLineNo">351</span> // values for future expansion.<a name="line.351"></a>
-<span class="sourceLineNo">352</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span> return null;<a name="line.354"></a>
-<span class="sourceLineNo">355</span> }<a name="line.355"></a>
-<span class="sourceLineNo">356</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.357"></a>
-<span class="sourceLineNo">358</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.358"></a>
-<span class="sourceLineNo">359</span> }<a name="line.359"></a>
-<span class="sourceLineNo">360</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.360"></a>
-<span class="sourceLineNo">361</span> }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.363"></a>
-<span class="sourceLineNo">364</span> List<CipherOption> options) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.365"></a>
-<span class="sourceLineNo">366</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.366"></a>
-<span class="sourceLineNo">367</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> if (payload != null) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.369"></a>
-<span class="sourceLineNo">370</span> // and we want to keep that out of hbase-server.<a name="line.370"></a>
-<span class="sourceLineNo">371</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.371"></a>
-<span class="sourceLineNo">372</span> }<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (options != null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.376"></a>
-<span class="sourceLineNo">377</span> int size = proto.getSerializedSize();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.378"></a>
-<span class="sourceLineNo">379</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.379"></a>
-<span class="sourceLineNo">380</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> ctx.write(buf);<a name="line.381"></a>
-<span class="sourceLineNo">382</span> }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span> @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.385"></a>
-<span class="sourceLineNo">386</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.386"></a>
-<span class="sourceLineNo">387</span> sendSaslMessage(ctx, new byte[0]);<a name="line.387"></a>
-<span class="sourceLineNo">388</span> ctx.flush();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> step++;<a name="line.389"></a>
-<span class="sourceLineNo">390</span> }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span> @Override<a name="line.392"></a>
-<span class="sourceLineNo">393</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.393"></a>
-<span class="sourceLineNo">394</span> saslClient.dispose();<a name="line.394"></a>
-<span class="sourceLineNo">395</span> }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.399"></a>
-<span class="sourceLineNo">400</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span> throw new IOException(proto.getMessage());<a name="line.401"></a>
-<span class="sourceLineNo">402</span> }<a name="line.402"></a>
-<span class="sourceLineNo">403</span> }<a name="line.403"></a>
-<span class="sourceLineNo">404</span><a name="line.404"></a>
-<span class="sourceLineNo">405</span> private String getNegotiatedQop() {<a name="line.405"></a>
-<span class="sourceLineNo">406</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.406"></a>
-<span class="sourceLineNo">407</span> }<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span> private boolean isNegotiatedQopPrivacy() {<a name="line.409"></a>
-<span class="sourceLineNo">410</span> String qop = getNegotiatedQop();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> return qop != null && "auth-conf".equalsIgnoreCase(qop);<a name="line.411"></a>
-<span class="sourceLineNo">412</span> }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span> private boolean requestedQopContainsPrivacy() {<a name="line.414"></a>
-<span class="sourceLineNo">415</span> Set<String> requestedQop =<a name="line.415"></a>
-<span class="sourceLineNo">416</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.416"></a>
-<span class="sourceLineNo">417</span> return requestedQop.contains("auth-conf");<a name="line.417"></a>
-<span class="sourceLineNo">418</span> }<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span> private void checkSaslComplete() throws IOException {<a name="line.420"></a>
-<span class="sourceLineNo">421</span> if (!saslClient.isComplete()) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> throw new IOException("Failed to complete SASL handshake");<a name="line.422"></a>
-<span class="sourceLineNo">423</span> }<a name="line.423"></a>
-<span class="sourceLineNo">424</span> Set<String> requestedQop =<a name="line.424"></a>
-<span class="sourceLineNo">425</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.425"></a>
-<span class="sourceLineNo">426</span> String negotiatedQop = getNegotiatedQop();<a name="line.426"></a>
-<span class="sourceLineNo">427</span> LOG.debug(<a name="line.427"></a>
-<span class="sourceLineNo">428</span> "Verifying QOP, requested QOP = " + requestedQop + ", negotiated QOP = " + negotiatedQop);<a name="line.428"></a>
-<span class="sourceLineNo">429</span> if (!requestedQop.contains(negotiatedQop)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span> throw new IOException(String.format("SASL handshake completed, but "<a name="line.430"></a>
-<span class="sourceLineNo">431</span> + "channel does not have acceptable quality of protection, "<a name="line.431"></a>
-<span class="sourceLineNo">432</span> + "requested = %s, negotiated = %s",<a name="line.432"></a>
-<span class="sourceLineNo">433</span> requestedQop, negotiatedQop));<a name="line.433"></a>
-<span class="sourceLineNo">434</span> }<a name="line.434"></a>
-<span class="sourceLineNo">435</span> }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span> private boolean useWrap() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> String qop = (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> return qop != null && !"auth".equalsIgnoreCase(qop);<a name="line.439"></a>
-<span class="sourceLineNo">440</span> }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span> private CipherOption unwrap(CipherOption option, SaslClient saslClient) throws IOException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> byte[] inKey = option.getInKey();<a name="line.443"></a>
-<span class="sourceLineNo">444</span> if (inKey != null) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span> inKey = saslClient.unwrap(inKey, 0, inKey.length);<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> byte[] outKey = option.getOutKey();<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (outKey != null) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> outKey = saslClient.unwrap(outKey, 0, outKey.length);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> }<a name="line.450"></a>
-<span class="sourceLineNo">451</span> return new CipherOption(option.getCipherSuite(), inKey, option.getInIv(), outKey,<a name="line.451"></a>
-<span class="sourceLineNo">452</span> option.getOutIv());<a name="line.452"></a>
-<span class="sourceLineNo">453</span> }<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span> private CipherOption getCipherOption(DataTransferEncryptorMessageProto proto,<a name="line.455"></a>
-<span class="sourceLineNo">456</span> boolean isNegotiatedQopPrivacy, SaslClient saslClient) throws IOException {<a name="line.456"></a>
-<span class="sourceLineNo">457</span> List<CipherOption> cipherOptions =<a name="line.457"></a>
-<span class="sourceLineNo">458</span> PB_HELPER.convertCipherOptionProtos(proto.getCipherOptionList());<a name="line.458"></a>
-<span class="sourceLineNo">459</span> if (cipherOptions == null || cipherOptions.isEmpty()) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span> return null;<a name="line.460"></a>
+<span class="sourceLineNo">328</span> @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.329"></a>
+<span class="sourceLineNo">330</span> NameCallback nc = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span> PasswordCallback pc = null;<a name="line.331"></a>
+<span class="sourceLineNo">332</span> RealmCallback rc = null;<a name="line.332"></a>
+<span class="sourceLineNo">333</span> for (Callback callback : callbacks) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span> if (callback instanceof RealmChoiceCallback) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span> continue;<a name="line.335"></a>
+<span class="sourceLineNo">336</span> } else if (callback instanceof NameCallback) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span> nc = (NameCallback) callback;<a name="line.337"></a>
+<span class="sourceLineNo">338</span> } else if (callback instanceof PasswordCallback) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span> pc = (PasswordCallback) callback;<a name="line.339"></a>
+<span class="sourceLineNo">340</span> } else if (callback instanceof RealmCallback) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span> rc = (RealmCallback) callback;<a name="line.341"></a>
+<span class="sourceLineNo">342</span> } else {<a name="line.342"></a>
+<span class="sourceLineNo">343</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.343"></a>
+<span class="sourceLineNo">344</span> }<a name="line.344"></a>
+<span class="sourceLineNo">345</span> }<a name="line.345"></a>
+<span class="sourceLineNo">346</span> if (nc != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> nc.setName(userName);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span> if (pc != null) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span> pc.setPassword(password);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> }<a name="line.351"></a>
+<span class="sourceLineNo">352</span> if (rc != null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span> rc.setText(rc.getDefaultText());<a name="line.353"></a>
+<span class="sourceLineNo">354</span> }<a name="line.354"></a>
+<span class="sourceLineNo">355</span> }<a name="line.355"></a>
+<span class="sourceLineNo">356</span> }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span> private final Configuration conf;<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span> private final Map<String, String> saslProps;<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span> private final SaslClient saslClient;<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span> private final int timeoutMs;<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span> private final Promise<Void> promise;<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span> private int step = 0;<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.372"></a>
+<span class="sourceLineNo">373</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span> this.conf = conf;<a name="line.374"></a>
+<span class="sourceLineNo">375</span> this.saslProps = saslProps;<a name="line.375"></a>
+<span class="sourceLineNo">376</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.376"></a>
+<span class="sourceLineNo">377</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.377"></a>
+<span class="sourceLineNo">378</span> this.timeoutMs = timeoutMs;<a name="line.378"></a>
+<span class="sourceLineNo">379</span> this.promise = promise;<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> sendSaslMessage(ctx, payload, null);<a name="line.383"></a>
+<span class="sourceLineNo">384</span> }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.386"></a>
+<span class="sourceLineNo">387</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.387"></a>
+<span class="sourceLineNo">388</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.388"></a>
+<span class="sourceLineNo">389</span> // values for future expansion.<a name="line.389"></a>
+<span class="sourceLineNo">390</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.390"></a>
+<span class="sourceLineNo">391</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span> return null;<a name="line.392"></a>
+<span class="sourceLineNo">393</span> }<a name="line.393"></a>
+<span class="sourceLineNo">394</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.395"></a>
+<span class="sourceLineNo">396</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.396"></a>
+<span class="sourceLineNo">397</span> }<a name="line.397"></a>
+<span class="sourceLineNo">398</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.398"></a>
+<span class="sourceLineNo">399</span> }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.401"></a>
+<span class="sourceLineNo">402</span> List<CipherOption> options) throws IOException {<a name="line.402"></a>
+<span class="sourceLineNo">403</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.403"></a>
+<span class="sourceLineNo">404</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.404"></a>
+<span class="sourceLineNo">405</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.405"></a>
+<span class="sourceLineNo">406</span> if (payload != null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.407"></a>
+<span class="sourceLineNo">408</span> // and we want to keep that out of hbase-server.<a name="line.408"></a>
+<span class="sourceLineNo">409</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.409"></a>
+<span class="sourceLineNo">410</span> }<a name="line.410"></a>
+<span class="sourceLineNo">411</span> if (options != null) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.412"></a>
+<span class="sourceLineNo">413</span> }<a name="line.413"></a>
+<span class="sourceLineNo">414</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.414"></a>
+<span class="sourceLineNo">415</span> int size = proto.getSerializedSize();<a name="line.415"></a>
+<span class="sourceLineNo">416</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.416"></a>
+<span class="sourceLineNo">417</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.417"></a>
+<span class="sourceLineNo">418</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.418"></a>
+<span class="sourceLineNo">419</span> ctx.write(buf);<a name="line.419"></a>
+<span class="sourceLineNo">420</span> }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span> @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.424"></a>
+<span class="sourceLineNo">425</span> sendSaslMessage(ctx, new byte[0]);<a name="line.425"></a>
+<span class="sourceLineNo">426</span> ctx.flush();<a name="line.426"></a>
+<span class="sourceLineNo">427</span> step++;<a name="line.427"></a>
+<span class="sourceLineNo">428</span> }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span> @Override<a name="line.430"></a>
+<span class="sourceLineNo">431</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.431"></a>
+<span class="sourceLineNo">432</span> saslClient.dispose();<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.435"></a>
+<span class="sourceLineNo">436</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.437"></a>
+<span class="sourceLineNo">438</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span> throw new IOException(proto.getMessage());<a name="line.439"></a>
+<span class="sourceLineNo">440</span> }<a name="line.440"></a>
+<span class="sourceLineNo">441</span> }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span> private String getNegotiatedQop() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span> private boolean isNegotiatedQopPrivacy() {<a name="line.447"></a>
+<span class="sourc
<TRUNCATED>
[08/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html
index 05e032c..40ef9f4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html
@@ -25,767 +25,805 @@
<span class="sourceLineNo">017</span> */<a name="line.17"></a>
<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.io.asyncfs;<a name="line.18"></a>
<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.21"></a>
+<span class="sourceLineNo">020</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.21"></a>
<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import com.google.protobuf.CodedOutputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.io.IOException;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.lang.reflect.Field;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.lang.reflect.InvocationTargetException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.lang.reflect.Method;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.net.InetAddress;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import java.net.InetSocketAddress;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import java.nio.ByteBuffer;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import java.security.GeneralSecurityException;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import java.util.Arrays;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import java.util.Collections;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import java.util.List;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import java.util.Map;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import java.util.Set;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import java.util.concurrent.TimeUnit;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>import javax.security.auth.callback.Callback;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import javax.security.auth.callback.CallbackHandler;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import javax.security.auth.callback.NameCallback;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import javax.security.auth.callback.PasswordCallback;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import javax.security.sasl.RealmCallback;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import javax.security.sasl.Sasl;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import javax.security.sasl.SaslClient;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import javax.security.sasl.SaslException;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.commons.codec.binary.Base64;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.commons.lang3.StringUtils;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.conf.Configuration;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.slf4j.Logger;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.slf4j.LoggerFactory;<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>import com.google.protobuf.ByteString;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.security.token.Token;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>/**<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@InterfaceAudience.Private<a name="line.109"></a>
-<span class="sourceLineNo">110</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.110"></a>
-<span class="sourceLineNo">111</span> private static final Logger LOG =<a name="line.111"></a>
-<span class="sourceLineNo">112</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.112"></a>
+<span class="sourceLineNo">023</span>import com.google.protobuf.ByteString;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import com.google.protobuf.CodedOutputStream;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.lang.reflect.Field;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.lang.reflect.InvocationTargetException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.lang.reflect.Method;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.net.InetAddress;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.net.InetSocketAddress;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.ByteBuffer;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.security.GeneralSecurityException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.Arrays;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.List;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Map;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.Set;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import java.util.concurrent.TimeUnit;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import javax.security.auth.callback.Callback;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import javax.security.auth.callback.CallbackHandler;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import javax.security.auth.callback.NameCallback;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import javax.security.auth.callback.PasswordCallback;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import javax.security.sasl.RealmCallback;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import javax.security.sasl.Sasl;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import javax.security.sasl.SaslClient;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import javax.security.sasl.SaslException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.commons.codec.binary.Base64;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.commons.lang3.StringUtils;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.conf.Configuration;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.crypto.key.KeyProvider;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.security.token.Token;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.slf4j.Logger;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.slf4j.LoggerFactory;<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>/**<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.104"></a>
+<span class="sourceLineNo">105</span> */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>@InterfaceAudience.Private<a name="line.106"></a>
+<span class="sourceLineNo">107</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> private static final Logger LOG =<a name="line.108"></a>
+<span class="sourceLineNo">109</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span> }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span> private static final String SERVER_NAME = "0";<a name="line.117"></a>
-<span class="sourceLineNo">118</span> private static final String PROTOCOL = "hdfs";<a name="line.118"></a>
-<span class="sourceLineNo">119</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.119"></a>
-<span class="sourceLineNo">120</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> private static final String NAME_DELIMITER = " ";<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span> private interface SaslAdaptor {<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.127"></a>
+<span class="sourceLineNo">114</span> private static final String SERVER_NAME = "0";<a name="line.114"></a>
+<span class="sourceLineNo">115</span> private static final String PROTOCOL = "hdfs";<a name="line.115"></a>
+<span class="sourceLineNo">116</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.116"></a>
+<span class="sourceLineNo">117</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> private static final String NAME_DELIMITER = " ";<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span> private interface SaslAdaptor {<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> }<a name="line.127"></a>
<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> }<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.132"></a>
+<span class="sourceLineNo">129</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span> // helper class for convert protos.<a name="line.131"></a>
+<span class="sourceLineNo">132</span> private interface PBHelper {<a name="line.132"></a>
<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span> // helper class for convert protos.<a name="line.134"></a>
-<span class="sourceLineNo">135</span> private interface PBHelper {<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.137"></a>
+<span class="sourceLineNo">134</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.139"></a>
-<span class="sourceLineNo">140</span> }<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span> private static final PBHelper PB_HELPER;<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> private interface TransparentCryptoHelper {<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.146"></a>
-<span class="sourceLineNo">147</span> throws IOException;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span> private static SaslAdaptor createSaslAdaptor()<a name="line.152"></a>
-<span class="sourceLineNo">153</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.153"></a>
-<span class="sourceLineNo">154</span> Field saslPropsResolverField =<a name="line.154"></a>
-<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.155"></a>
-<span class="sourceLineNo">156</span> saslPropsResolverField.setAccessible(true);<a name="line.156"></a>
-<span class="sourceLineNo">157</span> Field trustedChannelResolverField =<a name="line.157"></a>
-<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.158"></a>
-<span class="sourceLineNo">159</span> trustedChannelResolverField.setAccessible(true);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> Field fallbackToSimpleAuthField =<a name="line.160"></a>
-<span class="sourceLineNo">161</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.161"></a>
-<span class="sourceLineNo">162</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.162"></a>
-<span class="sourceLineNo">163</span> return new SaslAdaptor() {<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> @Override<a name="line.165"></a>
-<span class="sourceLineNo">166</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span> try {<a name="line.167"></a>
-<span class="sourceLineNo">168</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.168"></a>
-<span class="sourceLineNo">169</span> } catch (IllegalAccessException e) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> throw new RuntimeException(e);<a name="line.170"></a>
-<span class="sourceLineNo">171</span> }<a name="line.171"></a>
-<span class="sourceLineNo">172</span> }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span> @Override<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> try {<a name="line.176"></a>
-<span class="sourceLineNo">177</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> } catch (IllegalAccessException e) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span> throw new RuntimeException(e);<a name="line.179"></a>
-<span class="sourceLineNo">180</span> }<a name="line.180"></a>
-<span class="sourceLineNo">181</span> }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span> @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span> try {<a name="line.185"></a>
-<span class="sourceLineNo">186</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.186"></a>
-<span class="sourceLineNo">187</span> } catch (IllegalAccessException e) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> throw new RuntimeException(e);<a name="line.188"></a>
-<span class="sourceLineNo">189</span> }<a name="line.189"></a>
-<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span> };<a name="line.191"></a>
-<span class="sourceLineNo">192</span> }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.194"></a>
-<span class="sourceLineNo">195</span> Class<?> helperClass;<a name="line.195"></a>
-<span class="sourceLineNo">196</span> try {<a name="line.196"></a>
-<span class="sourceLineNo">197</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.197"></a>
-<span class="sourceLineNo">198</span> } catch (ClassNotFoundException e) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.199"></a>
-<span class="sourceLineNo">200</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.200"></a>
-<span class="sourceLineNo">201</span> }<a name="line.201"></a>
-<span class="sourceLineNo">202</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> Method convertCipherOptionProtosMethod =<a name="line.203"></a>
-<span class="sourceLineNo">204</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.204"></a>
-<span class="sourceLineNo">205</span> return new PBHelper() {<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span> @SuppressWarnings("unchecked")<a name="line.207"></a>
-<span class="sourceLineNo">208</span> @Override<a name="line.208"></a>
-<span class="sourceLineNo">209</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span> try {<a name="line.210"></a>
-<span class="sourceLineNo">211</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span> throw new RuntimeException(e);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> }<a name="line.214"></a>
-<span class="sourceLineNo">215</span> }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> @SuppressWarnings("unchecked")<a name="line.217"></a>
-<span class="sourceLineNo">218</span> @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span> try {<a name="line.220"></a>
-<span class="sourceLineNo">221</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.221"></a>
-<span class="sourceLineNo">222</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span> throw new RuntimeException(e);<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span> }<a name="line.225"></a>
-<span class="sourceLineNo">226</span> };<a name="line.226"></a>
-<span class="sourceLineNo">227</span> }<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.229"></a>
-<span class="sourceLineNo">230</span> throws NoSuchMethodException {<a name="line.230"></a>
-<span class="sourceLineNo">231</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.231"></a>
-<span class="sourceLineNo">232</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.232"></a>
-<span class="sourceLineNo">233</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span> return new TransparentCryptoHelper() {<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span> @Override<a name="line.236"></a>
-<span class="sourceLineNo">237</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.237"></a>
-<span class="sourceLineNo">238</span> DFSClient client) throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span> try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> KeyVersion decryptedKey =<a name="line.240"></a>
-<span class="sourceLineNo">241</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.241"></a>
-<span class="sourceLineNo">242</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.242"></a>
-<span class="sourceLineNo">243</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.243"></a>
-<span class="sourceLineNo">244</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.244"></a>
-<span class="sourceLineNo">245</span> return encryptor;<a name="line.245"></a>
-<span class="sourceLineNo">246</span> } catch (InvocationTargetException e) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.247"></a>
-<span class="sourceLineNo">248</span> throw new RuntimeException(e.getTargetException());<a name="line.248"></a>
-<span class="sourceLineNo">249</span> } catch (GeneralSecurityException e) {<a name="line.249"></a>
-<span class="sourceLineNo">250</span> throw new IOException(e);<a name="line.250"></a>
-<span class="sourceLineNo">251</span> } catch (IllegalAccessException e) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> throw new RuntimeException(e);<a name="line.252"></a>
-<span class="sourceLineNo">253</span> }<a name="line.253"></a>
-<span class="sourceLineNo">254</span> }<a name="line.254"></a>
-<span class="sourceLineNo">255</span> };<a name="line.255"></a>
-<span class="sourceLineNo">256</span> }<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span> static {<a name="line.258"></a>
-<span class="sourceLineNo">259</span> try {<a name="line.259"></a>
-<span class="sourceLineNo">260</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.260"></a>
-<span class="sourceLineNo">261</span> PB_HELPER = createPBHelper();<a name="line.261"></a>
-<span class="sourceLineNo">262</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.262"></a>
-<span class="sourceLineNo">263</span> } catch (Exception e) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.264"></a>
-<span class="sourceLineNo">265</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.265"></a>
-<span class="sourceLineNo">266</span> + "HBASE-16110 for more information.";<a name="line.266"></a>
-<span class="sourceLineNo">267</span> LOG.error(msg, e);<a name="line.267"></a>
-<span class="sourceLineNo">268</span> throw new Error(msg, e);<a name="line.268"></a>
-<span class="sourceLineNo">269</span> }<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span> /**<a name="line.272"></a>
-<span class="sourceLineNo">273</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.273"></a>
-<span class="sourceLineNo">274</span> */<a name="line.274"></a>
-<span class="sourceLineNo">275</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span> private final char[] password;<a name="line.277"></a>
-<span class="sourceLineNo">278</span> private final String userName;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span> /**<a name="line.280"></a>
-<span class="sourceLineNo">281</span> * Creates a new SaslClientCallbackHandler.<a name="line.281"></a>
-<span class="sourceLineNo">282</span> * @param userName SASL user name<a name="line.282"></a>
-<span class="sourceLineNo">283</span> * @Param password SASL password<a name="line.283"></a>
-<span class="sourceLineNo">284</span> */<a name="line.284"></a>
-<span class="sourceLineNo">285</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span> this.password = password;<a name="line.286"></a>
-<span class="sourceLineNo">287</span> this.userName = userName;<a name="line.287"></a>
-<span class="sourceLineNo">288</span> }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span> @Override<a name="line.290"></a>
-<span class="sourceLineNo">291</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.291"></a>
-<span class="sourceLineNo">292</span> NameCallback nc = null;<a name="line.292"></a>
-<span class="sourceLineNo">293</span> PasswordCallback pc = null;<a name="line.293"></a>
-<span class="sourceLineNo">294</span> RealmCallback rc = null;<a name="line.294"></a>
-<span class="sourceLineNo">295</span> for (Callback callback : callbacks) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span> if (callback instanceof RealmChoiceCallback) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span> continue;<a name="line.297"></a>
-<span class="sourceLineNo">298</span> } else if (callback instanceof NameCallback) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span> nc = (NameCallback) callback;<a name="line.299"></a>
-<span class="sourceLineNo">300</span> } else if (callback instanceof PasswordCallback) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span> pc = (PasswordCallback) callback;<a name="line.301"></a>
-<span class="sourceLineNo">302</span> } else if (callback instanceof RealmCallback) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span> rc = (RealmCallback) callback;<a name="line.303"></a>
-<span class="sourceLineNo">304</span> } else {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span> }<a name="line.307"></a>
-<span class="sourceLineNo">308</span> if (nc != null) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span> nc.setName(userName);<a name="line.309"></a>
-<span class="sourceLineNo">310</span> }<a name="line.310"></a>
-<span class="sourceLineNo">311</span> if (pc != null) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> pc.setPassword(password);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span> if (rc != null) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span> rc.setText(rc.getDefaultText());<a name="line.315"></a>
-<span class="sourceLineNo">316</span> }<a name="line.316"></a>
-<span class="sourceLineNo">317</span> }<a name="line.317"></a>
-<span class="sourceLineNo">318</span> }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span> private final Configuration conf;<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span> private final Map<String, String> saslProps;<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span> private final SaslClient saslClient;<a name="line.326"></a>
+<span class="sourceLineNo">139</span> private static final PBHelper PB_HELPER;<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span> private interface TransparentCryptoHelper {<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.143"></a>
+<span class="sourceLineNo">144</span> throws IOException;<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span> private static SaslAdaptor createSaslAdaptor()<a name="line.149"></a>
+<span class="sourceLineNo">150</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Field saslPropsResolverField =<a name="line.151"></a>
+<span class="sourceLineNo">152</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.152"></a>
+<span class="sourceLineNo">153</span> saslPropsResolverField.setAccessible(true);<a name="line.153"></a>
+<span class="sourceLineNo">154</span> Field trustedChannelResolverField =<a name="line.154"></a>
+<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.155"></a>
+<span class="sourceLineNo">156</span> trustedChannelResolverField.setAccessible(true);<a name="line.156"></a>
+<span class="sourceLineNo">157</span> Field fallbackToSimpleAuthField =<a name="line.157"></a>
+<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.158"></a>
+<span class="sourceLineNo">159</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.159"></a>
+<span class="sourceLineNo">160</span> return new SaslAdaptor() {<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span> @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span> try {<a name="line.164"></a>
+<span class="sourceLineNo">165</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.165"></a>
+<span class="sourceLineNo">166</span> } catch (IllegalAccessException e) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span> throw new RuntimeException(e);<a name="line.167"></a>
+<span class="sourceLineNo">168</span> }<a name="line.168"></a>
+<span class="sourceLineNo">169</span> }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span> @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span> try {<a name="line.173"></a>
+<span class="sourceLineNo">174</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.174"></a>
+<span class="sourceLineNo">175</span> } catch (IllegalAccessException e) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span> throw new RuntimeException(e);<a name="line.176"></a>
+<span class="sourceLineNo">177</span> }<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span> @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span> try {<a name="line.182"></a>
+<span class="sourceLineNo">183</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.183"></a>
+<span class="sourceLineNo">184</span> } catch (IllegalAccessException e) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span> throw new RuntimeException(e);<a name="line.185"></a>
+<span class="sourceLineNo">186</span> }<a name="line.186"></a>
+<span class="sourceLineNo">187</span> }<a name="line.187"></a>
+<span class="sourceLineNo">188</span> };<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.191"></a>
+<span class="sourceLineNo">192</span> Class<?> helperClass;<a name="line.192"></a>
+<span class="sourceLineNo">193</span> try {<a name="line.193"></a>
+<span class="sourceLineNo">194</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.194"></a>
+<span class="sourceLineNo">195</span> } catch (ClassNotFoundException e) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.197"></a>
+<span class="sourceLineNo">198</span> }<a name="line.198"></a>
+<span class="sourceLineNo">199</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.199"></a>
+<span class="sourceLineNo">200</span> Method convertCipherOptionProtosMethod =<a name="line.200"></a>
+<span class="sourceLineNo">201</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.201"></a>
+<span class="sourceLineNo">202</span> return new PBHelper() {<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span> @SuppressWarnings("unchecked")<a name="line.204"></a>
+<span class="sourceLineNo">205</span> @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> try {<a name="line.207"></a>
+<span class="sourceLineNo">208</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.208"></a>
+<span class="sourceLineNo">209</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span> throw new RuntimeException(e);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> }<a name="line.211"></a>
+<span class="sourceLineNo">212</span> }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span> @SuppressWarnings("unchecked")<a name="line.214"></a>
+<span class="sourceLineNo">215</span> @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> try {<a name="line.217"></a>
+<span class="sourceLineNo">218</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span> throw new RuntimeException(e);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> };<a name="line.223"></a>
+<span class="sourceLineNo">224</span> }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span> private static TransparentCryptoHelper createTransparentCryptoHelper27()<a name="line.226"></a>
+<span class="sourceLineNo">227</span> throws NoSuchMethodException {<a name="line.227"></a>
+<span class="sourceLineNo">228</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.228"></a>
+<span class="sourceLineNo">229</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> return new TransparentCryptoHelper() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.234"></a>
+<span class="sourceLineNo">235</span> DFSClient client) throws IOException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span> try {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> KeyVersion decryptedKey =<a name="line.237"></a>
+<span class="sourceLineNo">238</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.238"></a>
+<span class="sourceLineNo">239</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.239"></a>
+<span class="sourceLineNo">240</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.241"></a>
+<span class="sourceLineNo">242</span> return encryptor;<a name="line.242"></a>
+<span class="sourceLineNo">243</span> } catch (InvocationTargetException e) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.244"></a>
+<span class="sourceLineNo">245</span> throw new RuntimeException(e.getTargetException());<a name="line.245"></a>
+<span class="sourceLineNo">246</span> } catch (GeneralSecurityException e) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> throw new IOException(e);<a name="line.247"></a>
+<span class="sourceLineNo">248</span> } catch (IllegalAccessException e) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span> throw new RuntimeException(e);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span> }<a name="line.251"></a>
+<span class="sourceLineNo">252</span> };<a name="line.252"></a>
+<span class="sourceLineNo">253</span> }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span> private static TransparentCryptoHelper createTransparentCryptoHelper28()<a name="line.255"></a>
+<span class="sourceLineNo">256</span> throws ClassNotFoundException, NoSuchMethodException {<a name="line.256"></a>
+<span class="sourceLineNo">257</span> Class<?> hdfsKMSUtilCls = Class.forName("org.apache.hadoop.hdfs.HdfsKMSUtil");<a name="line.257"></a>
+<span class="sourceLineNo">258</span> Method decryptEncryptedDataEncryptionKeyMethod = hdfsKMSUtilCls.getDeclaredMethod(<a name="line.258"></a>
+<span class="sourceLineNo">259</span> "decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class, KeyProvider.class);<a name="line.259"></a>
+<span class="sourceLineNo">260</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.260"></a>
+<span class="sourceLineNo">261</span> return new TransparentCryptoHelper() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span> @Override<a name="line.263"></a>
+<span class="sourceLineNo">264</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.264"></a>
+<span class="sourceLineNo">265</span> DFSClient client) throws IOException {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> try {<a name="line.266"></a>
+<span class="sourceLineNo">267</span> KeyVersion decryptedKey = (KeyVersion) decryptEncryptedDataEncryptionKeyMethod<a name="line.267"></a>
+<span class="sourceLineNo">268</span> .invoke(null, feInfo, client.getKeyProvider());<a name="line.268"></a>
+<span class="sourceLineNo">269</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.269"></a>
+<span class="sourceLineNo">270</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.270"></a>
+<span class="sourceLineNo">271</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.271"></a>
+<span class="sourceLineNo">272</span> return encryptor;<a name="line.272"></a>
+<span class="sourceLineNo">273</span> } catch (InvocationTargetException e) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.274"></a>
+<span class="sourceLineNo">275</span> throw new RuntimeException(e.getTargetException());<a name="line.275"></a>
+<span class="sourceLineNo">276</span> } catch (GeneralSecurityException e) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> throw new IOException(e);<a name="line.277"></a>
+<span class="sourceLineNo">278</span> } catch (IllegalAccessException e) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> throw new RuntimeException(e);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> }<a name="line.280"></a>
+<span class="sourceLineNo">281</span> }<a name="line.281"></a>
+<span class="sourceLineNo">282</span> };<a name="line.282"></a>
+<span class="sourceLineNo">283</span> }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.285"></a>
+<span class="sourceLineNo">286</span> throws NoSuchMethodException, ClassNotFoundException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> try {<a name="line.287"></a>
+<span class="sourceLineNo">288</span> return createTransparentCryptoHelper27();<a name="line.288"></a>
+<span class="sourceLineNo">289</span> } catch (NoSuchMethodException e) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> LOG.debug("No decryptEncryptedDataEncryptionKey method in DFSClient, should be hadoop 2.8+",<a name="line.290"></a>
+<span class="sourceLineNo">291</span> e);<a name="line.291"></a>
+<span class="sourceLineNo">292</span> }<a name="line.292"></a>
+<span class="sourceLineNo">293</span> return createTransparentCryptoHelper28();<a name="line.293"></a>
+<span class="sourceLineNo">294</span> }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span> static {<a name="line.296"></a>
+<span class="sourceLineNo">297</span> try {<a name="line.297"></a>
+<span class="sourceLineNo">298</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.298"></a>
+<span class="sourceLineNo">299</span> PB_HELPER = createPBHelper();<a name="line.299"></a>
+<span class="sourceLineNo">300</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.300"></a>
+<span class="sourceLineNo">301</span> } catch (Exception e) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.302"></a>
+<span class="sourceLineNo">303</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.303"></a>
+<span class="sourceLineNo">304</span> + "HBASE-16110 for more information.";<a name="line.304"></a>
+<span class="sourceLineNo">305</span> LOG.error(msg, e);<a name="line.305"></a>
+<span class="sourceLineNo">306</span> throw new Error(msg, e);<a name="line.306"></a>
+<span class="sourceLineNo">307</span> }<a name="line.307"></a>
+<span class="sourceLineNo">308</span> }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span> /**<a name="line.310"></a>
+<span class="sourceLineNo">311</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.311"></a>
+<span class="sourceLineNo">312</span> */<a name="line.312"></a>
+<span class="sourceLineNo">313</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span> private final char[] password;<a name="line.315"></a>
+<span class="sourceLineNo">316</span> private final String userName;<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span> /**<a name="line.318"></a>
+<span class="sourceLineNo">319</span> * Creates a new SaslClientCallbackHandler.<a name="line.319"></a>
+<span class="sourceLineNo">320</span> * @param userName SASL user name<a name="line.320"></a>
+<span class="sourceLineNo">321</span> * @Param password SASL password<a name="line.321"></a>
+<span class="sourceLineNo">322</span> */<a name="line.322"></a>
+<span class="sourceLineNo">323</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span> this.password = password;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> this.userName = userName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> }<a name="line.326"></a>
<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span> private final int timeoutMs;<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span> private final Promise<Void> promise;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span> private int step = 0;<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.334"></a>
-<span class="sourceLineNo">335</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.335"></a>
-<span class="sourceLineNo">336</span> this.conf = conf;<a name="line.336"></a>
-<span class="sourceLineNo">337</span> this.saslProps = saslProps;<a name="line.337"></a>
-<span class="sourceLineNo">338</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.338"></a>
-<span class="sourceLineNo">339</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.339"></a>
-<span class="sourceLineNo">340</span> this.timeoutMs = timeoutMs;<a name="line.340"></a>
-<span class="sourceLineNo">341</span> this.promise = promise;<a name="line.341"></a>
-<span class="sourceLineNo">342</span> }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.344"></a>
-<span class="sourceLineNo">345</span> sendSaslMessage(ctx, payload, null);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.349"></a>
-<span class="sourceLineNo">350</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.350"></a>
-<span class="sourceLineNo">351</span> // values for future expansion.<a name="line.351"></a>
-<span class="sourceLineNo">352</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span> return null;<a name="line.354"></a>
-<span class="sourceLineNo">355</span> }<a name="line.355"></a>
-<span class="sourceLineNo">356</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.357"></a>
-<span class="sourceLineNo">358</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.358"></a>
-<span class="sourceLineNo">359</span> }<a name="line.359"></a>
-<span class="sourceLineNo">360</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.360"></a>
-<span class="sourceLineNo">361</span> }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.363"></a>
-<span class="sourceLineNo">364</span> List<CipherOption> options) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.365"></a>
-<span class="sourceLineNo">366</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.366"></a>
-<span class="sourceLineNo">367</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> if (payload != null) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.369"></a>
-<span class="sourceLineNo">370</span> // and we want to keep that out of hbase-server.<a name="line.370"></a>
-<span class="sourceLineNo">371</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.371"></a>
-<span class="sourceLineNo">372</span> }<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (options != null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.376"></a>
-<span class="sourceLineNo">377</span> int size = proto.getSerializedSize();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.378"></a>
-<span class="sourceLineNo">379</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.379"></a>
-<span class="sourceLineNo">380</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> ctx.write(buf);<a name="line.381"></a>
-<span class="sourceLineNo">382</span> }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span> @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.385"></a>
-<span class="sourceLineNo">386</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.386"></a>
-<span class="sourceLineNo">387</span> sendSaslMessage(ctx, new byte[0]);<a name="line.387"></a>
-<span class="sourceLineNo">388</span> ctx.flush();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> step++;<a name="line.389"></a>
-<span class="sourceLineNo">390</span> }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span> @Override<a name="line.392"></a>
-<span class="sourceLineNo">393</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.393"></a>
-<span class="sourceLineNo">394</span> saslClient.dispose();<a name="line.394"></a>
-<span class="sourceLineNo">395</span> }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.399"></a>
-<span class="sourceLineNo">400</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span> throw new IOException(proto.getMessage());<a name="line.401"></a>
-<span class="sourceLineNo">402</span> }<a name="line.402"></a>
-<span class="sourceLineNo">403</span> }<a name="line.403"></a>
-<span class="sourceLineNo">404</span><a name="line.404"></a>
-<span class="sourceLineNo">405</span> private String getNegotiatedQop() {<a name="line.405"></a>
-<span class="sourceLineNo">406</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.406"></a>
-<span class="sourceLineNo">407</span> }<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span> private boolean isNegotiatedQopPrivacy() {<a name="line.409"></a>
-<span class="sourceLineNo">410</span> String qop = getNegotiatedQop();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> return qop != null && "auth-conf".equalsIgnoreCase(qop);<a name="line.411"></a>
-<span class="sourceLineNo">412</span> }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span> private boolean requestedQopContainsPrivacy() {<a name="line.414"></a>
-<span class="sourceLineNo">415</span> Set<String> requestedQop =<a name="line.415"></a>
-<span class="sourceLineNo">416</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.416"></a>
-<span class="sourceLineNo">417</span> return requestedQop.contains("auth-conf");<a name="line.417"></a>
-<span class="sourceLineNo">418</span> }<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span> private void checkSaslComplete() throws IOException {<a name="line.420"></a>
-<span class="sourceLineNo">421</span> if (!saslClient.isComplete()) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> throw new IOException("Failed to complete SASL handshake");<a name="line.422"></a>
-<span class="sourceLineNo">423</span> }<a name="line.423"></a>
-<span class="sourceLineNo">424</span> Set<String> requestedQop =<a name="line.424"></a>
-<span class="sourceLineNo">425</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.425"></a>
-<span class="sourceLineNo">426</span> String negotiatedQop = getNegotiatedQop();<a name="line.426"></a>
-<span class="sourceLineNo">427</span> LOG.debug(<a name="line.427"></a>
-<span class="sourceLineNo">428</span> "Verifying QOP, requested QOP = " + requestedQop + ", negotiated QOP = " + negotiatedQop);<a name="line.428"></a>
-<span class="sourceLineNo">429</span> if (!requestedQop.contains(negotiatedQop)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span> throw new IOException(String.format("SASL handshake completed, but "<a name="line.430"></a>
-<span class="sourceLineNo">431</span> + "channel does not have acceptable quality of protection, "<a name="line.431"></a>
-<span class="sourceLineNo">432</span> + "requested = %s, negotiated = %s",<a name="line.432"></a>
-<span class="sourceLineNo">433</span> requestedQop, negotiatedQop));<a name="line.433"></a>
-<span class="sourceLineNo">434</span> }<a name="line.434"></a>
-<span class="sourceLineNo">435</span> }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span> private boolean useWrap() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> String qop = (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> return qop != null && !"auth".equalsIgnoreCase(qop);<a name="line.439"></a>
-<span class="sourceLineNo">440</span> }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span> private CipherOption unwrap(CipherOption option, SaslClient saslClient) throws IOException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> byte[] inKey = option.getInKey();<a name="line.443"></a>
-<span class="sourceLineNo">444</span> if (inKey != null) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span> inKey = saslClient.unwrap(inKey, 0, inKey.length);<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> byte[] outKey = option.getOutKey();<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (outKey != null) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> outKey = saslClient.unwrap(outKey, 0, outKey.length);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> }<a name="line.450"></a>
-<span class="sourceLineNo">451</span> return new CipherOption(option.getCipherSuite(), inKey, option.getInIv(), outKey,<a name="line.451"></a>
-<span class="sourceLineNo">452</span> option.getOutIv());<a name="line.452"></a>
-<span class="sourceLineNo">453</span> }<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span> private CipherOption getCipherOption(DataTransferEncryptorMessageProto proto,<a name="line.455"></a>
-<span class="sourceLineNo">456</span> boolean isNegotiatedQopPrivacy, SaslClient saslClient) throws IOException {<a name="line.456"></a>
-<span class="sourceLineNo">457</span> List<CipherOption> cipherOptions =<a name="line.457"></a>
-<span class="sourceLineNo">458</span> PB_HELPER.convertCipherOptionProtos(proto.getCipherOptionList());<a name="line.458"></a>
-<span class="sourceLineNo">459</span> if (cipherOptions == null || cipherOptions.isEmpty()) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span> return null;<a name="line.460"></a>
+<span class="sourceLineNo">328</span> @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.329"></a>
+<span class="sourceLineNo">330</span> NameCallback nc = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span> PasswordCallback pc = null;<a name="line.331"></a>
+<span class="sourceLineNo">332</span> RealmCallback rc = null;<a name="line.332"></a>
+<span class="sourceLineNo">333</span> for (Callback callback : callbacks) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span> if (callback instanceof RealmChoiceCallback) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span> continue;<a name="line.335"></a>
+<span class="sourceLineNo">336</span> } else if (callback instanceof NameCallback) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span> nc = (NameCallback) callback;<a name="line.337"></a>
+<span class="sourceLineNo">338</span> } else if (callback instanceof PasswordCallback) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span> pc = (PasswordCallback) callback;<a name="line.339"></a>
+<span class="sourceLineNo">340</span> } else if (callback instanceof RealmCallback) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span> rc = (RealmCallback) callback;<a name="line.341"></a>
+<span class="sourceLineNo">342</span> } else {<a name="line.342"></a>
+<span class="sourceLineNo">343</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.343"></a>
+<span class="sourceLineNo">344</span> }<a name="line.344"></a>
+<span class="sourceLineNo">345</span> }<a name="line.345"></a>
+<span class="sourceLineNo">346</span> if (nc != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> nc.setName(userName);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span> if (pc != null) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span> pc.setPassword(password);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> }<a name="line.351"></a>
+<span class="sourceLineNo">352</span> if (rc != null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span> rc.setText(rc.getDefaultText());<a name="line.353"></a>
+<span class="sourceLineNo">354</span> }<a name="line.354"></a>
+<span class="sourceLineNo">355</span> }<a name="line.355"></a>
+<span class="sourceLineNo">356</span> }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span> private final Configuration conf;<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span> private final Map<String, String> saslProps;<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span> private final SaslClient saslClient;<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span> private final int timeoutMs;<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span> private final Promise<Void> promise;<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span> private int step = 0;<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.372"></a>
+<span class="sourceLineNo">373</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span> this.conf = conf;<a name="line.374"></a>
+<span class="sourceLineNo">375</span> this.saslProps = saslProps;<a name="line.375"></a>
+<span class="sourceLineNo">376</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.376"></a>
+<span class="sourceLineNo">377</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.377"></a>
+<span class="sourceLineNo">378</span> this.timeoutMs = timeoutMs;<a name="line.378"></a>
+<span class="sourceLineNo">379</span> this.promise = promise;<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> sendSaslMessage(ctx, payload, null);<a name="line.383"></a>
+<span class="sourceLineNo">384</span> }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.386"></a>
+<span class="sourceLineNo">387</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.387"></a>
+<span class="sourceLineNo">388</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.388"></a>
+<span class="sourceLineNo">389</span> // values for future expansion.<a name="line.389"></a>
+<span class="sourceLineNo">390</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.390"></a>
+<span class="sourceLineNo">391</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span> return null;<a name="line.392"></a>
+<span class="sourceLineNo">393</span> }<a name="line.393"></a>
+<span class="sourceLineNo">394</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.395"></a>
+<span class="sourceLineNo">396</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.396"></a>
+<span class="sourceLineNo">397</span> }<a name="line.397"></a>
+<span class="sourceLineNo">398</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.398"></a>
+<span class="sourceLineNo">399</span> }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.401"></a>
+<span class="sourceLineNo">402</span> List<CipherOption> options) throws IOException {<a name="line.402"></a>
+<span class="sourceLineNo">403</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.403"></a>
+<span class="sourceLineNo">404</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.404"></a>
+<span class="sourceLineNo">405</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.405"></a>
+<span class="sourceLineNo">406</span> if (payload != null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.407"></a>
+<span class="sourceLineNo">408</span> // and we want to keep that out of hbase-server.<a name="line.408"></a>
+<span class="sourceLineNo">409</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.409"></a>
+<span class="sourceLineNo">410</span> }<a name="line.410"></a>
+<span class="sourceLineNo">411</span> if (options != null) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.412"></a>
+<span class="sourceLineNo">413</span> }<a name="line.413"></a>
+<span class="sourceLineNo">414</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.414"></a>
+<span class="sourceLineNo">415</span> int size = proto.getSerializedSize();<a name="line.415"></a>
+<span class="sourceLineNo">416</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.416"></a>
+<span class="sourceLineNo">417</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.417"></a>
+<span class="sourceLineNo">418</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.418"></a>
+<span class="sourceLineNo">419</span> ctx.write(buf);<a name="line.419"></a>
+<span class="sourceLineNo">420</span> }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span> @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.424"></a>
+<span class="sourceLineNo">425</span> sendSaslMessage(ctx, new byte[0]);<a name="line.425"></a>
+<span class="sourceLineNo">426</span> ctx.flush();<a name="line.426"></a>
+<span class="sourceLineNo">427</span> step++;<a name="line.427"></a>
+<span class="sourceLineNo">428</span> }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span> @Override<a name="line.430"></a>
+<span class="sourceLineNo">431</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.431"></a>
+<span class="sourceLineNo">432</span> saslClient.dispose();<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.435"></a>
+<span class="sourceLineNo">436</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.437"></a>
+<span class="sourceLineNo">438</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span> throw new IOException(proto.getMessage());<a name="line.439"></a>
+<span class="sourceLineNo">440</span> }<a name="line.440"></a>
+<span class="sourceLineNo">441</span> }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span> private String getNegotiatedQop() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span> private boolean isNegotiatedQopPrivacy() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span> String qop = getNego
<TRUNCATED>
[49/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index ba9351b..1eeeba8 100644
--- a/book.html
+++ b/book.html
@@ -17623,6 +17623,18 @@ See the above HDFS Architecture link for more information.</p>
<div class="sect1">
<h2 id="arch.timelineconsistent.reads"><a class="anchor" href="#arch.timelineconsistent.reads"></a>74. Timeline-consistent High Available Reads</h2>
<div class="sectionbody">
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The current <a href="#amv2">Assignment Manager V2</a> does not work well with region replica, so this feature maybe broken. Use it with caution.
+</td>
+</tr>
+</table>
+</div>
<div class="sect2">
<h3 id="casestudies.timelineconsistent.intro"><a class="anchor" href="#casestudies.timelineconsistent.intro"></a>74.1. Introduction</h3>
<div class="paragraph">
@@ -40625,7 +40637,7 @@ org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
<div id="footer">
<div id="footer-text">
Version 3.0.0-SNAPSHOT<br>
-Last updated 2018-06-30 17:03:31 UTC
+Last updated 2018-07-03 19:46:59 UTC
</div>
</div>
</body>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index d3c1104..de96b42 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -7,7 +7,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta name="Date-Revision-yyyymmdd" content="20180630" />
+ <meta name="Date-Revision-yyyymmdd" content="20180703" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase –
Bulk Loads in Apache HBase (TM)
@@ -306,7 +306,7 @@ under the License. -->
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-06-30</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-07-03</li>
</p>
</div>
[25/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 4c32817..a2cfe64 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -165,7 +165,7 @@
</li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.MemStoreChunkPool.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.MemStoreChunkPool</span></a> (implements org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.HeapMemoryTuneObserver.html" title="interface in org.apache.hadoop.hbase.regionserver">HeapMemoryManager.HeapMemoryTuneObserver</a>)</li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.InMemoryFlushRunnable</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryCompactionRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.InMemoryCompactionRunnable</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>)</li>
<li type="circle">org.apache.hadoop.hbase.regionserver.compactions.<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions"><span class="typeNameLink">CompactionContext</span></a>
<ul>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DateTieredStoreEngine.DateTieredCompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DateTieredStoreEngine.DateTieredCompactionContext</span></a></li>
@@ -704,20 +704,20 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
index 858ccf6..23060c2 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -130,8 +130,8 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
index 46651a5..feee307 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -247,9 +247,9 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
index f8e4b11..3c7146a 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
@@ -160,8 +160,8 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">SyncReplicationState</span></a></li>
<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.PeerState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationPeer.PeerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">SyncReplicationState</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html
index da73373..e77672f 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":42,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":42,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -138,30 +138,34 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
+<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#ageOfLastShippedOp">ageOfLastShippedOp</a></span></code> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#globalSourceSource">globalSourceSource</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#id">id</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#lastHFileRefsQueueSize">lastHFileRefsQueueSize</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#lastTimestamps">lastTimestamps</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#LOG">LOG</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#singleSourceSource">singleSourceSource</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#singleSourceSourceByTable">singleSourceSourceByTable</a></span></code> </td>
</tr>
@@ -242,52 +246,64 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
</td>
</tr>
<tr id="i5" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#getAgeofLastShippedOp-java.lang.String-">getAgeofLastShippedOp</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroup)</code>
+<div class="block">get age of last shipped op of given wal group.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#getLastTimeStampOfWalGroup-java.lang.String-">getLastTimeStampOfWalGroup</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroup)</code>
+<div class="block">get the last timestamp of given wal group.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#getMetricsContext--">getMetricsContext</a></span>()</code>
<div class="block">Get the metrics context.</div>
</td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#getMetricsDescription--">getMetricsDescription</a></span>()</code>
<div class="block">Get the description of what this source exposes.</div>
</td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#getMetricsJmxContext--">getMetricsJmxContext</a></span>()</code>
<div class="block">Get the name of the context in JMX that this source will be exposed through.</div>
</td>
</tr>
-<tr id="i8" class="altColor">
+<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#getMetricsName--">getMetricsName</a></span>()</code>
<div class="block">Get the name of the metrics that are being exported by this source.</div>
</td>
</tr>
-<tr id="i9" class="rowColor">
+<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#getPeerID--">getPeerID</a></span>()</code>
<div class="block">Get the slave peer ID</div>
</td>
</tr>
-<tr id="i10" class="altColor">
+<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#getSingleSourceSourceByTable--">getSingleSourceSourceByTable</a></span>()</code> </td>
</tr>
-<tr id="i11" class="rowColor">
+<tr id="i13" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#getSizeOfLogQueue--">getSizeOfLogQueue</a></span>()</code>
<div class="block">Get the sizeOfLogQueue</div>
</td>
</tr>
-<tr id="i12" class="altColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#getTimestampOfLastShippedOp--">getTimestampOfLastShippedOp</a></span>()</code>
<div class="block">Get the timestampsOfLastShippedOp, if there are multiple groups, return the latest one</div>
</td>
</tr>
-<tr id="i13" class="rowColor">
+<tr id="i15" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#getTimeStampOfLastShippedOp--">getTimeStampOfLastShippedOp</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
@@ -295,135 +311,135 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
</div>
</td>
</tr>
-<tr id="i14" class="altColor">
+<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incCounters-java.lang.String-long-">incCounters</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> counterName,
long delta)</code>
<div class="block">Add some amount to a counter.</div>
</td>
</tr>
-<tr id="i15" class="rowColor">
+<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incGauge-java.lang.String-long-">incGauge</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> gaugeName,
long delta)</code>
<div class="block">Add some amount to a gauge.</div>
</td>
</tr>
-<tr id="i16" class="altColor">
+<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incrBytesSkippedInUncleanlyClosedWALs-long-">incrBytesSkippedInUncleanlyClosedWALs</a></span>(long bytes)</code> </td>
</tr>
-<tr id="i17" class="rowColor">
+<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incrCompletedRecoveryQueue--">incrCompletedRecoveryQueue</a></span>()</code> </td>
</tr>
-<tr id="i18" class="altColor">
+<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incrCompletedWAL--">incrCompletedWAL</a></span>()</code> </td>
</tr>
-<tr id="i19" class="rowColor">
+<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incrLogEditsFiltered--">incrLogEditsFiltered</a></span>()</code>
<div class="block">The number of log edits filtered out.</div>
</td>
</tr>
-<tr id="i20" class="altColor">
+<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incrLogEditsFiltered-long-">incrLogEditsFiltered</a></span>(long delta)</code>
<div class="block">Add on the number of log edits filtered</div>
</td>
</tr>
-<tr id="i21" class="rowColor">
+<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incrLogEditsRead--">incrLogEditsRead</a></span>()</code>
<div class="block">Increment the number of log edits read by one.</div>
</td>
</tr>
-<tr id="i22" class="altColor">
+<tr id="i24" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incrLogEditsRead-long-">incrLogEditsRead</a></span>(long delta)</code>
<div class="block">Add on the the number of log edits read</div>
</td>
</tr>
-<tr id="i23" class="rowColor">
+<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incrLogReadInBytes-long-">incrLogReadInBytes</a></span>(long readInBytes)</code>
<div class="block">increase the byte number read by source from log file</div>
</td>
</tr>
-<tr id="i24" class="altColor">
+<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incrRepeatedFileBytes-long-">incrRepeatedFileBytes</a></span>(long bytes)</code> </td>
</tr>
-<tr id="i25" class="rowColor">
+<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incrRestartedWALReading--">incrRestartedWALReading</a></span>()</code> </td>
</tr>
-<tr id="i26" class="altColor">
+<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incrSizeOfHFileRefsQueue-long-">incrSizeOfHFileRefsQueue</a></span>(long size)</code> </td>
</tr>
-<tr id="i27" class="rowColor">
+<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incrSizeOfLogQueue--">incrSizeOfLogQueue</a></span>()</code>
<div class="block">Increment size of the log queue.</div>
</td>
</tr>
-<tr id="i28" class="altColor">
+<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incrUncleanlyClosedWALs--">incrUncleanlyClosedWALs</a></span>()</code> </td>
</tr>
-<tr id="i29" class="rowColor">
+<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#incrUnknownFileLengthForClosedWAL--">incrUnknownFileLengthForClosedWAL</a></span>()</code> </td>
</tr>
-<tr id="i30" class="altColor">
+<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#init--">init</a></span>()</code>
<div class="block">Clear out the metrics and re-prepare the source.</div>
</td>
</tr>
-<tr id="i31" class="rowColor">
+<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#refreshAgeOfLastShippedOp-java.lang.String-">refreshAgeOfLastShippedOp</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroupId)</code>
<div class="block">Convenience method to use the last given timestamp to refresh the age of the last edit.</div>
</td>
</tr>
-<tr id="i32" class="altColor">
+<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#removeMetric-java.lang.String-">removeMetric</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</code>
<div class="block">Remove a metric and no longer announce it.</div>
</td>
</tr>
-<tr id="i33" class="rowColor">
+<tr id="i35" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#setAgeOfLastShippedOp-long-java.lang.String-">setAgeOfLastShippedOp</a></span>(long timestamp,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroup)</code>
<div class="block">Set the age of the last edit that was shipped</div>
</td>
</tr>
-<tr id="i34" class="altColor">
+<tr id="i36" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#setAgeOfLastShippedOpByTable-long-java.lang.String-">setAgeOfLastShippedOpByTable</a></span>(long timestamp,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> tableName)</code>
<div class="block">Set the age of the last edit that was shipped group by table</div>
</td>
</tr>
-<tr id="i35" class="rowColor">
+<tr id="i37" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#setGauge-java.lang.String-long-">setGauge</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> gaugeName,
long value)</code>
<div class="block">Set a gauge to a specific value.</div>
</td>
</tr>
-<tr id="i36" class="altColor">
+<tr id="i38" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#shipBatch-long-int-">shipBatch</a></span>(long batchSize,
int sizeInBytes)</code>
<div class="block">Convience method to apply changes to metrics do to shipping a batch of logs.</div>
</td>
</tr>
-<tr id="i37" class="rowColor">
+<tr id="i39" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#shipBatch-long-int-long-">shipBatch</a></span>(long batchSize,
int sizeInBytes,
@@ -431,7 +447,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<div class="block">Convience method to apply changes to metrics do to shipping a batch of logs.</div>
</td>
</tr>
-<tr id="i38" class="altColor">
+<tr id="i40" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#updateHistogram-java.lang.String-long-">updateHistogram</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
long value)</code>
@@ -485,13 +501,22 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.44">lastTimestamps</a></pre>
</li>
</ul>
+<a name="ageOfLastShippedOp">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ageOfLastShippedOp</h4>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.45">ageOfLastShippedOp</a></pre>
+</li>
+</ul>
<a name="lastHFileRefsQueueSize">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lastHFileRefsQueueSize</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.45">lastHFileRefsQueueSize</a></pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.46">lastHFileRefsQueueSize</a></pre>
</li>
</ul>
<a name="id">
@@ -500,7 +525,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>id</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.46">id</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.47">id</a></pre>
</li>
</ul>
<a name="singleSourceSource">
@@ -509,7 +534,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>singleSourceSource</h4>
-<pre>private final <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.48">singleSourceSource</a></pre>
+<pre>private final <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.49">singleSourceSource</a></pre>
</li>
</ul>
<a name="globalSourceSource">
@@ -518,7 +543,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>globalSourceSource</h4>
-<pre>private final <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.49">globalSourceSource</a></pre>
+<pre>private final <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.50">globalSourceSource</a></pre>
</li>
</ul>
<a name="singleSourceSourceByTable">
@@ -527,7 +552,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockListLast">
<li class="blockList">
<h4>singleSourceSourceByTable</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.50">singleSourceSourceByTable</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.51">singleSourceSourceByTable</a></pre>
</li>
</ul>
</li>
@@ -544,7 +569,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>MetricsSource</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.57">MetricsSource</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id)</pre>
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.58">MetricsSource</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id)</pre>
<div class="block">Constructor used to register the metrics</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -558,7 +583,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockListLast">
<li class="blockList">
<h4>MetricsSource</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.72">MetricsSource</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.73">MetricsSource</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a> singleSourceSource,
<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a> globalSourceSource,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a>> singleSourceSourceByTable)</pre>
@@ -585,7 +610,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>setAgeOfLastShippedOp</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.86">setAgeOfLastShippedOp</a>(long timestamp,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.87">setAgeOfLastShippedOp</a>(long timestamp,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroup)</pre>
<div class="block">Set the age of the last edit that was shipped</div>
<dl>
@@ -601,7 +626,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>setAgeOfLastShippedOpByTable</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.98">setAgeOfLastShippedOpByTable</a>(long timestamp,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.100">setAgeOfLastShippedOpByTable</a>(long timestamp,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> tableName)</pre>
<div class="block">Set the age of the last edit that was shipped group by table</div>
<dl>
@@ -611,13 +636,45 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
</dl>
</li>
</ul>
+<a name="getLastTimeStampOfWalGroup-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastTimeStampOfWalGroup</h4>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.113">getLastTimeStampOfWalGroup</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroup)</pre>
+<div class="block">get the last timestamp of given wal group. If the walGroup is null, return 0.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>walGroup</code> - which group we are getting</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>timeStamp</dd>
+</dl>
+</li>
+</ul>
+<a name="getAgeofLastShippedOp-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAgeofLastShippedOp</h4>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.122">getAgeofLastShippedOp</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroup)</pre>
+<div class="block">get age of last shipped op of given wal group. If the walGroup is null, return 0</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>walGroup</code> - which group we are getting</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>age</dd>
+</dl>
+</li>
+</ul>
<a name="refreshAgeOfLastShippedOp-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>refreshAgeOfLastShippedOp</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.111">refreshAgeOfLastShippedOp</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroupId)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.131">refreshAgeOfLastShippedOp</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> walGroupId)</pre>
<div class="block">Convenience method to use the last given timestamp to refresh the age of the last edit. Used
when replication fails and need to keep that metric accurate.</div>
<dl>
@@ -632,7 +689,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>incrSizeOfLogQueue</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.125">incrSizeOfLogQueue</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.145">incrSizeOfLogQueue</a>()</pre>
<div class="block">Increment size of the log queue.</div>
</li>
</ul>
@@ -642,7 +699,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>decrSizeOfLogQueue</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.130">decrSizeOfLogQueue</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.150">decrSizeOfLogQueue</a>()</pre>
</li>
</ul>
<a name="incrLogEditsRead-long-">
@@ -651,7 +708,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>incrLogEditsRead</h4>
-<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.140">incrLogEditsRead</a>(long delta)</pre>
+<pre>private void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.160">incrLogEditsRead</a>(long delta)</pre>
<div class="block">Add on the the number of log edits read</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -665,7 +722,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>incrLogEditsRead</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.146">incrLogEditsRead</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.166">incrLogEditsRead</a>()</pre>
<div class="block">Increment the number of log edits read by one.</div>
</li>
</ul>
@@ -675,7 +732,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>incrLogEditsFiltered</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.155">incrLogEditsFiltered</a>(long delta)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.175">incrLogEditsFiltered</a>(long delta)</pre>
<div class="block">Add on the number of log edits filtered</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -689,7 +746,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>incrLogEditsFiltered</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.161">incrLogEditsFiltered</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.181">incrLogEditsFiltered</a>()</pre>
<div class="block">The number of log edits filtered out.</div>
</li>
</ul>
@@ -699,7 +756,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>shipBatch</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.170">shipBatch</a>(long batchSize,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.190">shipBatch</a>(long batchSize,
int sizeInBytes)</pre>
<div class="block">Convience method to apply changes to metrics do to shipping a batch of logs.</div>
<dl>
@@ -714,7 +771,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>shipBatch</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.187">shipBatch</a>(long batchSize,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.207">shipBatch</a>(long batchSize,
int sizeInBytes,
long hfiles)</pre>
<div class="block">Convience method to apply changes to metrics do to shipping a batch of logs.</div>
@@ -731,7 +788,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>incrLogReadInBytes</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.194">incrLogReadInBytes</a>(long readInBytes)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.214">incrLogReadInBytes</a>(long readInBytes)</pre>
<div class="block">increase the byte number read by source from log file</div>
</li>
</ul>
@@ -741,7 +798,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>clear</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.200">clear</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.220">clear</a>()</pre>
<div class="block">Removes all metrics about this Source.</div>
</li>
</ul>
@@ -751,7 +808,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>getAgeOfLastShippedOp</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.214">getAgeOfLastShippedOp</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.234">getAgeOfLastShippedOp</a>()</pre>
<div class="block">Get AgeOfLastShippedOp</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -765,7 +822,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<ul class="blockList">
<li class="blockList">
<h4>getSizeOfLogQueue</h4>
-<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.222">getSizeOfLogQueue</a>()</pre>
+<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.242">getSizeOfLogQueue</a>()</pre>
<div class="block">Get the sizeOfLogQueue</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -780,7 +837,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource
<li class="blockList">
<h4>getTimeStampOfLastShippedOp</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.233">getTimeStampOfLastShippedOp</a>()</pre>
+public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.253">getTimeStampOfLastShippedOp</a>()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <span class="deprecationComment">Since 2.0.0. Removed in 3.0.0.</span></div>
<div class="block">Get the timeStampsOfLastShippedOp, if there are multiple groups, return the latest one</div>
<dl>
@@ -797,7 +854,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>getTimestampOfLastShippedOp</h4>
-<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.241">getTimestampOfLastShippedOp</a>()</pre>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.261">getTimestampOfLastShippedOp</a>()</pre>
<div class="block">Get the timestampsOfLastShippedOp, if there are multiple groups, return the latest one</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -811,7 +868,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>getPeerID</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.255">getPeerID</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.275">getPeerID</a>()</pre>
<div class="block">Get the slave peer ID</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -825,7 +882,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>incrSizeOfHFileRefsQueue</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.259">incrSizeOfHFileRefsQueue</a>(long size)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.279">incrSizeOfHFileRefsQueue</a>(long size)</pre>
</li>
</ul>
<a name="decrSizeOfHFileRefsQueue-int-">
@@ -834,7 +891,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>decrSizeOfHFileRefsQueue</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.265">decrSizeOfHFileRefsQueue</a>(int size)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.285">decrSizeOfHFileRefsQueue</a>(int size)</pre>
</li>
</ul>
<a name="incrUnknownFileLengthForClosedWAL--">
@@ -843,7 +900,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>incrUnknownFileLengthForClosedWAL</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.274">incrUnknownFileLengthForClosedWAL</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.294">incrUnknownFileLengthForClosedWAL</a>()</pre>
</li>
</ul>
<a name="incrUncleanlyClosedWALs--">
@@ -852,7 +909,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>incrUncleanlyClosedWALs</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.279">incrUncleanlyClosedWALs</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.299">incrUncleanlyClosedWALs</a>()</pre>
</li>
</ul>
<a name="incrBytesSkippedInUncleanlyClosedWALs-long-">
@@ -861,7 +918,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>incrBytesSkippedInUncleanlyClosedWALs</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.284">incrBytesSkippedInUncleanlyClosedWALs</a>(long bytes)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.304">incrBytesSkippedInUncleanlyClosedWALs</a>(long bytes)</pre>
</li>
</ul>
<a name="incrRestartedWALReading--">
@@ -870,7 +927,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>incrRestartedWALReading</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.289">incrRestartedWALReading</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.309">incrRestartedWALReading</a>()</pre>
</li>
</ul>
<a name="incrRepeatedFileBytes-long-">
@@ -879,7 +936,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>incrRepeatedFileBytes</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.294">incrRepeatedFileBytes</a>(long bytes)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.314">incrRepeatedFileBytes</a>(long bytes)</pre>
</li>
</ul>
<a name="incrCompletedWAL--">
@@ -888,7 +945,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>incrCompletedWAL</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.299">incrCompletedWAL</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.319">incrCompletedWAL</a>()</pre>
</li>
</ul>
<a name="incrCompletedRecoveryQueue--">
@@ -897,7 +954,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>incrCompletedRecoveryQueue</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.304">incrCompletedRecoveryQueue</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.324">incrCompletedRecoveryQueue</a>()</pre>
</li>
</ul>
<a name="init--">
@@ -906,7 +963,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.310">init</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.330">init</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html#init--">BaseSource</a></code></span></div>
<div class="block">Clear out the metrics and re-prepare the source.</div>
<dl>
@@ -921,7 +978,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>setGauge</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.316">setGauge</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> gaugeName,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.336">setGauge</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> gaugeName,
long value)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html#setGauge-java.lang.String-long-">BaseSource</a></code></span></div>
<div class="block">Set a gauge to a specific value.</div>
@@ -940,7 +997,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>incGauge</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.322">incGauge</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> gaugeName,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.342">incGauge</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> gaugeName,
long delta)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html#incGauge-java.lang.String-long-">BaseSource</a></code></span></div>
<div class="block">Add some amount to a gauge.</div>
@@ -959,7 +1016,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>decGauge</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.328">decGauge</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> gaugeName,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.348">decGauge</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> gaugeName,
long delta)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html#decGauge-java.lang.String-long-">BaseSource</a></code></span></div>
<div class="block">Subtract some amount from a gauge.</div>
@@ -978,7 +1035,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>removeMetric</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.334">removeMetric</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.354">removeMetric</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html#removeMetric-java.lang.String-">BaseSource</a></code></span></div>
<div class="block">Remove a metric and no longer announce it.</div>
<dl>
@@ -995,7 +1052,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>incCounters</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.340">incCounters</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> counterName,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.360">incCounters</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> counterName,
long delta)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html#incCounters-java.lang.String-long-">BaseSource</a></code></span></div>
<div class="block">Add some amount to a counter.</div>
@@ -1014,7 +1071,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>updateHistogram</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.346">updateHistogram</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.366">updateHistogram</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
long value)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html#updateHistogram-java.lang.String-long-">BaseSource</a></code></span></div>
<div class="block">Add some value to a histogram.</div>
@@ -1033,7 +1090,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>getMetricsContext</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.352">getMetricsContext</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.372">getMetricsContext</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html#getMetricsContext--">BaseSource</a></code></span></div>
<div class="block">Get the metrics context. For hadoop metrics2 system this is usually an all lowercased string.
eg. regionserver, master, thriftserver</div>
@@ -1051,7 +1108,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>getMetricsDescription</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.357">getMetricsDescription</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.377">getMetricsDescription</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html#getMetricsDescription--">BaseSource</a></code></span></div>
<div class="block">Get the description of what this source exposes.</div>
<dl>
@@ -1066,7 +1123,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>getMetricsJmxContext</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.362">getMetricsJmxContext</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.382">getMetricsJmxContext</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html#getMetricsJmxContext--">BaseSource</a></code></span></div>
<div class="block">Get the name of the context in JMX that this source will be exposed through.
This is in ObjectName format. With the default context being Hadoop -> HBase</div>
@@ -1082,7 +1139,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockList">
<li class="blockList">
<h4>getMetricsName</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.367">getMetricsName</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.387">getMetricsName</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html#getMetricsName--">BaseSource</a></code></span></div>
<div class="block">Get the name of the metrics that are being exported by this source.
Eg. IPC, GC, WAL</div>
@@ -1098,7 +1155,7 @@ public long <a href="../../../../../../src-html/org/apache/hadoop/hbas
<ul class="blockListLast">
<li class="blockList">
<h4>getSingleSourceSourceByTable</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.372">getSingleSourceSourceByTable</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#line.392">getSingleSourceSourceByTable</a>()</pre>
</li>
</ul>
</li>
[05/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html
index 67f4551..017124c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html
@@ -387,817 +387,804 @@
<span class="sourceLineNo">379</span> }<a name="line.379"></a>
<span class="sourceLineNo">380</span><a name="line.380"></a>
<span class="sourceLineNo">381</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.381"></a>
-<span class="sourceLineNo">382</span> if (cb != null) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span> int comparison = BlockCacheUtil.validateBlockAddition(cb.getBuffer(), buf, cacheKey);<a name="line.383"></a>
-<span class="sourceLineNo">384</span> if (comparison != 0) {<a name="line.384"></a>
-<span class="sourceLineNo">385</span> if (comparison < 0) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize. Keeping cached block.");<a name="line.386"></a>
-<span class="sourceLineNo">387</span> return;<a name="line.387"></a>
-<span class="sourceLineNo">388</span> } else {<a name="line.388"></a>
-<span class="sourceLineNo">389</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize. Caching new block.");<a name="line.389"></a>
-<span class="sourceLineNo">390</span> }<a name="line.390"></a>
-<span class="sourceLineNo">391</span> } else {<a name="line.391"></a>
-<span class="sourceLineNo">392</span> String msg = "Cached an already cached block: " + cacheKey + " cb:" + cb.getCacheKey();<a name="line.392"></a>
-<span class="sourceLineNo">393</span> msg += ". This is harmless and can happen in rare cases (see HBASE-8547)";<a name="line.393"></a>
-<span class="sourceLineNo">394</span> LOG.debug(msg);<a name="line.394"></a>
-<span class="sourceLineNo">395</span> return;<a name="line.395"></a>
-<span class="sourceLineNo">396</span> }<a name="line.396"></a>
-<span class="sourceLineNo">397</span> }<a name="line.397"></a>
-<span class="sourceLineNo">398</span> long currentSize = size.get();<a name="line.398"></a>
-<span class="sourceLineNo">399</span> long currentAcceptableSize = acceptableSize();<a name="line.399"></a>
-<span class="sourceLineNo">400</span> long hardLimitSize = (long) (hardCapacityLimitFactor * currentAcceptableSize);<a name="line.400"></a>
-<span class="sourceLineNo">401</span> if (currentSize >= hardLimitSize) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span> stats.failInsert();<a name="line.402"></a>
-<span class="sourceLineNo">403</span> if (LOG.isTraceEnabled()) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span> LOG.trace("LruBlockCache current size " + StringUtils.byteDesc(currentSize)<a name="line.404"></a>
-<span class="sourceLineNo">405</span> + " has exceeded acceptable size " + StringUtils.byteDesc(currentAcceptableSize) + "."<a name="line.405"></a>
-<span class="sourceLineNo">406</span> + " The hard limit size is " + StringUtils.byteDesc(hardLimitSize)<a name="line.406"></a>
-<span class="sourceLineNo">407</span> + ", failed to put cacheKey:" + cacheKey + " into LruBlockCache.");<a name="line.407"></a>
-<span class="sourceLineNo">408</span> }<a name="line.408"></a>
-<span class="sourceLineNo">409</span> if (!evictionInProgress) {<a name="line.409"></a>
-<span class="sourceLineNo">410</span> runEviction();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> }<a name="line.411"></a>
-<span class="sourceLineNo">412</span> return;<a name="line.412"></a>
-<span class="sourceLineNo">413</span> }<a name="line.413"></a>
-<span class="sourceLineNo">414</span> cb = new LruCachedBlock(cacheKey, buf, count.incrementAndGet(), inMemory);<a name="line.414"></a>
-<span class="sourceLineNo">415</span> long newSize = updateSizeMetrics(cb, false);<a name="line.415"></a>
-<span class="sourceLineNo">416</span> map.put(cacheKey, cb);<a name="line.416"></a>
-<span class="sourceLineNo">417</span> long val = elements.incrementAndGet();<a name="line.417"></a>
-<span class="sourceLineNo">418</span> if (buf.getBlockType().isData()) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span> dataBlockElements.increment();<a name="line.419"></a>
-<span class="sourceLineNo">420</span> }<a name="line.420"></a>
-<span class="sourceLineNo">421</span> if (LOG.isTraceEnabled()) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> long size = map.size();<a name="line.422"></a>
-<span class="sourceLineNo">423</span> assertCounterSanity(size, val);<a name="line.423"></a>
-<span class="sourceLineNo">424</span> }<a name="line.424"></a>
-<span class="sourceLineNo">425</span> if (newSize > currentAcceptableSize && !evictionInProgress) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span> runEviction();<a name="line.426"></a>
-<span class="sourceLineNo">427</span> }<a name="line.427"></a>
-<span class="sourceLineNo">428</span> }<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span> /**<a name="line.430"></a>
-<span class="sourceLineNo">431</span> * Sanity-checking for parity between actual block cache content and metrics.<a name="line.431"></a>
-<span class="sourceLineNo">432</span> * Intended only for use with TRACE level logging and -ea JVM.<a name="line.432"></a>
-<span class="sourceLineNo">433</span> */<a name="line.433"></a>
-<span class="sourceLineNo">434</span> private static void assertCounterSanity(long mapSize, long counterVal) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span> if (counterVal < 0) {<a name="line.435"></a>
-<span class="sourceLineNo">436</span> LOG.trace("counterVal overflow. Assertions unreliable. counterVal=" + counterVal +<a name="line.436"></a>
-<span class="sourceLineNo">437</span> ", mapSize=" + mapSize);<a name="line.437"></a>
-<span class="sourceLineNo">438</span> return;<a name="line.438"></a>
-<span class="sourceLineNo">439</span> }<a name="line.439"></a>
-<span class="sourceLineNo">440</span> if (mapSize < Integer.MAX_VALUE) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span> double pct_diff = Math.abs((((double) counterVal) / ((double) mapSize)) - 1.);<a name="line.441"></a>
-<span class="sourceLineNo">442</span> if (pct_diff > 0.05) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> LOG.trace("delta between reported and actual size > 5%. counterVal=" + counterVal +<a name="line.443"></a>
-<span class="sourceLineNo">444</span> ", mapSize=" + mapSize);<a name="line.444"></a>
-<span class="sourceLineNo">445</span> }<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> }<a name="line.447"></a>
-<span class="sourceLineNo">448</span><a name="line.448"></a>
-<span class="sourceLineNo">449</span> /**<a name="line.449"></a>
-<span class="sourceLineNo">450</span> * Cache the block with the specified name and buffer.<a name="line.450"></a>
-<span class="sourceLineNo">451</span> * <p><a name="line.451"></a>
-<span class="sourceLineNo">452</span> *<a name="line.452"></a>
-<span class="sourceLineNo">453</span> * @param cacheKey block's cache key<a name="line.453"></a>
-<span class="sourceLineNo">454</span> * @param buf block buffer<a name="line.454"></a>
-<span class="sourceLineNo">455</span> */<a name="line.455"></a>
-<span class="sourceLineNo">456</span> @Override<a name="line.456"></a>
-<span class="sourceLineNo">457</span> public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf) {<a name="line.457"></a>
-<span class="sourceLineNo">458</span> cacheBlock(cacheKey, buf, false);<a name="line.458"></a>
-<span class="sourceLineNo">459</span> }<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span> /**<a name="line.461"></a>
-<span class="sourceLineNo">462</span> * Helper function that updates the local size counter and also updates any<a name="line.462"></a>
-<span class="sourceLineNo">463</span> * per-cf or per-blocktype metrics it can discern from given<a name="line.463"></a>
-<span class="sourceLineNo">464</span> * {@link LruCachedBlock}<a name="line.464"></a>
-<span class="sourceLineNo">465</span> */<a name="line.465"></a>
-<span class="sourceLineNo">466</span> private long updateSizeMetrics(LruCachedBlock cb, boolean evict) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span> long heapsize = cb.heapSize();<a name="line.467"></a>
-<span class="sourceLineNo">468</span> BlockType bt = cb.getBuffer().getBlockType();<a name="line.468"></a>
-<span class="sourceLineNo">469</span> if (evict) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span> heapsize *= -1;<a name="line.470"></a>
-<span class="sourceLineNo">471</span> }<a name="line.471"></a>
-<span class="sourceLineNo">472</span> if (bt != null && bt.isData()) {<a name="line.472"></a>
-<span class="sourceLineNo">473</span> dataBlockSize.add(heapsize);<a name="line.473"></a>
-<span class="sourceLineNo">474</span> }<a name="line.474"></a>
-<span class="sourceLineNo">475</span> return size.addAndGet(heapsize);<a name="line.475"></a>
-<span class="sourceLineNo">476</span> }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span> /**<a name="line.478"></a>
-<span class="sourceLineNo">479</span> * Get the buffer of the block with the specified name.<a name="line.479"></a>
-<span class="sourceLineNo">480</span> *<a name="line.480"></a>
-<span class="sourceLineNo">481</span> * @param cacheKey block's cache key<a name="line.481"></a>
-<span class="sourceLineNo">482</span> * @param caching true if the caller caches blocks on cache misses<a name="line.482"></a>
-<span class="sourceLineNo">483</span> * @param repeat Whether this is a repeat lookup for the same block<a name="line.483"></a>
-<span class="sourceLineNo">484</span> * (used to avoid double counting cache misses when doing double-check<a name="line.484"></a>
-<span class="sourceLineNo">485</span> * locking)<a name="line.485"></a>
-<span class="sourceLineNo">486</span> * @param updateCacheMetrics Whether to update cache metrics or not<a name="line.486"></a>
-<span class="sourceLineNo">487</span> *<a name="line.487"></a>
-<span class="sourceLineNo">488</span> * @return buffer of specified cache key, or null if not in cache<a name="line.488"></a>
-<span class="sourceLineNo">489</span> */<a name="line.489"></a>
-<span class="sourceLineNo">490</span> @Override<a name="line.490"></a>
-<span class="sourceLineNo">491</span> public Cacheable getBlock(BlockCacheKey cacheKey, boolean caching, boolean repeat,<a name="line.491"></a>
-<span class="sourceLineNo">492</span> boolean updateCacheMetrics) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.493"></a>
-<span class="sourceLineNo">494</span> if (cb == null) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span> if (!repeat && updateCacheMetrics) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span> stats.miss(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.496"></a>
-<span class="sourceLineNo">497</span> }<a name="line.497"></a>
-<span class="sourceLineNo">498</span> // If there is another block cache then try and read there.<a name="line.498"></a>
-<span class="sourceLineNo">499</span> // However if this is a retry ( second time in double checked locking )<a name="line.499"></a>
-<span class="sourceLineNo">500</span> // And it's already a miss then the l2 will also be a miss.<a name="line.500"></a>
-<span class="sourceLineNo">501</span> if (victimHandler != null && !repeat) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span> Cacheable result = victimHandler.getBlock(cacheKey, caching, repeat, updateCacheMetrics);<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span> // Promote this to L1.<a name="line.504"></a>
-<span class="sourceLineNo">505</span> if (result != null && caching) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span> if (result instanceof HFileBlock && ((HFileBlock) result).usesSharedMemory()) {<a name="line.506"></a>
-<span class="sourceLineNo">507</span> result = ((HFileBlock) result).deepClone();<a name="line.507"></a>
-<span class="sourceLineNo">508</span> }<a name="line.508"></a>
-<span class="sourceLineNo">509</span> cacheBlock(cacheKey, result, /* inMemory = */ false);<a name="line.509"></a>
-<span class="sourceLineNo">510</span> }<a name="line.510"></a>
-<span class="sourceLineNo">511</span> return result;<a name="line.511"></a>
-<span class="sourceLineNo">512</span> }<a name="line.512"></a>
-<span class="sourceLineNo">513</span> return null;<a name="line.513"></a>
-<span class="sourceLineNo">514</span> }<a name="line.514"></a>
-<span class="sourceLineNo">515</span> if (updateCacheMetrics) stats.hit(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.515"></a>
-<span class="sourceLineNo">516</span> cb.access(count.incrementAndGet());<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return cb.getBuffer();<a name="line.517"></a>
-<span class="sourceLineNo">518</span> }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> /**<a name="line.520"></a>
-<span class="sourceLineNo">521</span> * Whether the cache contains block with specified cacheKey<a name="line.521"></a>
-<span class="sourceLineNo">522</span> *<a name="line.522"></a>
-<span class="sourceLineNo">523</span> * @return true if contains the block<a name="line.523"></a>
-<span class="sourceLineNo">524</span> */<a name="line.524"></a>
-<span class="sourceLineNo">525</span> public boolean containsBlock(BlockCacheKey cacheKey) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span> return map.containsKey(cacheKey);<a name="line.526"></a>
-<span class="sourceLineNo">527</span> }<a name="line.527"></a>
-<span class="sourceLineNo">528</span><a name="line.528"></a>
-<span class="sourceLineNo">529</span> @Override<a name="line.529"></a>
-<span class="sourceLineNo">530</span> public boolean evictBlock(BlockCacheKey cacheKey) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.531"></a>
-<span class="sourceLineNo">532</span> return cb != null && evictBlock(cb, false) > 0;<a name="line.532"></a>
-<span class="sourceLineNo">533</span> }<a name="line.533"></a>
-<span class="sourceLineNo">534</span><a name="line.534"></a>
-<span class="sourceLineNo">535</span> /**<a name="line.535"></a>
-<span class="sourceLineNo">536</span> * Evicts all blocks for a specific HFile. This is an<a name="line.536"></a>
-<span class="sourceLineNo">537</span> * expensive operation implemented as a linear-time search through all blocks<a name="line.537"></a>
-<span class="sourceLineNo">538</span> * in the cache. Ideally this should be a search in a log-access-time map.<a name="line.538"></a>
-<span class="sourceLineNo">539</span> *<a name="line.539"></a>
-<span class="sourceLineNo">540</span> * <p><a name="line.540"></a>
-<span class="sourceLineNo">541</span> * This is used for evict-on-close to remove all blocks of a specific HFile.<a name="line.541"></a>
-<span class="sourceLineNo">542</span> *<a name="line.542"></a>
-<span class="sourceLineNo">543</span> * @return the number of blocks evicted<a name="line.543"></a>
-<span class="sourceLineNo">544</span> */<a name="line.544"></a>
-<span class="sourceLineNo">545</span> @Override<a name="line.545"></a>
-<span class="sourceLineNo">546</span> public int evictBlocksByHfileName(String hfileName) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span> int numEvicted = 0;<a name="line.547"></a>
-<span class="sourceLineNo">548</span> for (BlockCacheKey key : map.keySet()) {<a name="line.548"></a>
-<span class="sourceLineNo">549</span> if (key.getHfileName().equals(hfileName)) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span> if (evictBlock(key))<a name="line.550"></a>
-<span class="sourceLineNo">551</span> ++numEvicted;<a name="line.551"></a>
-<span class="sourceLineNo">552</span> }<a name="line.552"></a>
-<span class="sourceLineNo">553</span> }<a name="line.553"></a>
-<span class="sourceLineNo">554</span> if (victimHandler != null) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span> numEvicted += victimHandler.evictBlocksByHfileName(hfileName);<a name="line.555"></a>
-<span class="sourceLineNo">556</span> }<a name="line.556"></a>
-<span class="sourceLineNo">557</span> return numEvicted;<a name="line.557"></a>
-<span class="sourceLineNo">558</span> }<a name="line.558"></a>
-<span class="sourceLineNo">559</span><a name="line.559"></a>
-<span class="sourceLineNo">560</span> /**<a name="line.560"></a>
-<span class="sourceLineNo">561</span> * Evict the block, and it will be cached by the victim handler if exists &amp;&amp;<a name="line.561"></a>
-<span class="sourceLineNo">562</span> * block may be read again later<a name="line.562"></a>
-<span class="sourceLineNo">563</span> *<a name="line.563"></a>
-<span class="sourceLineNo">564</span> * @param evictedByEvictionProcess true if the given block is evicted by<a name="line.564"></a>
-<span class="sourceLineNo">565</span> * EvictionThread<a name="line.565"></a>
-<span class="sourceLineNo">566</span> * @return the heap size of evicted block<a name="line.566"></a>
-<span class="sourceLineNo">567</span> */<a name="line.567"></a>
-<span class="sourceLineNo">568</span> protected long evictBlock(LruCachedBlock block, boolean evictedByEvictionProcess) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span> boolean found = map.remove(block.getCacheKey()) != null;<a name="line.569"></a>
-<span class="sourceLineNo">570</span> if (!found) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span> return 0;<a name="line.571"></a>
-<span class="sourceLineNo">572</span> }<a name="line.572"></a>
-<span class="sourceLineNo">573</span> updateSizeMetrics(block, true);<a name="line.573"></a>
-<span class="sourceLineNo">574</span> long val = elements.decrementAndGet();<a name="line.574"></a>
-<span class="sourceLineNo">575</span> if (LOG.isTraceEnabled()) {<a name="line.575"></a>
-<span class="sourceLineNo">576</span> long size = map.size();<a name="line.576"></a>
-<span class="sourceLineNo">577</span> assertCounterSanity(size, val);<a name="line.577"></a>
-<span class="sourceLineNo">578</span> }<a name="line.578"></a>
-<span class="sourceLineNo">579</span> if (block.getBuffer().getBlockType().isData()) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span> dataBlockElements.decrement();<a name="line.580"></a>
-<span class="sourceLineNo">581</span> }<a name="line.581"></a>
-<span class="sourceLineNo">582</span> if (evictedByEvictionProcess) {<a name="line.582"></a>
-<span class="sourceLineNo">583</span> // When the eviction of the block happened because of invalidation of HFiles, no need to<a name="line.583"></a>
-<span class="sourceLineNo">584</span> // update the stats counter.<a name="line.584"></a>
-<span class="sourceLineNo">585</span> stats.evicted(block.getCachedTime(), block.getCacheKey().isPrimary());<a name="line.585"></a>
-<span class="sourceLineNo">586</span> if (victimHandler != null) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span> victimHandler.cacheBlock(block.getCacheKey(), block.getBuffer());<a name="line.587"></a>
-<span class="sourceLineNo">588</span> }<a name="line.588"></a>
-<span class="sourceLineNo">589</span> }<a name="line.589"></a>
-<span class="sourceLineNo">590</span> return block.heapSize();<a name="line.590"></a>
-<span class="sourceLineNo">591</span> }<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span> /**<a name="line.593"></a>
-<span class="sourceLineNo">594</span> * Multi-threaded call to run the eviction process.<a name="line.594"></a>
-<span class="sourceLineNo">595</span> */<a name="line.595"></a>
-<span class="sourceLineNo">596</span> private void runEviction() {<a name="line.596"></a>
-<span class="sourceLineNo">597</span> if (evictionThread == null) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span> evict();<a name="line.598"></a>
-<span class="sourceLineNo">599</span> } else {<a name="line.599"></a>
-<span class="sourceLineNo">600</span> evictionThread.evict();<a name="line.600"></a>
-<span class="sourceLineNo">601</span> }<a name="line.601"></a>
-<span class="sourceLineNo">602</span> }<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span> @VisibleForTesting<a name="line.604"></a>
-<span class="sourceLineNo">605</span> boolean isEvictionInProgress() {<a name="line.605"></a>
-<span class="sourceLineNo">606</span> return evictionInProgress;<a name="line.606"></a>
-<span class="sourceLineNo">607</span> }<a name="line.607"></a>
+<span class="sourceLineNo">382</span> if (cb != null && !BlockCacheUtil.shouldReplaceExistingCacheBlock(this, cacheKey, buf)) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> return;<a name="line.383"></a>
+<span class="sourceLineNo">384</span> }<a name="line.384"></a>
+<span class="sourceLineNo">385</span> long currentSize = size.get();<a name="line.385"></a>
+<span class="sourceLineNo">386</span> long currentAcceptableSize = acceptableSize();<a name="line.386"></a>
+<span class="sourceLineNo">387</span> long hardLimitSize = (long) (hardCapacityLimitFactor * currentAcceptableSize);<a name="line.387"></a>
+<span class="sourceLineNo">388</span> if (currentSize >= hardLimitSize) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span> stats.failInsert();<a name="line.389"></a>
+<span class="sourceLineNo">390</span> if (LOG.isTraceEnabled()) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> LOG.trace("LruBlockCache current size " + StringUtils.byteDesc(currentSize)<a name="line.391"></a>
+<span class="sourceLineNo">392</span> + " has exceeded acceptable size " + StringUtils.byteDesc(currentAcceptableSize) + "."<a name="line.392"></a>
+<span class="sourceLineNo">393</span> + " The hard limit size is " + StringUtils.byteDesc(hardLimitSize)<a name="line.393"></a>
+<span class="sourceLineNo">394</span> + ", failed to put cacheKey:" + cacheKey + " into LruBlockCache.");<a name="line.394"></a>
+<span class="sourceLineNo">395</span> }<a name="line.395"></a>
+<span class="sourceLineNo">396</span> if (!evictionInProgress) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span> runEviction();<a name="line.397"></a>
+<span class="sourceLineNo">398</span> }<a name="line.398"></a>
+<span class="sourceLineNo">399</span> return;<a name="line.399"></a>
+<span class="sourceLineNo">400</span> }<a name="line.400"></a>
+<span class="sourceLineNo">401</span> cb = new LruCachedBlock(cacheKey, buf, count.incrementAndGet(), inMemory);<a name="line.401"></a>
+<span class="sourceLineNo">402</span> long newSize = updateSizeMetrics(cb, false);<a name="line.402"></a>
+<span class="sourceLineNo">403</span> map.put(cacheKey, cb);<a name="line.403"></a>
+<span class="sourceLineNo">404</span> long val = elements.incrementAndGet();<a name="line.404"></a>
+<span class="sourceLineNo">405</span> if (buf.getBlockType().isData()) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span> dataBlockElements.increment();<a name="line.406"></a>
+<span class="sourceLineNo">407</span> }<a name="line.407"></a>
+<span class="sourceLineNo">408</span> if (LOG.isTraceEnabled()) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span> long size = map.size();<a name="line.409"></a>
+<span class="sourceLineNo">410</span> assertCounterSanity(size, val);<a name="line.410"></a>
+<span class="sourceLineNo">411</span> }<a name="line.411"></a>
+<span class="sourceLineNo">412</span> if (newSize > currentAcceptableSize && !evictionInProgress) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span> runEviction();<a name="line.413"></a>
+<span class="sourceLineNo">414</span> }<a name="line.414"></a>
+<span class="sourceLineNo">415</span> }<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span> /**<a name="line.417"></a>
+<span class="sourceLineNo">418</span> * Sanity-checking for parity between actual block cache content and metrics.<a name="line.418"></a>
+<span class="sourceLineNo">419</span> * Intended only for use with TRACE level logging and -ea JVM.<a name="line.419"></a>
+<span class="sourceLineNo">420</span> */<a name="line.420"></a>
+<span class="sourceLineNo">421</span> private static void assertCounterSanity(long mapSize, long counterVal) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span> if (counterVal < 0) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span> LOG.trace("counterVal overflow. Assertions unreliable. counterVal=" + counterVal +<a name="line.423"></a>
+<span class="sourceLineNo">424</span> ", mapSize=" + mapSize);<a name="line.424"></a>
+<span class="sourceLineNo">425</span> return;<a name="line.425"></a>
+<span class="sourceLineNo">426</span> }<a name="line.426"></a>
+<span class="sourceLineNo">427</span> if (mapSize < Integer.MAX_VALUE) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span> double pct_diff = Math.abs((((double) counterVal) / ((double) mapSize)) - 1.);<a name="line.428"></a>
+<span class="sourceLineNo">429</span> if (pct_diff > 0.05) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span> LOG.trace("delta between reported and actual size > 5%. counterVal=" + counterVal +<a name="line.430"></a>
+<span class="sourceLineNo">431</span> ", mapSize=" + mapSize);<a name="line.431"></a>
+<span class="sourceLineNo">432</span> }<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span> }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span> /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span> * Cache the block with the specified name and buffer.<a name="line.437"></a>
+<span class="sourceLineNo">438</span> * <p><a name="line.438"></a>
+<span class="sourceLineNo">439</span> *<a name="line.439"></a>
+<span class="sourceLineNo">440</span> * @param cacheKey block's cache key<a name="line.440"></a>
+<span class="sourceLineNo">441</span> * @param buf block buffer<a name="line.441"></a>
+<span class="sourceLineNo">442</span> */<a name="line.442"></a>
+<span class="sourceLineNo">443</span> @Override<a name="line.443"></a>
+<span class="sourceLineNo">444</span> public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span> cacheBlock(cacheKey, buf, false);<a name="line.445"></a>
+<span class="sourceLineNo">446</span> }<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span> /**<a name="line.448"></a>
+<span class="sourceLineNo">449</span> * Helper function that updates the local size counter and also updates any<a name="line.449"></a>
+<span class="sourceLineNo">450</span> * per-cf or per-blocktype metrics it can discern from given<a name="line.450"></a>
+<span class="sourceLineNo">451</span> * {@link LruCachedBlock}<a name="line.451"></a>
+<span class="sourceLineNo">452</span> */<a name="line.452"></a>
+<span class="sourceLineNo">453</span> private long updateSizeMetrics(LruCachedBlock cb, boolean evict) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span> long heapsize = cb.heapSize();<a name="line.454"></a>
+<span class="sourceLineNo">455</span> BlockType bt = cb.getBuffer().getBlockType();<a name="line.455"></a>
+<span class="sourceLineNo">456</span> if (evict) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span> heapsize *= -1;<a name="line.457"></a>
+<span class="sourceLineNo">458</span> }<a name="line.458"></a>
+<span class="sourceLineNo">459</span> if (bt != null && bt.isData()) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span> dataBlockSize.add(heapsize);<a name="line.460"></a>
+<span class="sourceLineNo">461</span> }<a name="line.461"></a>
+<span class="sourceLineNo">462</span> return size.addAndGet(heapsize);<a name="line.462"></a>
+<span class="sourceLineNo">463</span> }<a name="line.463"></a>
+<span class="sourceLineNo">464</span><a name="line.464"></a>
+<span class="sourceLineNo">465</span> /**<a name="line.465"></a>
+<span class="sourceLineNo">466</span> * Get the buffer of the block with the specified name.<a name="line.466"></a>
+<span class="sourceLineNo">467</span> *<a name="line.467"></a>
+<span class="sourceLineNo">468</span> * @param cacheKey block's cache key<a name="line.468"></a>
+<span class="sourceLineNo">469</span> * @param caching true if the caller caches blocks on cache misses<a name="line.469"></a>
+<span class="sourceLineNo">470</span> * @param repeat Whether this is a repeat lookup for the same block<a name="line.470"></a>
+<span class="sourceLineNo">471</span> * (used to avoid double counting cache misses when doing double-check<a name="line.471"></a>
+<span class="sourceLineNo">472</span> * locking)<a name="line.472"></a>
+<span class="sourceLineNo">473</span> * @param updateCacheMetrics Whether to update cache metrics or not<a name="line.473"></a>
+<span class="sourceLineNo">474</span> *<a name="line.474"></a>
+<span class="sourceLineNo">475</span> * @return buffer of specified cache key, or null if not in cache<a name="line.475"></a>
+<span class="sourceLineNo">476</span> */<a name="line.476"></a>
+<span class="sourceLineNo">477</span> @Override<a name="line.477"></a>
+<span class="sourceLineNo">478</span> public Cacheable getBlock(BlockCacheKey cacheKey, boolean caching, boolean repeat,<a name="line.478"></a>
+<span class="sourceLineNo">479</span> boolean updateCacheMetrics) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.480"></a>
+<span class="sourceLineNo">481</span> if (cb == null) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span> if (!repeat && updateCacheMetrics) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> stats.miss(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> // If there is another block cache then try and read there.<a name="line.485"></a>
+<span class="sourceLineNo">486</span> // However if this is a retry ( second time in double checked locking )<a name="line.486"></a>
+<span class="sourceLineNo">487</span> // And it's already a miss then the l2 will also be a miss.<a name="line.487"></a>
+<span class="sourceLineNo">488</span> if (victimHandler != null && !repeat) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> Cacheable result = victimHandler.getBlock(cacheKey, caching, repeat, updateCacheMetrics);<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span> // Promote this to L1.<a name="line.491"></a>
+<span class="sourceLineNo">492</span> if (result != null && caching) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span> if (result instanceof HFileBlock && ((HFileBlock) result).usesSharedMemory()) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span> result = ((HFileBlock) result).deepClone();<a name="line.494"></a>
+<span class="sourceLineNo">495</span> }<a name="line.495"></a>
+<span class="sourceLineNo">496</span> cacheBlock(cacheKey, result, /* inMemory = */ false);<a name="line.496"></a>
+<span class="sourceLineNo">497</span> }<a name="line.497"></a>
+<span class="sourceLineNo">498</span> return result;<a name="line.498"></a>
+<span class="sourceLineNo">499</span> }<a name="line.499"></a>
+<span class="sourceLineNo">500</span> return null;<a name="line.500"></a>
+<span class="sourceLineNo">501</span> }<a name="line.501"></a>
+<span class="sourceLineNo">502</span> if (updateCacheMetrics) stats.hit(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.502"></a>
+<span class="sourceLineNo">503</span> cb.access(count.incrementAndGet());<a name="line.503"></a>
+<span class="sourceLineNo">504</span> return cb.getBuffer();<a name="line.504"></a>
+<span class="sourceLineNo">505</span> }<a name="line.505"></a>
+<span class="sourceLineNo">506</span><a name="line.506"></a>
+<span class="sourceLineNo">507</span> /**<a name="line.507"></a>
+<span class="sourceLineNo">508</span> * Whether the cache contains block with specified cacheKey<a name="line.508"></a>
+<span class="sourceLineNo">509</span> *<a name="line.509"></a>
+<span class="sourceLineNo">510</span> * @return true if contains the block<a name="line.510"></a>
+<span class="sourceLineNo">511</span> */<a name="line.511"></a>
+<span class="sourceLineNo">512</span> public boolean containsBlock(BlockCacheKey cacheKey) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span> return map.containsKey(cacheKey);<a name="line.513"></a>
+<span class="sourceLineNo">514</span> }<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span> @Override<a name="line.516"></a>
+<span class="sourceLineNo">517</span> public boolean evictBlock(BlockCacheKey cacheKey) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.518"></a>
+<span class="sourceLineNo">519</span> return cb != null && evictBlock(cb, false) > 0;<a name="line.519"></a>
+<span class="sourceLineNo">520</span> }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span> /**<a name="line.522"></a>
+<span class="sourceLineNo">523</span> * Evicts all blocks for a specific HFile. This is an<a name="line.523"></a>
+<span class="sourceLineNo">524</span> * expensive operation implemented as a linear-time search through all blocks<a name="line.524"></a>
+<span class="sourceLineNo">525</span> * in the cache. Ideally this should be a search in a log-access-time map.<a name="line.525"></a>
+<span class="sourceLineNo">526</span> *<a name="line.526"></a>
+<span class="sourceLineNo">527</span> * <p><a name="line.527"></a>
+<span class="sourceLineNo">528</span> * This is used for evict-on-close to remove all blocks of a specific HFile.<a name="line.528"></a>
+<span class="sourceLineNo">529</span> *<a name="line.529"></a>
+<span class="sourceLineNo">530</span> * @return the number of blocks evicted<a name="line.530"></a>
+<span class="sourceLineNo">531</span> */<a name="line.531"></a>
+<span class="sourceLineNo">532</span> @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span> public int evictBlocksByHfileName(String hfileName) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span> int numEvicted = 0;<a name="line.534"></a>
+<span class="sourceLineNo">535</span> for (BlockCacheKey key : map.keySet()) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span> if (key.getHfileName().equals(hfileName)) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span> if (evictBlock(key))<a name="line.537"></a>
+<span class="sourceLineNo">538</span> ++numEvicted;<a name="line.538"></a>
+<span class="sourceLineNo">539</span> }<a name="line.539"></a>
+<span class="sourceLineNo">540</span> }<a name="line.540"></a>
+<span class="sourceLineNo">541</span> if (victimHandler != null) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span> numEvicted += victimHandler.evictBlocksByHfileName(hfileName);<a name="line.542"></a>
+<span class="sourceLineNo">543</span> }<a name="line.543"></a>
+<span class="sourceLineNo">544</span> return numEvicted;<a name="line.544"></a>
+<span class="sourceLineNo">545</span> }<a name="line.545"></a>
+<span class="sourceLineNo">546</span><a name="line.546"></a>
+<span class="sourceLineNo">547</span> /**<a name="line.547"></a>
+<span class="sourceLineNo">548</span> * Evict the block, and it will be cached by the victim handler if exists &amp;&amp;<a name="line.548"></a>
+<span class="sourceLineNo">549</span> * block may be read again later<a name="line.549"></a>
+<span class="sourceLineNo">550</span> *<a name="line.550"></a>
+<span class="sourceLineNo">551</span> * @param evictedByEvictionProcess true if the given block is evicted by<a name="line.551"></a>
+<span class="sourceLineNo">552</span> * EvictionThread<a name="line.552"></a>
+<span class="sourceLineNo">553</span> * @return the heap size of evicted block<a name="line.553"></a>
+<span class="sourceLineNo">554</span> */<a name="line.554"></a>
+<span class="sourceLineNo">555</span> protected long evictBlock(LruCachedBlock block, boolean evictedByEvictionProcess) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span> boolean found = map.remove(block.getCacheKey()) != null;<a name="line.556"></a>
+<span class="sourceLineNo">557</span> if (!found) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span> return 0;<a name="line.558"></a>
+<span class="sourceLineNo">559</span> }<a name="line.559"></a>
+<span class="sourceLineNo">560</span> updateSizeMetrics(block, true);<a name="line.560"></a>
+<span class="sourceLineNo">561</span> long val = elements.decrementAndGet();<a name="line.561"></a>
+<span class="sourceLineNo">562</span> if (LOG.isTraceEnabled()) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span> long size = map.size();<a name="line.563"></a>
+<span class="sourceLineNo">564</span> assertCounterSanity(size, val);<a name="line.564"></a>
+<span class="sourceLineNo">565</span> }<a name="line.565"></a>
+<span class="sourceLineNo">566</span> if (block.getBuffer().getBlockType().isData()) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span> dataBlockElements.decrement();<a name="line.567"></a>
+<span class="sourceLineNo">568</span> }<a name="line.568"></a>
+<span class="sourceLineNo">569</span> if (evictedByEvictionProcess) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span> // When the eviction of the block happened because of invalidation of HFiles, no need to<a name="line.570"></a>
+<span class="sourceLineNo">571</span> // update the stats counter.<a name="line.571"></a>
+<span class="sourceLineNo">572</span> stats.evicted(block.getCachedTime(), block.getCacheKey().isPrimary());<a name="line.572"></a>
+<span class="sourceLineNo">573</span> if (victimHandler != null) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span> victimHandler.cacheBlock(block.getCacheKey(), block.getBuffer());<a name="line.574"></a>
+<span class="sourceLineNo">575</span> }<a name="line.575"></a>
+<span class="sourceLineNo">576</span> }<a name="line.576"></a>
+<span class="sourceLineNo">577</span> return block.heapSize();<a name="line.577"></a>
+<span class="sourceLineNo">578</span> }<a name="line.578"></a>
+<span class="sourceLineNo">579</span><a name="line.579"></a>
+<span class="sourceLineNo">580</span> /**<a name="line.580"></a>
+<span class="sourceLineNo">581</span> * Multi-threaded call to run the eviction process.<a name="line.581"></a>
+<span class="sourceLineNo">582</span> */<a name="line.582"></a>
+<span class="sourceLineNo">583</span> private void runEviction() {<a name="line.583"></a>
+<span class="sourceLineNo">584</span> if (evictionThread == null) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span> evict();<a name="line.585"></a>
+<span class="sourceLineNo">586</span> } else {<a name="line.586"></a>
+<span class="sourceLineNo">587</span> evictionThread.evict();<a name="line.587"></a>
+<span class="sourceLineNo">588</span> }<a name="line.588"></a>
+<span class="sourceLineNo">589</span> }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span> @VisibleForTesting<a name="line.591"></a>
+<span class="sourceLineNo">592</span> boolean isEvictionInProgress() {<a name="line.592"></a>
+<span class="sourceLineNo">593</span> return evictionInProgress;<a name="line.593"></a>
+<span class="sourceLineNo">594</span> }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span> @VisibleForTesting<a name="line.596"></a>
+<span class="sourceLineNo">597</span> long getOverhead() {<a name="line.597"></a>
+<span class="sourceLineNo">598</span> return overhead;<a name="line.598"></a>
+<span class="sourceLineNo">599</span> }<a name="line.599"></a>
+<span class="sourceLineNo">600</span><a name="line.600"></a>
+<span class="sourceLineNo">601</span> /**<a name="line.601"></a>
+<span class="sourceLineNo">602</span> * Eviction method.<a name="line.602"></a>
+<span class="sourceLineNo">603</span> */<a name="line.603"></a>
+<span class="sourceLineNo">604</span> void evict() {<a name="line.604"></a>
+<span class="sourceLineNo">605</span><a name="line.605"></a>
+<span class="sourceLineNo">606</span> // Ensure only one eviction at a time<a name="line.606"></a>
+<span class="sourceLineNo">607</span> if(!evictionLock.tryLock()) return;<a name="line.607"></a>
<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span> @VisibleForTesting<a name="line.609"></a>
-<span class="sourceLineNo">610</span> long getOverhead() {<a name="line.610"></a>
-<span class="sourceLineNo">611</span> return overhead;<a name="line.611"></a>
-<span class="sourceLineNo">612</span> }<a name="line.612"></a>
+<span class="sourceLineNo">609</span> try {<a name="line.609"></a>
+<span class="sourceLineNo">610</span> evictionInProgress = true;<a name="line.610"></a>
+<span class="sourceLineNo">611</span> long currentSize = this.size.get();<a name="line.611"></a>
+<span class="sourceLineNo">612</span> long bytesToFree = currentSize - minSize();<a name="line.612"></a>
<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span> /**<a name="line.614"></a>
-<span class="sourceLineNo">615</span> * Eviction method.<a name="line.615"></a>
-<span class="sourceLineNo">616</span> */<a name="line.616"></a>
-<span class="sourceLineNo">617</span> void evict() {<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span> // Ensure only one eviction at a time<a name="line.619"></a>
-<span class="sourceLineNo">620</span> if(!evictionLock.tryLock()) return;<a name="line.620"></a>
+<span class="sourceLineNo">614</span> if (LOG.isTraceEnabled()) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span> LOG.trace("Block cache LRU eviction started; Attempting to free " +<a name="line.615"></a>
+<span class="sourceLineNo">616</span> StringUtils.byteDesc(bytesToFree) + " of total=" +<a name="line.616"></a>
+<span class="sourceLineNo">617</span> StringUtils.byteDesc(currentSize));<a name="line.617"></a>
+<span class="sourceLineNo">618</span> }<a name="line.618"></a>
+<span class="sourceLineNo">619</span><a name="line.619"></a>
+<span class="sourceLineNo">620</span> if (bytesToFree <= 0) return;<a name="line.620"></a>
<span class="sourceLineNo">621</span><a name="line.621"></a>
-<span class="sourceLineNo">622</span> try {<a name="line.622"></a>
-<span class="sourceLineNo">623</span> evictionInProgress = true;<a name="line.623"></a>
-<span class="sourceLineNo">624</span> long currentSize = this.size.get();<a name="line.624"></a>
-<span class="sourceLineNo">625</span> long bytesToFree = currentSize - minSize();<a name="line.625"></a>
+<span class="sourceLineNo">622</span> // Instantiate priority buckets<a name="line.622"></a>
+<span class="sourceLineNo">623</span> BlockBucket bucketSingle = new BlockBucket("single", bytesToFree, blockSize, singleSize());<a name="line.623"></a>
+<span class="sourceLineNo">624</span> BlockBucket bucketMulti = new BlockBucket("multi", bytesToFree, blockSize, multiSize());<a name="line.624"></a>
+<span class="sourceLineNo">625</span> BlockBucket bucketMemory = new BlockBucket("memory", bytesToFree, blockSize, memorySize());<a name="line.625"></a>
<span class="sourceLineNo">626</span><a name="line.626"></a>
-<span class="sourceLineNo">627</span> if (LOG.isTraceEnabled()) {<a name="line.627"></a>
-<span class="sourceLineNo">628</span> LOG.trace("Block cache LRU eviction started; Attempting to free " +<a name="line.628"></a>
-<span class="sourceLineNo">629</span> StringUtils.byteDesc(bytesToFree) + " of total=" +<a name="line.629"></a>
-<span class="sourceLineNo">630</span> StringUtils.byteDesc(currentSize));<a name="line.630"></a>
-<span class="sourceLineNo">631</span> }<a name="line.631"></a>
-<span class="sourceLineNo">632</span><a name="line.632"></a>
-<span class="sourceLineNo">633</span> if (bytesToFree <= 0) return;<a name="line.633"></a>
-<span class="sourceLineNo">634</span><a name="line.634"></a>
-<span class="sourceLineNo">635</span> // Instantiate priority buckets<a name="line.635"></a>
-<span class="sourceLineNo">636</span> BlockBucket bucketSingle = new BlockBucket("single", bytesToFree, blockSize, singleSize());<a name="line.636"></a>
-<span class="sourceLineNo">637</span> BlockBucket bucketMulti = new BlockBucket("multi", bytesToFree, blockSize, multiSize());<a name="line.637"></a>
-<span class="sourceLineNo">638</span> BlockBucket bucketMemory = new BlockBucket("memory", bytesToFree, blockSize, memorySize());<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span> // Scan entire map putting into appropriate buckets<a name="line.640"></a>
-<span class="sourceLineNo">641</span> for (LruCachedBlock cachedBlock : map.values()) {<a name="line.641"></a>
-<span class="sourceLineNo">642</span> switch (cachedBlock.getPriority()) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span> case SINGLE: {<a name="line.643"></a>
-<span class="sourceLineNo">644</span> bucketSingle.add(cachedBlock);<a name="line.644"></a>
-<span class="sourceLineNo">645</span> break;<a name="line.645"></a>
-<span class="sourceLineNo">646</span> }<a name="line.646"></a>
-<span class="sourceLineNo">647</span> case MULTI: {<a name="line.647"></a>
-<span class="sourceLineNo">648</span> bucketMulti.add(cachedBlock);<a name="line.648"></a>
-<span class="sourceLineNo">649</span> break;<a name="line.649"></a>
-<span class="sourceLineNo">650</span> }<a name="line.650"></a>
-<span class="sourceLineNo">651</span> case MEMORY: {<a name="line.651"></a>
-<span class="sourceLineNo">652</span> bucketMemory.add(cachedBlock);<a name="line.652"></a>
-<span class="sourceLineNo">653</span> break;<a name="line.653"></a>
-<span class="sourceLineNo">654</span> }<a name="line.654"></a>
-<span class="sourceLineNo">655</span> }<a name="line.655"></a>
-<span class="sourceLineNo">656</span> }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span> long bytesFreed = 0;<a name="line.658"></a>
-<span class="sourceLineNo">659</span> if (forceInMemory || memoryFactor > 0.999f) {<a name="line.659"></a>
-<span class="sourceLineNo">660</span> long s = bucketSingle.totalSize();<a name="line.660"></a>
-<span class="sourceLineNo">661</span> long m = bucketMulti.totalSize();<a name="line.661"></a>
-<span class="sourceLineNo">662</span> if (bytesToFree > (s + m)) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span> // this means we need to evict blocks in memory bucket to make room,<a name="line.663"></a>
-<span class="sourceLineNo">664</span> // so the single and multi buckets will be emptied<a name="line.664"></a>
-<span class="sourceLineNo">665</span> bytesFreed = bucketSingle.free(s);<a name="line.665"></a>
-<span class="sourceLineNo">666</span> bytesFreed += bucketMulti.free(m);<a name="line.666"></a>
-<span class="sourceLineNo">667</span> if (LOG.isTraceEnabled()) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.668"></a>
-<span class="sourceLineNo">669</span> " from single and multi buckets");<a name="line.669"></a>
-<span class="sourceLineNo">670</span> }<a name="line.670"></a>
-<span class="sourceLineNo">671</span> bytesFreed += bucketMemory.free(bytesToFree - bytesFreed);<a name="line.671"></a>
-<span class="sourceLineNo">672</span> if (LOG.isTraceEnabled()) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.673"></a>
-<span class="sourceLineNo">674</span> " total from all three buckets ");<a name="line.674"></a>
-<span class="sourceLineNo">675</span> }<a name="line.675"></a>
-<span class="sourceLineNo">676</span> } else {<a name="line.676"></a>
-<span class="sourceLineNo">677</span> // this means no need to evict block in memory bucket,<a name="line.677"></a>
-<span class="sourceLineNo">678</span> // and we try best to make the ratio between single-bucket and<a name="line.678"></a>
-<span class="sourceLineNo">679</span> // multi-bucket is 1:2<a name="line.679"></a>
-<span class="sourceLineNo">680</span> long bytesRemain = s + m - bytesToFree;<a name="line.680"></a>
-<span class="sourceLineNo">681</span> if (3 * s <= bytesRemain) {<a name="line.681"></a>
-<span class="sourceLineNo">682</span> // single-bucket is small enough that no eviction happens for it<a name="line.682"></a>
-<span class="sourceLineNo">683</span> // hence all eviction goes from multi-bucket<a name="line.683"></a>
-<span class="sourceLineNo">684</span> bytesFreed = bucketMulti.free(bytesToFree);<a name="line.684"></a>
-<span class="sourceLineNo">685</span> } else if (3 * m <= 2 * bytesRemain) {<a name="line.685"></a>
-<span class="sourceLineNo">686</span> // multi-bucket is small enough that no eviction happens for it<a name="line.686"></a>
-<span class="sourceLineNo">687</span> // hence all eviction goes from single-bucket<a name="line.687"></a>
-<span class="sourceLineNo">688</span> bytesFreed = bucketSingle.free(bytesToFree);<a name="line.688"></a>
-<span class="sourceLineNo">689</span> } else {<a name="line.689"></a>
-<span class="sourceLineNo">690</span> // both buckets need to evict some blocks<a name="line.690"></a>
-<span class="sourceLineNo">691</span> bytesFreed = bucketSingle.free(s - bytesRemain / 3);<a name="line.691"></a>
-<span class="sourceLineNo">692</span> if (bytesFreed < bytesToFree) {<a name="line.692"></a>
-<span class="sourceLineNo">693</span> bytesFreed += bucketMulti.free(bytesToFree - bytesFreed);<a name="line.693"></a>
-<span class="sourceLineNo">694</span> }<a name="line.694"></a>
-<span class="sourceLineNo">695</span> }<a name="line.695"></a>
-<span class="sourceLineNo">696</span> }<a name="line.696"></a>
-<span class="sourceLineNo">697</span> } else {<a name="line.697"></a>
-<span class="sourceLineNo">698</span> PriorityQueue<BlockBucket> bucketQueue = new PriorityQueue<>(3);<a name="line.698"></a>
-<span class="sourceLineNo">699</span><a name="line.699"></a>
-<span class="sourceLineNo">700</span> bucketQueue.add(bucketSingle);<a name="line.700"></a>
-<span class="sourceLineNo">701</span> bucketQueue.add(bucketMulti);<a name="line.701"></a>
-<span class="sourceLineNo">702</span> bucketQueue.add(bucketMemory);<a name="line.702"></a>
-<span class="sourceLineNo">703</span><a name="line.703"></a>
-<span class="sourceLineNo">704</span> int remainingBuckets = 3;<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span> BlockBucket bucket;<a name="line.706"></a>
-<span class="sourceLineNo">707</span> while ((bucket = bucketQueue.poll()) != null) {<a name="line.707"></a>
-<span class="sourceLineNo">708</span> long overflow = bucket.overflow();<a name="line.708"></a>
-<span class="sourceLineNo">709</span> if (overflow > 0) {<a name="line.709"></a>
-<span class="sourceLineNo">710</span> long bucketBytesToFree =<a name="line.710"></a>
-<span class="sourceLineNo">711</span> Math.min(overflow, (bytesToFree - bytesFreed) / remainingBuckets);<a name="line.711"></a>
-<span class="sourceLineNo">712</span> bytesFreed += bucket.free(bucketBytesToFree);<a name="line.712"></a>
-<span class="sourceLineNo">713</span> }<a name="line.713"></a>
-<span class="sourceLineNo">714</span> remainingBuckets--;<a name="line.714"></a>
-<span class="sourceLineNo">715</span> }<a name="line.715"></a>
-<span class="sourceLineNo">716</span> }<a name="line.716"></a>
-<span class="sourceLineNo">717</span> if (LOG.isTraceEnabled()) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span> long single = bucketSingle.totalSize();<a name="line.718"></a>
-<span class="sourceLineNo">719</span> long multi = bucketMulti.totalSize();<a name="line.719"></a>
-<span class="sourceLineNo">720</span> long memory = bucketMemory.totalSize();<a name="line.720"></a>
-<span class="sourceLineNo">721</span> LOG.trace("Block cache LRU eviction completed; " +<a name="line.721"></a>
-<span class="sourceLineNo">722</span> "freed=" + StringUtils.byteDesc(bytesFreed) + ", " +<a name="line.722"></a>
-<span class="sourceLineNo">723</span> "total=" + StringUtils.byteDesc(this.size.get()) + ", " +<a name="line.723"></a>
-<span class="sourceLineNo">724</span> "single=" + StringUtils.byteDesc(single) + ", " +<a name="line.724"></a>
-<span class="sourceLineNo">725</span> "multi=" + StringUtils.byteDesc(multi) + ", " +<a name="line.725"></a>
-<span class="sourceLineNo">726</span> "memory=" + StringUtils.byteDesc(memory));<a name="line.726"></a>
-<span class="sourceLineNo">727</span> }<a name="line.727"></a>
-<span class="sourceLineNo">728</span> } finally {<a name="line.728"></a>
-<span class="sourceLineNo">729</span> stats.evict();<a name="line.729"></a>
-<span class="sourceLineNo">730</span> evictionInProgress = false;<a name="line.730"></a>
-<span class="sourceLineNo">731</span> evictionLock.unlock();<a name="line.731"></a>
-<span class="sourceLineNo">732</span> }<a name="line.732"></a>
-<span class="sourceLineNo">733</span> }<a name="line.733"></a>
-<span class="sourceLineNo">734</span><a name="line.734"></a>
-<span class="sourceLineNo">735</span> @Override<a name="line.735"></a>
-<span class="sourceLineNo">736</span> public String toString() {<a name="line.736"></a>
-<span class="sourceLineNo">737</span> return MoreObjects.toStringHelper(this)<a name="line.737"></a>
-<span class="sourceLineNo">738</span> .add("blockCount", getBlockCount())<a name="line.738"></a>
-<span class="sourceLineNo">739</span> .add("currentSize", StringUtils.byteDesc(getCurrentSize()))<a name="line.739"></a>
-<span class="sourceLineNo">740</span> .add("freeSize", StringUtils.byteDesc(getFreeSize()))<a name="line.740"></a>
-<span class="sourceLineNo">741</span> .add("maxSize", StringUtils.byteDesc(getMaxSize()))<a name="line.741"></a>
-<span class="sourceLineNo">742</span> .add("heapSize", StringUtils.byteDesc(heapSize()))<a name="line.742"></a>
-<span class="sourceLineNo">743</span> .add("minSize", StringUtils.byteDesc(minSize()))<a name="line.743"></a>
-<span class="sourceLineNo">744</span> .add("minFactor", minFactor)<a name="line.744"></a>
-<span class="sourceLineNo">745</span> .add("multiSize", StringUtils.byteDesc(multiSize()))<a name="line.745"></a>
-<span class="sourceLineNo">746</span> .add("multiFactor", multiFactor)<a name="line.746"></a>
-<span class="sourceLineNo">747</span> .add("singleSize", StringUtils.byteDesc(singleSize()))<a name="line.747"></a>
-<span class="sourceLineNo">748</span> .add("singleFactor", singleFactor)<a name="line.748"></a>
-<span class="sourceLineNo">749</span> .toString();<a name="line.749"></a>
-<span class="sourceLineNo">750</span> }<a name="line.750"></a>
+<span class="sourceLineNo">627</span> // Scan entire map putting into appropriate buckets<a name="line.627"></a>
+<span class="sourceLineNo">628</span> for (LruCachedBlock cachedBlock : map.values()) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span> switch (cachedBlock.getPriority()) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span> case SINGLE: {<a name="line.630"></a>
+<span class="sourceLineNo">631</span> bucketSingle.add(cachedBlock);<a name="line.631"></a>
+<span class="sourceLineNo">632</span> break;<a name="line.632"></a>
+<span class="sourceLineNo">633</span> }<a name="line.633"></a>
+<span class="sourceLineNo">634</span> case MULTI: {<a name="line.634"></a>
+<span class="sourceLineNo">635</span> bucketMulti.add(cachedBlock);<a name="line.635"></a>
+<span class="sourceLineNo">636</span> break;<a name="line.636"></a>
+<span class="sourceLineNo">637</span> }<a name="line.637"></a>
+<span class="sourceLineNo">638</span> case MEMORY: {<a name="line.638"></a>
+<span class="sourceLineNo">639</span> bucketMemory.add(cachedBlock);<a name="line.639"></a>
+<span class="sourceLineNo">640</span> break;<a name="line.640"></a>
+<span class="sourceLineNo">641</span> }<a name="line.641"></a>
+<span class="sourceLineNo">642</span> }<a name="line.642"></a>
+<span class="sourceLineNo">643</span> }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span> long bytesFreed = 0;<a name="line.645"></a>
+<span class="sourceLineNo">646</span> if (forceInMemory || memoryFactor > 0.999f) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span> long s = bucketSingle.totalSize();<a name="line.647"></a>
+<span class="sourceLineNo">648</span> long m = bucketMulti.totalSize();<a name="line.648"></a>
+<span class="sourceLineNo">649</span> if (bytesToFree > (s + m)) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span> // this means we need to evict blocks in memory bucket to make room,<a name="line.650"></a>
+<span class="sourceLineNo">651</span> // so the single and multi buckets will be emptied<a name="line.651"></a>
+<span class="sourceLineNo">652</span> bytesFreed = bucketSingle.free(s);<a name="line.652"></a>
+<span class="sourceLineNo">653</span> bytesFreed += bucketMulti.free(m);<a name="line.653"></a>
+<span class="sourceLineNo">654</span> if (LOG.isTraceEnabled()) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.655"></a>
+<span class="sourceLineNo">656</span> " from single and multi buckets");<a name="line.656"></a>
+<span class="sourceLineNo">657</span> }<a name="line.657"></a>
+<span class="sourceLineNo">658</span> bytesFreed += bucketMemory.free(bytesToFree - bytesFreed);<a name="line.658"></a>
+<span class="sourceLineNo">659</span> if (LOG.isTraceEnabled()) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.660"></a>
+<span class="sourceLineNo">661</span> " total from all three buckets ");<a name="line.661"></a>
+<span class="sourceLineNo">662</span> }<a name="line.662"></a>
+<span class="sourceLineNo">663</span> } else {<a name="line.663"></a>
+<span class="sourceLineNo">664</span> // this means no need to evict block in memory bucket,<a name="line.664"></a>
+<span class="sourceLineNo">665</span> // and we try best to make the ratio between single-bucket and<a name="line.665"></a>
+<span class="sourceLineNo">666</span> // multi-bucket is 1:2<a name="line.666"></a>
+<span class="sourceLineNo">667</span> long bytesRemain = s + m - bytesToFree;<a name="line.667"></a>
+<span class="sourceLineNo">668</span> if (3 * s <= bytesRemain) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span> // single-bucket is small enough that no eviction happens for it<a name="line.669"></a>
+<span class="sourceLineNo">670</span> // hence all eviction goes from multi-bucket<a name="line.670"></a>
+<span class="sourceLineNo">671</span> bytesFreed = bucketMulti.free(bytesToFree);<a name="line.671"></a>
+<span class="sourceLineNo">672</span> } else if (3 * m <= 2 * bytesRemain) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span> // multi-bucket is small enough that no eviction happens for it<a name="line.673"></a>
+<span class="sourceLineNo">674</span> // hence all eviction goes from single-bucket<a name="line.674"></a>
+<span class="sourceLineNo">675</span> bytesFreed = bucketSingle.free(bytesToFree);<a name="line.675"></a>
+<span class="sourceLineNo">676</span> } else {<a name="line.676"></a>
+<span class="sourceLineNo">677</span> // both buckets need to evict some blocks<a name="line.677"></a>
+<span class="sourceLineNo">678</span> bytesFreed = bucketSingle.free(s - bytesRemain / 3);<a name="line.678"></a>
+<span class="sourceLineNo">679</span> if (bytesFreed < bytesToFree) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span> bytesFreed += bucketMulti.free(bytesToFree - bytesFreed);<a name="line.680"></a>
+<span class="sourceLineNo">681</span> }<a name="line.681"></a>
+<span class="sourceLineNo">682</span> }<a name="line.682"></a>
+<span class="sourceLineNo">683</span> }<a name="line.683"></a>
+<span class="sourceLineNo">684</span> } else {<a name="line.684"></a>
+<span class="sourceLineNo">685</span> PriorityQueue<BlockBucket> bucketQueue = new PriorityQueue<>(3);<a name="line.685"></a>
+<span class="sourceLineNo">686</span><a name="line.686"></a>
+<span class="sourceLineNo">687</span> bucketQueue.add(bucketSingle);<a name="line.687"></a>
+<span class="sourceLineNo">688</span> bucketQueue.add(bucketMulti);<a name="line.688"></a>
+<span class="sourceLineNo">689</span> bucketQueue.add(bucketMemory);<a name="line.689"></a>
+<span class="sourceLineNo">690</span><a name="line.690"></a>
+<span class="sourceLineNo">691</span> int remainingBuckets = 3;<a name="line.691"></a>
+<span class="sourceLineNo">692</span><a name="line.692"></a>
+<span class="sourceLineNo">693</span> BlockBucket bucket;<a name="line.693"></a>
+<span class="sourceLineNo">694</span> while ((bucket = bucketQueue.poll()) != null) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span> long overflow = bucket.overflow();<a name="line.695"></a>
+<span class="sourceLineNo">696</span> if (overflow > 0) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span> long bucketBytesToFree =<a name="line.697"></a>
+<span class="sourceLineNo">698</span> Math.min(overflow, (bytesToFree - bytesFreed) / remainingBuckets);<a name="line.698"></a>
+<span class="sourceLineNo">699</span> bytesFreed += bucket.free(bucketBytesToFree);<a name="line.699"></a>
+<span class="sourceLineNo">700</span> }<a name="line.700"></a>
+<span class="sourceLineNo">701</span> remainingBuckets--;<a name="line.701"></a>
+<span class="sourceLineNo">702</span> }<a name="line.702"></a>
+<span class="sourceLineNo">703</span> }<a name="line.703"></a>
+<span class="sourceLineNo">704</span> if (LOG.isTraceEnabled()) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span> long single = bucketSingle.totalSize();<a name="line.705"></a>
+<span class="sourceLineNo">706</span> long multi = bucketMulti.totalSize();<a name="line.706"></a>
+<span class="sourceLineNo">707</span> long memory = bucketMemory.totalSize();<a name="line.707"></a>
+<span class="sourceLineNo">708</span> LOG.trace("Block cache LRU eviction completed; " +<a name="line.708"></a>
+<span class="sourceLineNo">709</span> "freed=" + StringUtils.byteDesc(bytesFreed) + ", " +<a name="line.709"></a>
+<span class="sourceLineNo">710</span> "total=" + StringUtils.byteDesc(this.size.get()) + ", " +<a name="line.710"></a>
+<span class="sourceLineNo">711</span> "single=" + StringUtils.byteDesc(single) + ", " +<a name="line.711"></a>
+<span class="sourceLineNo">712</span> "multi=" + StringUtils.byteDesc(multi) + ", " +<a name="line.712"></a>
+<span class="sourceLineNo">713</span> "memory=" + StringUtils.byteDesc(memory));<a name="line.713"></a>
+<span class="sourceLineNo">714</span> }<a name="line.714"></a>
+<span class="sourceLineNo">715</span> } finally {<a name="line.715"></a>
+<span class="sourceLineNo">716</span> stats.evict();<a name="line.716"></a>
+<span class="sourceLineNo">717</span> evictionInProgress = false;<a name="line.717"></a>
+<span class="sourceLineNo">718</span> evictionLock.unlock();<a name="line.718"></a>
+<span class="sourceLineNo">719</span> }<a name="line.719"></a>
+<span class="sourceLineNo">720</span> }<a name="line.720"></a>
+<span class="sourceLineNo">721</span><a name="line.721"></a>
+<span class="sourceLineNo">722</span> @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span> public String toString() {<a name="line.723"></a>
+<span class="sourceLineNo">724</span> return MoreObjects.toStringHelper(this)<a name="line.724"></a>
+<span class="sourceLineNo">725</span> .add("blockCount", getBlockCount())<a name="line.725"></a>
+<span class="sourceLineNo">726</span> .add("currentSize", StringUtils.byteDesc(getCurrentSize()))<a name="line.726"></a>
+<span class="sourceLineNo">727</span> .add("freeSize", StringUtils.byteDesc(getFreeSize()))<a name="line.727"></a>
+<span class="sourceLineNo">728</span> .add("maxSize", StringUtils.byteDesc(getMaxSize()))<a name="line.728"></a>
+<span class="sourceLineNo">729</span> .add("heapSize", StringUtils.byteDesc(heapSize()))<a name="line.729"></a>
+<span class="sourceLineNo">730</span> .add("minSize", StringUtils.byteDesc(minSize()))<a name="line.730"></a>
+<span class="sourceLineNo">731</span> .add("minFactor", minFactor)<a name="line.731"></a>
+<span class="sourceLineNo">732</span> .add("multiSize", StringUtils.byteDesc(multiSize()))<a name="line.732"></a>
+<span class="sourceLineNo">733</span> .add("multiFactor", multiFactor)<a name="line.733"></a>
+<span class="sourceLineNo">734</span> .add("singleSize", StringUtils.byteDesc(singleSize()))<a name="line.734"></a>
+<span class="sourceLineNo">735</span> .add("singleFactor", singleFactor)<a name="line.735"></a>
+<span class="sourceLineNo">736</span> .toString();<a name="line.736"></a>
+<span class="sourceLineNo">737</span> }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span> /**<a name="line.739"></a>
+<span class="sourceLineNo">740</span> * Used to group blocks into priority buckets. There will be a BlockBucket<a name="line.740"></a>
+<span class="sourceLineNo">741</span> * for each priority (single, multi, memory). Once bucketed, the eviction<a name="line.741"></a>
+<span class="sourceLineNo">742</span> * algorithm takes the appropriate number of elements out of each according<a name="line.742"></a>
+<span class="sourceLineNo">743</span> * to configuration parameters and their relatives sizes.<a name="line.743"></a>
+<span class="sourceLineNo">744</span> */<a name="line.744"></a>
+<span class="sourceLineNo">745</span> private class BlockBucket implements Comparable<BlockBucket> {<a name="line.745"></a>
+<span class="sourceLineNo">746</span><a name="line.746"></a>
+<span class="sourceLineNo">747</span> private final String name;<a name="line.747"></a>
+<span class="sourceLineNo">748</span> private LruCachedBlockQueue queue;<a name="line.748"></a>
+<span class="sourceLineNo">749</span> private long totalSize = 0;<a name="line.749"></a>
+<span class="sourceLineNo">750</span> private long bucketSize;<a name="line.750"></a>
<span class="sourceLineNo">751</span><a name="line.751"></a>
-<span class="sourceLineNo">752</span> /**<a name="line.752"></a>
-<span class="sourceLineNo">753</span> * Used to group blocks into priority buckets. There will be a BlockBucket<a name="line.753"></a>
-<span class="sourceLineNo">754</span> * for each priority (single, multi, memory). Once bucketed, the eviction<a name="line.754"></a>
-<span class="sourceLineNo">755</span> * algorithm takes the appropriate number of elements out of each according<a name="line.755"></a>
-<span class="sourceLineNo">756</span> * to configuration parameters and their relatives sizes.<a name="line.756"></a>
-<span class="sourceLineNo">757</span> */<a name="line.757"></a>
-<span class="sourceLineNo">758</span> private class BlockBucket implements Comparable<BlockBucket> {<a name="line.758"></a>
-<span class="sourceLineNo">759</span><a name="line.759"></a>
-<span class="sourceLineNo">760</span> private final String name;<a name="line.760"></a>
-<span class="sourceLineNo">761</span> private LruCachedBlockQueue queue;<a name="line.761"></a>
-<span class="sourceLineNo">762</span> private long totalSize = 0;<a name="line.762"></a>
-<span class="sourceLineNo">763</span> private long bucketSize;<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span> public BlockBucket(String name, long bytesToFree, long blockSize, long bucketSize) {<a name="line.765"></a>
-<span class="sourceLineNo">766</span> this.name = name;<a name="line.766"></a>
-<span class="sourceLineNo">767</span> this.bucketSize = bucketSize;<a name="line.767"></a>
-<span class="sourceLineNo">768</span> queue = new LruCachedBlockQueue(bytesToFree, blockSize);<a name="line.768"></a>
-<span class="sourceLineNo">769</span> totalSize = 0;<a name="line.769"></a>
-<span class="sourceLineNo">770</span> }<a name="line.770"></a>
-<span class="sourceLineNo">771</span><a name="line.771"></a>
-<span class="sourceLineNo">772</span> public void add(LruCachedBlock block) {<a name="line.772"></a>
-<span class="sourceLineNo">773</span> totalSize += block.heapSize();<a name="line.773"></a>
-<span class="sourceLineNo">774</span> queue.add(block);<a name="line.774"></a>
-<span class="sourceLineNo">775</span> }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span> public long free(long toFree) {<a name="line.777"></a>
-<span class="sourceLineNo">778</span> if (LOG.isTraceEnabled()) {<a name="line.778"></a>
-<span class="sourceLineNo">779</span> LOG.trace("freeing " + StringUtils.byteDesc(toFree) + " from " + this);<a name="line.779"></a>
-<span class="sourceLineNo">780</span> }<a name="line.780"></a>
-<span class="sourceLineNo">781</span> LruCachedBlock cb;<a name="line.781"></a>
-<span class="sourceLineNo">782</span> long freedBytes = 0;<a name="line.782"></a>
-<span class="sourceLineNo">783</span> while ((cb = queue.pollLast()) != null) {<a name="line.783"></a>
-<span class="sourceLineNo">784</span> freedBytes += evictBlock(cb, true);<a name="line.784"></a>
-<span class="sourceLineNo">785</span> if (freedBytes >= toFree) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span> return freedBytes;<a name="line.786"></a>
-<span class="sourceLineNo">787</span> }<a name="line.787"></a>
-<span class="sourceLineNo">788</span> }<a name="line.788"></a>
-<span class="sourceLineNo">789</span> if (LOG.isTraceEnabled()) {<a name="line.789"></a>
-<span class="sourceLineNo">790</span> LOG.trace("freed " + StringUtils.byteDesc(freedBytes) + " from " + this);<a name="line.790"></a>
-<span class="sourceLineNo">791</span> }<a name="line.791"></a>
-<span class="sourceLineNo">792</span> return freedBytes;<a name="line.792"></a>
+<span class="sourceLineNo">752</span> public BlockBucket(String name, long bytesToFree, long blockSize, long bucketSize) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span> this.name = name;<a name="line.753"></a>
+<span class="sourceLineNo">754</span> this.bucketSize = bucketSize;<a name="line.754"></a>
+<span class="sourceLineNo">755</span> queue = new LruCachedBlockQueue(bytesToFree, blockSize);<a name="line.755"></a>
+<span class="sourceLineNo">756</span> totalSize = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span> }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span> public void add(LruCachedBlock block) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span> totalSize += block.heapSize();<a name="line.760"></a>
+<span class="sourceLineNo">761</span> queue.add(block);<a name="line.761"></a>
+<span class="sourceLineNo">762</span> }<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span> public long free(long toFree) {<a name="line.764"></a>
+<span class="sourceLineNo">765</span> if (LOG.isTraceEnabled()) {<a name="line.765"></a>
+<span class="sourceLineNo">766</span> LOG.trace("freeing " + StringUtils.byteDesc(toFree) + " from " + this);<a name="line.766"></a>
+<span class="sourceLineNo">767</span> }<a name="line.767"></a>
+<span class="sourceLineNo">768</span> LruCachedBlock cb;<a name="line.768"></a>
+<span class="sourceLineNo">769</span> long freedBytes = 0;<a name="line.769"></a>
+<span class="sourceLineNo">770</span> while ((cb = queue.pollLast()) != null) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span> freedBytes += evictBlock(cb, true);<a name="line.771"></a>
+<span class="sourceLineNo">772</span> if (freedBytes >= toFree) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span> return freedBytes;<a name="line.773"></a>
+<span class="sourceLineNo">774</span> }<a name="line.774"></a>
+<span class="sourceLineNo">775</span> }<a name="line.775"></a>
+<span class="sourceLineNo">776</span> if (LOG.isTraceEnabled()) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span> LOG.trace("freed " + StringUtils.byteDesc(freedBytes) + " from " + this);<a name="line.777"></a>
+<span class="sourceLineNo">778</span> }<a name="line.778"></a>
+<span class="sourceLineNo">779</span> return freedBytes;<a name="line.779"></a>
+<span class="sourceLineNo">780</span> }<a name="line.780"></a>
+<span class="sourceLineNo">781</span><a name="line.781"></a>
+<span class="sourceLineNo">782</span> public long overflow() {<a name="line.782"></a>
+<span class="sourceLineNo">783</span> return totalSize - bucketSize;<a name="line.783"></a>
+<span class="sourceLineNo">784</span> }<a name="line.784"></a>
+<span class="sourceLineNo">785</span><a name="line.785"></a>
+<span class="sourceLineNo">786</span> public long totalSize() {<a name="line.786"></a>
+<span class="sourceLineNo">787</span> return totalSize;<a name="line.787"></a>
+<span class="sourceLineNo">788</span> }<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span> @Override<a name="line.790"></a>
+<span class="sourceLineNo">791</span> public int compareTo(BlockBucket that) {<a name="line.791"></a>
+<span class="sourceLineNo">792</span> return Long.compare(this.overflow(), that.overflow());<a name="line.792"></a>
<span class="sourceLineNo">793</span> }<a name="line.793"></a>
<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span> public long overflow() {<a name="line.795"></a>
-<span class="sourceLineNo">796</span> return totalSize - bucketSize;<a name="line.796"></a>
-<span class="sourceLineNo">797</span> }<a name="line.797"></a>
-<span class="sourceLineNo">798</span><a name="line.798"></a>
-<span class="sourceLineNo">799</span> public long totalSize() {<a name="line.799"></a>
-<span class="sourceLineNo">800</span> return totalSize;<a name="line.800"></a>
+<span class="sourceLineNo">795</span> @Override<a name="line.795"></a>
+<span class="sourceLineNo">796</span> public boolean equals(Object that) {<a name="line.796"></a>
+<span class="sourceLineNo">797</span> if (that == null || !(that instanceof BlockBucket)) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span> return false;<a name="line.798"></a>
+<span class="sourceLineNo">799</span> }<a name="line.799"></a>
+<span class="sourceLineNo">800</span> return compareTo((BlockBucket)that) == 0;<a name="line.800"></a>
<span class="sourceLineNo">801</span> }<a name="line.801"></a>
<span class="sourceLineNo">802</span><a name="line.802"></a>
<span class="sourceLineNo">803</span> @Override<a name="line.803"></a>
-<span class="sourceLineNo">804</span> public int compareTo(BlockBucket that) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span> return Long.compare(this.overflow(), that.overflow());<a name="line.805"></a>
+<span class="sourceLineNo">804</span> public int hashCode() {<a name="line.804"></a>
+<span class="sourceLineNo">805</span> return Objects.hashCode(name, bucketSize, queue, totalSize);<a name="line.805"></a>
<span class="sourceLineNo">806</span> }<a name="line.806"></a>
<span class="sourceLineNo">807</span><a name="line.807"></a>
<span class="sourceLineNo">808</span> @Override<a name="line.808"></a>
-<span class="sourceLineNo">809</span> public boolean equals(Object that) {<a name="line.809"></a>
-<span class="sourceLineNo">810</span> if (that == null || !(that instanceof BlockBucket)) {<a name="line.810"></a>
-<span class="sourceLineNo">811</span> return false;<a name="line.811"></a>
-<span class="sourceLineNo">812</span> }<a name="line.812"></a>
-<span class="sourceLineNo">813</span> return compareTo((BlockBucket)that) == 0;<a name="line.813"></a>
-<span class="sourceLineNo">814</span> }<a name="line.814"></a>
-<span class="sourceLineNo">815</span><a name="line.815"></a>
-<span class="sourceLineNo">816</span> @Override<a name="line.816"></a>
-<span class="sourceLineNo">817</span> public int hashCode() {<a name="line.817"></a>
-<span class="sourceLineNo">818</span> return Objects.hashCode(name, bucketSize, queue, totalSize);<a name="line.818"></a>
-<span class="sourceLineNo">819</span> }<a name="line.819"></a>
-<span class="sourceLineNo">820</span><a name="line.820"></a>
-<span class="sourceLineNo">821</span> @Override<a name="line.821"></a>
-<span class="sourceLineNo">822</span> public String toString() {<a name="line.822"></a>
-<span class="sourceLineNo">823</span> return MoreObjects.toStringHelper(this)<a name="line.823"></a>
-<span class="sourceLineNo">824</span> .add("name", name)<a name="line.824"></a>
-<span class="sourceLineNo">825</span> .add("totalSize", StringUtils.byteDesc(totalSize))<a name="line.825"></a>
-<span class="sourceLineNo">826</span> .add("bucketSize", StringUtils.byteDesc(bucketSize))<a name="line.826"></a>
-<span class="sourceLineNo">827</span> .toString();<a name="line.827"></a>
-<span class="sourceLineNo">828</span> }<a name="line.828"></a>
-<span class="sourceLineNo">829</span> }<a name="line.829"></a>
-<span class="sourceLineNo">830</span><a name="line.830"></a>
-<span class="sourceLineNo">831</span> /**<a name="line.831"></a>
-<span class="sourceLineNo">832</span> * Get the maximum size of this cache.<a name="line.832"></a>
-<span class="sourceLineNo">833</span> *<a name="line.833"></a>
-<span class="sourceLineNo">834</span> * @return max size in bytes<a name="line.834"></a>
-<span class="sourceLineNo">835</span> */<a name="line.835"></a>
-<span class="sourceLineNo">836</span><a name="line.836"></a>
-<span class="sourceLineNo">837</span> @Override<a name="line.837"></a>
-<span class="sourceLineNo">838</span> public long getMaxSize() {<a name="line.838"></a>
-<span class="sourceLineNo">839</span> return this.maxSize;<a name="line.839"></a>
-<span class="sourceLineNo">840</span> }<a name="line.840"></a>
-<span class="sourceLineNo">841</span><a name="line.841"></a>
-<span class="sourceLineNo">842</span> @Override<a name="line.842"></a>
-<span class="sourceLineNo">843</span> public long getCurrentSize() {<a name="line.843"></a>
-<span class="sourceLineNo">844</span> return this.size.get();<a name="line.844"></a>
-<span class="sourceLineNo">845</span> }<a name="line.845"></a>
-<span class="sourceLineNo">846</span><a name="line.846"></a>
-<span class="sourceLineNo">847</span> @Override<a name="line.847"></a>
-<span class="sourceLineNo">848</span> public long getCurrentDataSize() {<a name="line.848"></a>
-<span class="sourceLineNo">849</span> return this.dataBlockSize.sum();<a name="line.849"></a>
-<span class="sourceLineNo">850</span> }<a name="line.850"></a>
-<span class="sourceLineNo">851</span><a name="line.851"></a>
-<span class="sourceLineNo">852</span> @Override<a name="line.852"></a>
-<span class="sourceLineNo">853</span> public long getFreeSize() {<a name="line.853"></a>
-<span class="sourceLineNo">854</span> return getMaxSize() - getCurrentSize();<a name="line.854"></a>
-<span class="sourceLineNo">855</span> }<a name="line.855"></a>
-<span class="sourceLineNo">856</span><a name="line.856"></a>
-<span class="sourceLineNo">857</span> @Override<a name="line.857"></a>
-<span class="sourceLineNo">858</span> public long size() {<a name="line.858"></a>
-<span class="sourceLineNo">859</span> return getMaxSize();<a name="line.859"></a>
-<span class="sourceLineNo">860</span> }<a name="line.860"></a>
-<span class="sourceLineNo">861</span><a name="line.861"></a>
-<span class="sourceLineNo">862</span> @Override<a name="line.862"></a>
-<span class="sourceLineNo">863</span> public long getBlockCount() {<a name="line.863"></a>
-<span class="sourceLineNo">864</span> return this.elements.get();<a name="line.864"></a>
-<span class="sourceLineNo">865</span> }<a name="line.865"></a>
-<span class="sourceLineNo">866</span><a name="line.866"></a>
-<span class="sourceLineNo">867</span> @Override<a name="line.867"></a>
-<span class="sourceLineNo">868</span> public long getDataBlockCount() {<a name="line.868"></a>
-<span class="sourceLineNo">869</span> return this.dataBlockElements.sum();<a name="line.869"></a>
-<span class="sourceLineNo">870</span> }<a name="line.870"></a>
-<span class="sourceLineNo">871</span><a name="line.871"></a>
-<span class="sourceLineNo">872</span> EvictionThread getEvictionThread() {<a name="line.872"></a>
-<span class="sourceLineNo">873</span> return this.evictionThread;<a name="line.873"></a>
-<span class="sourceLineNo">874</span> }<a name="line.874"></a>
+<span class="sourceLineNo">809</span> public String toString() {<a name="line.809"></a>
+<span class="sourceLineNo">810</span> return MoreObjects.toStringHelper(this)<a name="line.810"></a>
+<span class="sourceLineNo">811</span> .add("name", name)<a name="line.811"></a>
+<span class="sourceLineNo">812</span> .add("totalSize", StringUtils.byteDesc(totalSize))<a name="line.812"></a>
+<span class="sourceLineNo">813</span> .add("bucketSize", StringUtils.byteDesc(bucketSize))<a name="line.813"></a>
+<span class="sourceLineNo">814</span> .toString();<a name="line.814"></a>
+<span class="sourceLineNo">815</span> }<a name="line.815"></a>
+<span class="sourceLineNo">816</span> }<a name="line.816"></a>
+<span class="sourceLineNo">817</span><a name="line.817"></a>
+<span class="sourceLineNo">818</span> /**<a name="line.818"></a>
+<span class="sourceLineNo">819</span> * Get the maximum size of this cache.<a name="line.819"></a>
+<span class="sourceLineNo">820</span> *<a name="line.820"></a>
+<span class="sourceLineNo">821</span> * @return max size in bytes<a name="line.821"></a>
+<span class="sourceLineNo">822</span> */<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span> @Override<a name="line.824"></a>
+<span class="sourceLineNo">825</span> public long getMaxSize() {<a name="line.825"></a>
+<span class="sourceLineNo">826</span> return this.maxSize;<a name="line.826"></a>
+<span class="sourceLineNo">827</span> }<a name="line.827"></a>
+<span class="sourceLineNo">828</span><a name="line.828"></a>
+<span class="sourceLineNo">829</span> @Override<a name="line.829"></a>
+<span class="sourceLineNo">830</span> public long getCurrentSize() {<a name="line.830"></a>
+<span class="sourceLineNo">831</span> return this.size.get();<a name="line.831"></a>
+<span class="sourceLineNo">832</span> }<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span> @Override<a name="line.834"></a>
+<span class="sourceLineNo">835</span> public long getCurrentDataSize() {<a name="line.835"></a>
+<span class="sourceLineNo">836</span> return this.dataBlockSize.sum();<a name="line.836"></a>
+<span class="sourceLineNo">837</span> }<a name="line.837"></a>
+<span class="sourceLineNo">838</span><a name="line.838"></a>
+<span class="sourceLineNo">839</span> @Override<a name="line.839"></a>
+<span class="sourceLineNo">840</span> public long getFreeSize() {<a name="line.840"></a>
+<span class="sourceLineNo">841</span> return getMaxSize() - getCurrentSize();<a name="line.841"></a>
+<span class="sourceLineNo">842</span> }<a name="line.842"></a>
+<span class="sourceLineNo">843</span><a name="line.843"></a>
+<span class="sourceLineNo">844</spa
<TRUNCATED>
[33/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
index 142b0f9..2260cb8 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3015">HRegion.BatchOperation</a><T>
+<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3021">HRegion.BatchOperation</a><T>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Class that tracks the progress of a batch operations, accumulating status codes and tracking
the index at which processing is proceeding. These batch operations may get split into
@@ -408,7 +408,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>operations</h4>
-<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="type parameter in HRegion.BatchOperation">T</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3016">operations</a></pre>
+<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="type parameter in HRegion.BatchOperation">T</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3022">operations</a></pre>
</li>
</ul>
<a name="retCodeDetails">
@@ -417,7 +417,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>retCodeDetails</h4>
-<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3017">retCodeDetails</a></pre>
+<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3023">retCodeDetails</a></pre>
</li>
</ul>
<a name="walEditsFromCoprocessors">
@@ -426,7 +426,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>walEditsFromCoprocessors</h4>
-<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3018">walEditsFromCoprocessors</a></pre>
+<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3024">walEditsFromCoprocessors</a></pre>
</li>
</ul>
<a name="familyCellMaps">
@@ -435,7 +435,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>familyCellMaps</h4>
-<pre>protected final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>>>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3020">familyCellMaps</a></pre>
+<pre>protected final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>>>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3026">familyCellMaps</a></pre>
</li>
</ul>
<a name="region">
@@ -444,7 +444,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>region</h4>
-<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3022">region</a></pre>
+<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3028">region</a></pre>
</li>
</ul>
<a name="nextIndexToProcess">
@@ -453,7 +453,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>nextIndexToProcess</h4>
-<pre>protected int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3023">nextIndexToProcess</a></pre>
+<pre>protected int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3029">nextIndexToProcess</a></pre>
</li>
</ul>
<a name="observedExceptions">
@@ -462,7 +462,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>observedExceptions</h4>
-<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.ObservedExceptionsInBatch</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3024">observedExceptions</a></pre>
+<pre>protected final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.ObservedExceptionsInBatch</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3030">observedExceptions</a></pre>
</li>
</ul>
<a name="durability">
@@ -471,7 +471,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>durability</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3026">durability</a></pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3032">durability</a></pre>
</li>
</ul>
<a name="atomic">
@@ -480,7 +480,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>atomic</h4>
-<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3027">atomic</a></pre>
+<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3033">atomic</a></pre>
</li>
</ul>
</li>
@@ -499,7 +499,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>BatchOperation</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3029">BatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> region,
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3035">BatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> region,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="type parameter in HRegion.BatchOperation">T</a>[] operations)</pre>
</li>
</ul>
@@ -517,7 +517,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>visitBatchOperations</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3056">visitBatchOperations</a>(boolean pendingOnly,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3062">visitBatchOperations</a>(boolean pendingOnly,
int lastIndexExclusive,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation.Visitor</a> visitor)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -534,7 +534,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getMutation</h4>
-<pre>public abstract <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3068">getMutation</a>(int index)</pre>
+<pre>public abstract <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3074">getMutation</a>(int index)</pre>
</li>
</ul>
<a name="getNonceGroup-int-">
@@ -543,7 +543,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getNonceGroup</h4>
-<pre>public abstract long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3070">getNonceGroup</a>(int index)</pre>
+<pre>public abstract long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3076">getNonceGroup</a>(int index)</pre>
</li>
</ul>
<a name="getNonce-int-">
@@ -552,7 +552,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getNonce</h4>
-<pre>public abstract long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3072">getNonce</a>(int index)</pre>
+<pre>public abstract long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3078">getNonce</a>(int index)</pre>
</li>
</ul>
<a name="getMutationsForCoprocs--">
@@ -561,7 +561,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getMutationsForCoprocs</h4>
-<pre>public abstract <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3077">getMutationsForCoprocs</a>()</pre>
+<pre>public abstract <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3083">getMutationsForCoprocs</a>()</pre>
<div class="block">This method is potentially expensive and useful mostly for non-replay CP path.</div>
</li>
</ul>
@@ -571,7 +571,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>isInReplay</h4>
-<pre>public abstract boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3079">isInReplay</a>()</pre>
+<pre>public abstract boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3085">isInReplay</a>()</pre>
</li>
</ul>
<a name="getOrigLogSeqNum--">
@@ -580,7 +580,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getOrigLogSeqNum</h4>
-<pre>public abstract long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3081">getOrigLogSeqNum</a>()</pre>
+<pre>public abstract long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3087">getOrigLogSeqNum</a>()</pre>
</li>
</ul>
<a name="startRegionOperation--">
@@ -589,7 +589,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>startRegionOperation</h4>
-<pre>public abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3083">startRegionOperation</a>()
+<pre>public abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3089">startRegionOperation</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -603,7 +603,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>closeRegionOperation</h4>
-<pre>public abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3085">closeRegionOperation</a>()
+<pre>public abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3091">closeRegionOperation</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -617,7 +617,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>checkAndPrepare</h4>
-<pre>public abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3094">checkAndPrepare</a>()
+<pre>public abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3100">checkAndPrepare</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Validates each mutation and prepares a batch for write. If necessary (non-replay case), runs
CP prePut()/ preDelete() hooks for all mutations in a batch. This is intended to operate on
@@ -636,7 +636,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>checkAndPreparePut</h4>
-<pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3100">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a> p)
+<pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3106">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a> p)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Implement any Put request specific check and prepare logic here. Please refer to
<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#checkAndPrepareMutation-org.apache.hadoop.hbase.client.Mutation-long-"><code>checkAndPrepareMutation(Mutation, long)</code></a> for how its used.</div>
@@ -652,7 +652,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>prepareMiniBatchOperations</h4>
-<pre>public abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3106">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
+<pre>public abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3112">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
long timestamp,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>> acquiredRowLocks)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -670,7 +670,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>writeMiniBatchOperationsToMemStore</h4>
-<pre>public abstract <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3112">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
+<pre>public abstract <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3118">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a> writeEntry)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Write mini-batch operations to MemStore</div>
@@ -686,7 +686,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>writeMiniBatchOperationsToMemStore</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3116">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3122">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
long writeNumber)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
@@ -701,7 +701,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>isDone</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3136">isDone</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3142">isDone</a>()</pre>
</li>
</ul>
<a name="size--">
@@ -710,7 +710,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
-<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3140">size</a>()</pre>
+<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3146">size</a>()</pre>
</li>
</ul>
<a name="isOperationPending-int-">
@@ -719,7 +719,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>isOperationPending</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3144">isOperationPending</a>(int index)</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3150">isOperationPending</a>(int index)</pre>
</li>
</ul>
<a name="getClusterIds--">
@@ -728,7 +728,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getClusterIds</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3148">getClusterIds</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3154">getClusterIds</a>()</pre>
</li>
</ul>
<a name="isAtomic--">
@@ -737,7 +737,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>isAtomic</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3153">isAtomic</a>()</pre>
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3159">isAtomic</a>()</pre>
</li>
</ul>
<a name="checkAndPrepareMutation-org.apache.hadoop.hbase.client.Mutation-long-">
@@ -746,7 +746,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>checkAndPrepareMutation</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3163">checkAndPrepareMutation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a> mutation,
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3169">checkAndPrepareMutation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a> mutation,
long timestamp)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Helper method that checks and prepares only one mutation. This can be used to implement
@@ -765,7 +765,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>checkAndPrepareMutation</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3175">checkAndPrepareMutation</a>(int index,
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3181">checkAndPrepareMutation</a>(int index,
long timestamp)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
@@ -780,7 +780,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>lockRowsAndBuildMiniBatch</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3237">lockRowsAndBuildMiniBatch</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>> acquiredRowLocks)
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3243">lockRowsAndBuildMiniBatch</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>> acquiredRowLocks)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Creates Mini-batch of all operations [nextIndexToProcess, lastIndexExclusive) for which
a row lock can be acquired. All mutations with locked rows are considered to be
@@ -800,7 +800,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>createMiniBatch</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3321">createMiniBatch</a>(int lastIndexExclusive,
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3327">createMiniBatch</a>(int lastIndexExclusive,
int readyToWriteCount)</pre>
</li>
</ul>
@@ -810,7 +810,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>buildWALEdits</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>,<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3331">buildWALEdits</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> m
iniBatchOp)
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>,<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3337">buildWALEdits</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> m
iniBatchOp)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Builds separate WALEdit per nonce by applying input mutations. If WALEdits from CP are
present, they are merged to result WALEdit.</div>
@@ -826,7 +826,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>completeMiniBatchOperations</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3380">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3386">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a> writeEntry)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">This method completes mini-batch operations by calling postBatchMutate() CP hook (if
@@ -843,7 +843,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>doPostOpCleanupForMiniBatch</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3388">doPostOpCleanupForMiniBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3394">doPostOpCleanupForMiniBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a> walEdit,
boolean success)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -859,7 +859,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>doFinishHotnessProtector</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3394">doFinishHotnessProtector</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp)</pre>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3400">doFinishHotnessProtector</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp)</pre>
</li>
</ul>
<a name="applyFamilyMapToMemStore-java.util.Map-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
@@ -868,7 +868,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>applyFamilyMapToMemStore</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3431">applyFamilyMapToMemStore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>>> familyMap,
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3437">applyFamilyMapToMemStore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>>> familyMap,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> memstoreAccounting)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Atomically apply the given map of family->edits to the memstore.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
index 5e9c2c0..f0d2759 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5955">HRegion.BulkLoadListener</a></pre>
+<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5961">HRegion.BulkLoadListener</a></pre>
<div class="block">Listener class to enable callers of
bulkLoadHFile() to perform any necessary
pre/post processing of a given bulkload call</div>
@@ -174,7 +174,7 @@ var activeTableTab = "activeTableTab";
<ul class="blockList">
<li class="blockList">
<h4>prepareBulkLoad</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.5963">prepareBulkLoad</a>(byte[] family,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.5969">prepareBulkLoad</a>(byte[] family,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> srcPath,
boolean copyFile)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -196,7 +196,7 @@ var activeTableTab = "activeTableTab";
<ul class="blockList">
<li class="blockList">
<h4>doneBulkLoad</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.5972">doneBulkLoad</a>(byte[] family,
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.5978">doneBulkLoad</a>(byte[] family,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> srcPath)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Called after a successful HFile load</div>
@@ -215,7 +215,7 @@ var activeTableTab = "activeTableTab";
<ul class="blockListLast">
<li class="blockList">
<h4>failedBulkLoad</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.5980">failedBulkLoad</a>(byte[] family,
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.5986">failedBulkLoad</a>(byte[] family,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> srcPath)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Called after a failed HFile load</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
index b49d5a5..dd6b89a 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2186">HRegion.FlushResult.Result</a>
+<pre>public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2192">HRegion.FlushResult.Result</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>></pre>
</li>
</ul>
@@ -216,7 +216,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>FLUSHED_NO_COMPACTION_NEEDED</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2187">FLUSHED_NO_COMPACTION_NEEDED</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2193">FLUSHED_NO_COMPACTION_NEEDED</a></pre>
</li>
</ul>
<a name="FLUSHED_COMPACTION_NEEDED">
@@ -225,7 +225,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>FLUSHED_COMPACTION_NEEDED</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2188">FLUSHED_COMPACTION_NEEDED</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2194">FLUSHED_COMPACTION_NEEDED</a></pre>
</li>
</ul>
<a name="CANNOT_FLUSH_MEMSTORE_EMPTY">
@@ -234,7 +234,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>CANNOT_FLUSH_MEMSTORE_EMPTY</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2191">CANNOT_FLUSH_MEMSTORE_EMPTY</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2197">CANNOT_FLUSH_MEMSTORE_EMPTY</a></pre>
</li>
</ul>
<a name="CANNOT_FLUSH">
@@ -243,7 +243,7 @@ the order they are declared.</div>
<ul class="blockListLast">
<li class="blockList">
<h4>CANNOT_FLUSH</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2192">CANNOT_FLUSH</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2198">CANNOT_FLUSH</a></pre>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
index d147741..3a9dc8b 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2185">HRegion.FlushResult</a></pre>
+<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2191">HRegion.FlushResult</a></pre>
</li>
</ul>
</div>
@@ -180,7 +180,7 @@ var activeTableTab = "activeTableTab";
<ul class="blockList">
<li class="blockList">
<h4>getResult</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2196">getResult</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2202">getResult</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the detailed result code</dd>
@@ -193,7 +193,7 @@ var activeTableTab = "activeTableTab";
<ul class="blockList">
<li class="blockList">
<h4>isFlushSucceeded</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2199">isFlushSucceeded</a>()</pre>
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2205">isFlushSucceeded</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the memstores were flushed, else false</dd>
@@ -206,7 +206,7 @@ var activeTableTab = "activeTableTab";
<ul class="blockListLast">
<li class="blockList">
<h4>isCompactionNeeded</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2202">isCompactionNeeded</a>()</pre>
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2208">isCompactionNeeded</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if the flush requested a compaction, else false</dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
index 97072cf..3259495 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3447">HRegion.MutationBatchOperation</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3453">HRegion.MutationBatchOperation</a>
extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>></pre>
<div class="block">Batch of mutation operations. Base class is shared with <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver"><code>HRegion.ReplayBatchOperation</code></a> as most
of the logic is same.</div>
@@ -342,7 +342,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>nonceGroup</h4>
-<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3448">nonceGroup</a></pre>
+<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3454">nonceGroup</a></pre>
</li>
</ul>
<a name="nonce">
@@ -351,7 +351,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockListLast">
<li class="blockList">
<h4>nonce</h4>
-<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3449">nonce</a></pre>
+<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3455">nonce</a></pre>
</li>
</ul>
</li>
@@ -368,7 +368,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockListLast">
<li class="blockList">
<h4>MutationBatchOperation</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3450">MutationBatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> region,
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3456">MutationBatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> region,
<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[] operations,
boolean atomic,
long nonceGroup,
@@ -389,7 +389,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>getMutation</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3459">getMutation</a>(int index)</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3465">getMutation</a>(int index)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutation-int-">getMutation</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>></code></dd>
@@ -402,7 +402,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>getNonceGroup</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3464">getNonceGroup</a>(int index)</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3470">getNonceGroup</a>(int index)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonceGroup-int-">getNonceGroup</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>></code></dd>
@@ -415,7 +415,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>getNonce</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3469">getNonce</a>(int index)</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3475">getNonce</a>(int index)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonce-int-">getNonce</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>></code></dd>
@@ -428,7 +428,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>getMutationsForCoprocs</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3474">getMutationsForCoprocs</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3480">getMutationsForCoprocs</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutationsForCoprocs--">HRegion.BatchOperation</a></code></span></div>
<div class="block">This method is potentially expensive and useful mostly for non-replay CP path.</div>
<dl>
@@ -443,7 +443,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>isInReplay</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3479">isInReplay</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3485">isInReplay</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#isInReplay--">isInReplay</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>></code></dd>
@@ -456,7 +456,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>getOrigLogSeqNum</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3484">getOrigLogSeqNum</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3490">getOrigLogSeqNum</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getOrigLogSeqNum--">getOrigLogSeqNum</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>></code></dd>
@@ -469,7 +469,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>startRegionOperation</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3489">startRegionOperation</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3495">startRegionOperation</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -485,7 +485,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>closeRegionOperation</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3494">closeRegionOperation</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3500">closeRegionOperation</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -501,7 +501,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>checkAndPreparePut</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3499">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a> p)
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3505">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a> p)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#checkAndPreparePut-org.apache.hadoop.hbase.client.Put-">HRegion.BatchOperation</a></code></span></div>
<div class="block">Implement any Put request specific check and prepare logic here. Please refer to
@@ -520,7 +520,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>checkAndPrepare</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3504">checkAndPrepare</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3510">checkAndPrepare</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#checkAndPrepare--">HRegion.BatchOperation</a></code></span></div>
<div class="block">Validates each mutation and prepares a batch for write. If necessary (non-replay case), runs
@@ -542,7 +542,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>prepareMiniBatchOperations</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3549">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3555">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
long timestamp,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>> acquiredRowLocks)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -563,7 +563,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>buildWALEdits</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>,<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3585">buildWALEdits</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>>
; miniBatchOp)
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>,<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3591">buildWALEdits</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>>
; miniBatchOp)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#buildWALEdits-org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress-">HRegion.BatchOperation</a></code></span></div>
<div class="block">Builds separate WALEdit per nonce by applying input mutations. If WALEdits from CP are
@@ -582,7 +582,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>writeMiniBatchOperationsToMemStore</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3596">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3602">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
@Nullable
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a> writeEntry)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -602,7 +602,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>completeMiniBatchOperations</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3607">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3613">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a> writeEntry)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#completeMiniBatchOperations-org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">HRegion.BatchOperation</a></code></span></div>
@@ -622,7 +622,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>doPostOpCleanupForMiniBatch</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3619">doPostOpCleanupForMiniBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3625">doPostOpCleanupForMiniBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a> walEdit,
boolean success)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -640,7 +640,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>callPreMutateCPHook</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3668">callPreMutateCPHook</a>(int index,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3674">callPreMutateCPHook</a>(int index,
<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a> walEdit,
int[] metrics)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -659,7 +659,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockList">
<li class="blockList">
<h4>checkAndMergeCPMutations</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3705">checkAndMergeCPMutations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3711">checkAndMergeCPMutations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a><<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>> miniBatchOp,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>> acquiredRowLocks,
long timestamp)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -675,7 +675,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
<ul class="blockListLast">
<li class="blockList">
<h4>mergeFamilyMaps</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3740">mergeFamilyMaps</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>>> familyMap,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3746">mergeFamilyMaps</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>>> familyMap,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>>> toBeMerged)</pre>
</li>
</ul>
[04/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html
index 67f4551..017124c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html
@@ -387,817 +387,804 @@
<span class="sourceLineNo">379</span> }<a name="line.379"></a>
<span class="sourceLineNo">380</span><a name="line.380"></a>
<span class="sourceLineNo">381</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.381"></a>
-<span class="sourceLineNo">382</span> if (cb != null) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span> int comparison = BlockCacheUtil.validateBlockAddition(cb.getBuffer(), buf, cacheKey);<a name="line.383"></a>
-<span class="sourceLineNo">384</span> if (comparison != 0) {<a name="line.384"></a>
-<span class="sourceLineNo">385</span> if (comparison < 0) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize. Keeping cached block.");<a name="line.386"></a>
-<span class="sourceLineNo">387</span> return;<a name="line.387"></a>
-<span class="sourceLineNo">388</span> } else {<a name="line.388"></a>
-<span class="sourceLineNo">389</span> LOG.warn("Cached block contents differ by nextBlockOnDiskSize. Caching new block.");<a name="line.389"></a>
-<span class="sourceLineNo">390</span> }<a name="line.390"></a>
-<span class="sourceLineNo">391</span> } else {<a name="line.391"></a>
-<span class="sourceLineNo">392</span> String msg = "Cached an already cached block: " + cacheKey + " cb:" + cb.getCacheKey();<a name="line.392"></a>
-<span class="sourceLineNo">393</span> msg += ". This is harmless and can happen in rare cases (see HBASE-8547)";<a name="line.393"></a>
-<span class="sourceLineNo">394</span> LOG.debug(msg);<a name="line.394"></a>
-<span class="sourceLineNo">395</span> return;<a name="line.395"></a>
-<span class="sourceLineNo">396</span> }<a name="line.396"></a>
-<span class="sourceLineNo">397</span> }<a name="line.397"></a>
-<span class="sourceLineNo">398</span> long currentSize = size.get();<a name="line.398"></a>
-<span class="sourceLineNo">399</span> long currentAcceptableSize = acceptableSize();<a name="line.399"></a>
-<span class="sourceLineNo">400</span> long hardLimitSize = (long) (hardCapacityLimitFactor * currentAcceptableSize);<a name="line.400"></a>
-<span class="sourceLineNo">401</span> if (currentSize >= hardLimitSize) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span> stats.failInsert();<a name="line.402"></a>
-<span class="sourceLineNo">403</span> if (LOG.isTraceEnabled()) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span> LOG.trace("LruBlockCache current size " + StringUtils.byteDesc(currentSize)<a name="line.404"></a>
-<span class="sourceLineNo">405</span> + " has exceeded acceptable size " + StringUtils.byteDesc(currentAcceptableSize) + "."<a name="line.405"></a>
-<span class="sourceLineNo">406</span> + " The hard limit size is " + StringUtils.byteDesc(hardLimitSize)<a name="line.406"></a>
-<span class="sourceLineNo">407</span> + ", failed to put cacheKey:" + cacheKey + " into LruBlockCache.");<a name="line.407"></a>
-<span class="sourceLineNo">408</span> }<a name="line.408"></a>
-<span class="sourceLineNo">409</span> if (!evictionInProgress) {<a name="line.409"></a>
-<span class="sourceLineNo">410</span> runEviction();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> }<a name="line.411"></a>
-<span class="sourceLineNo">412</span> return;<a name="line.412"></a>
-<span class="sourceLineNo">413</span> }<a name="line.413"></a>
-<span class="sourceLineNo">414</span> cb = new LruCachedBlock(cacheKey, buf, count.incrementAndGet(), inMemory);<a name="line.414"></a>
-<span class="sourceLineNo">415</span> long newSize = updateSizeMetrics(cb, false);<a name="line.415"></a>
-<span class="sourceLineNo">416</span> map.put(cacheKey, cb);<a name="line.416"></a>
-<span class="sourceLineNo">417</span> long val = elements.incrementAndGet();<a name="line.417"></a>
-<span class="sourceLineNo">418</span> if (buf.getBlockType().isData()) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span> dataBlockElements.increment();<a name="line.419"></a>
-<span class="sourceLineNo">420</span> }<a name="line.420"></a>
-<span class="sourceLineNo">421</span> if (LOG.isTraceEnabled()) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> long size = map.size();<a name="line.422"></a>
-<span class="sourceLineNo">423</span> assertCounterSanity(size, val);<a name="line.423"></a>
-<span class="sourceLineNo">424</span> }<a name="line.424"></a>
-<span class="sourceLineNo">425</span> if (newSize > currentAcceptableSize && !evictionInProgress) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span> runEviction();<a name="line.426"></a>
-<span class="sourceLineNo">427</span> }<a name="line.427"></a>
-<span class="sourceLineNo">428</span> }<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span> /**<a name="line.430"></a>
-<span class="sourceLineNo">431</span> * Sanity-checking for parity between actual block cache content and metrics.<a name="line.431"></a>
-<span class="sourceLineNo">432</span> * Intended only for use with TRACE level logging and -ea JVM.<a name="line.432"></a>
-<span class="sourceLineNo">433</span> */<a name="line.433"></a>
-<span class="sourceLineNo">434</span> private static void assertCounterSanity(long mapSize, long counterVal) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span> if (counterVal < 0) {<a name="line.435"></a>
-<span class="sourceLineNo">436</span> LOG.trace("counterVal overflow. Assertions unreliable. counterVal=" + counterVal +<a name="line.436"></a>
-<span class="sourceLineNo">437</span> ", mapSize=" + mapSize);<a name="line.437"></a>
-<span class="sourceLineNo">438</span> return;<a name="line.438"></a>
-<span class="sourceLineNo">439</span> }<a name="line.439"></a>
-<span class="sourceLineNo">440</span> if (mapSize < Integer.MAX_VALUE) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span> double pct_diff = Math.abs((((double) counterVal) / ((double) mapSize)) - 1.);<a name="line.441"></a>
-<span class="sourceLineNo">442</span> if (pct_diff > 0.05) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> LOG.trace("delta between reported and actual size > 5%. counterVal=" + counterVal +<a name="line.443"></a>
-<span class="sourceLineNo">444</span> ", mapSize=" + mapSize);<a name="line.444"></a>
-<span class="sourceLineNo">445</span> }<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> }<a name="line.447"></a>
-<span class="sourceLineNo">448</span><a name="line.448"></a>
-<span class="sourceLineNo">449</span> /**<a name="line.449"></a>
-<span class="sourceLineNo">450</span> * Cache the block with the specified name and buffer.<a name="line.450"></a>
-<span class="sourceLineNo">451</span> * <p><a name="line.451"></a>
-<span class="sourceLineNo">452</span> *<a name="line.452"></a>
-<span class="sourceLineNo">453</span> * @param cacheKey block's cache key<a name="line.453"></a>
-<span class="sourceLineNo">454</span> * @param buf block buffer<a name="line.454"></a>
-<span class="sourceLineNo">455</span> */<a name="line.455"></a>
-<span class="sourceLineNo">456</span> @Override<a name="line.456"></a>
-<span class="sourceLineNo">457</span> public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf) {<a name="line.457"></a>
-<span class="sourceLineNo">458</span> cacheBlock(cacheKey, buf, false);<a name="line.458"></a>
-<span class="sourceLineNo">459</span> }<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span> /**<a name="line.461"></a>
-<span class="sourceLineNo">462</span> * Helper function that updates the local size counter and also updates any<a name="line.462"></a>
-<span class="sourceLineNo">463</span> * per-cf or per-blocktype metrics it can discern from given<a name="line.463"></a>
-<span class="sourceLineNo">464</span> * {@link LruCachedBlock}<a name="line.464"></a>
-<span class="sourceLineNo">465</span> */<a name="line.465"></a>
-<span class="sourceLineNo">466</span> private long updateSizeMetrics(LruCachedBlock cb, boolean evict) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span> long heapsize = cb.heapSize();<a name="line.467"></a>
-<span class="sourceLineNo">468</span> BlockType bt = cb.getBuffer().getBlockType();<a name="line.468"></a>
-<span class="sourceLineNo">469</span> if (evict) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span> heapsize *= -1;<a name="line.470"></a>
-<span class="sourceLineNo">471</span> }<a name="line.471"></a>
-<span class="sourceLineNo">472</span> if (bt != null && bt.isData()) {<a name="line.472"></a>
-<span class="sourceLineNo">473</span> dataBlockSize.add(heapsize);<a name="line.473"></a>
-<span class="sourceLineNo">474</span> }<a name="line.474"></a>
-<span class="sourceLineNo">475</span> return size.addAndGet(heapsize);<a name="line.475"></a>
-<span class="sourceLineNo">476</span> }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span> /**<a name="line.478"></a>
-<span class="sourceLineNo">479</span> * Get the buffer of the block with the specified name.<a name="line.479"></a>
-<span class="sourceLineNo">480</span> *<a name="line.480"></a>
-<span class="sourceLineNo">481</span> * @param cacheKey block's cache key<a name="line.481"></a>
-<span class="sourceLineNo">482</span> * @param caching true if the caller caches blocks on cache misses<a name="line.482"></a>
-<span class="sourceLineNo">483</span> * @param repeat Whether this is a repeat lookup for the same block<a name="line.483"></a>
-<span class="sourceLineNo">484</span> * (used to avoid double counting cache misses when doing double-check<a name="line.484"></a>
-<span class="sourceLineNo">485</span> * locking)<a name="line.485"></a>
-<span class="sourceLineNo">486</span> * @param updateCacheMetrics Whether to update cache metrics or not<a name="line.486"></a>
-<span class="sourceLineNo">487</span> *<a name="line.487"></a>
-<span class="sourceLineNo">488</span> * @return buffer of specified cache key, or null if not in cache<a name="line.488"></a>
-<span class="sourceLineNo">489</span> */<a name="line.489"></a>
-<span class="sourceLineNo">490</span> @Override<a name="line.490"></a>
-<span class="sourceLineNo">491</span> public Cacheable getBlock(BlockCacheKey cacheKey, boolean caching, boolean repeat,<a name="line.491"></a>
-<span class="sourceLineNo">492</span> boolean updateCacheMetrics) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.493"></a>
-<span class="sourceLineNo">494</span> if (cb == null) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span> if (!repeat && updateCacheMetrics) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span> stats.miss(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.496"></a>
-<span class="sourceLineNo">497</span> }<a name="line.497"></a>
-<span class="sourceLineNo">498</span> // If there is another block cache then try and read there.<a name="line.498"></a>
-<span class="sourceLineNo">499</span> // However if this is a retry ( second time in double checked locking )<a name="line.499"></a>
-<span class="sourceLineNo">500</span> // And it's already a miss then the l2 will also be a miss.<a name="line.500"></a>
-<span class="sourceLineNo">501</span> if (victimHandler != null && !repeat) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span> Cacheable result = victimHandler.getBlock(cacheKey, caching, repeat, updateCacheMetrics);<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span> // Promote this to L1.<a name="line.504"></a>
-<span class="sourceLineNo">505</span> if (result != null && caching) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span> if (result instanceof HFileBlock && ((HFileBlock) result).usesSharedMemory()) {<a name="line.506"></a>
-<span class="sourceLineNo">507</span> result = ((HFileBlock) result).deepClone();<a name="line.507"></a>
-<span class="sourceLineNo">508</span> }<a name="line.508"></a>
-<span class="sourceLineNo">509</span> cacheBlock(cacheKey, result, /* inMemory = */ false);<a name="line.509"></a>
-<span class="sourceLineNo">510</span> }<a name="line.510"></a>
-<span class="sourceLineNo">511</span> return result;<a name="line.511"></a>
-<span class="sourceLineNo">512</span> }<a name="line.512"></a>
-<span class="sourceLineNo">513</span> return null;<a name="line.513"></a>
-<span class="sourceLineNo">514</span> }<a name="line.514"></a>
-<span class="sourceLineNo">515</span> if (updateCacheMetrics) stats.hit(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.515"></a>
-<span class="sourceLineNo">516</span> cb.access(count.incrementAndGet());<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return cb.getBuffer();<a name="line.517"></a>
-<span class="sourceLineNo">518</span> }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> /**<a name="line.520"></a>
-<span class="sourceLineNo">521</span> * Whether the cache contains block with specified cacheKey<a name="line.521"></a>
-<span class="sourceLineNo">522</span> *<a name="line.522"></a>
-<span class="sourceLineNo">523</span> * @return true if contains the block<a name="line.523"></a>
-<span class="sourceLineNo">524</span> */<a name="line.524"></a>
-<span class="sourceLineNo">525</span> public boolean containsBlock(BlockCacheKey cacheKey) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span> return map.containsKey(cacheKey);<a name="line.526"></a>
-<span class="sourceLineNo">527</span> }<a name="line.527"></a>
-<span class="sourceLineNo">528</span><a name="line.528"></a>
-<span class="sourceLineNo">529</span> @Override<a name="line.529"></a>
-<span class="sourceLineNo">530</span> public boolean evictBlock(BlockCacheKey cacheKey) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.531"></a>
-<span class="sourceLineNo">532</span> return cb != null && evictBlock(cb, false) > 0;<a name="line.532"></a>
-<span class="sourceLineNo">533</span> }<a name="line.533"></a>
-<span class="sourceLineNo">534</span><a name="line.534"></a>
-<span class="sourceLineNo">535</span> /**<a name="line.535"></a>
-<span class="sourceLineNo">536</span> * Evicts all blocks for a specific HFile. This is an<a name="line.536"></a>
-<span class="sourceLineNo">537</span> * expensive operation implemented as a linear-time search through all blocks<a name="line.537"></a>
-<span class="sourceLineNo">538</span> * in the cache. Ideally this should be a search in a log-access-time map.<a name="line.538"></a>
-<span class="sourceLineNo">539</span> *<a name="line.539"></a>
-<span class="sourceLineNo">540</span> * <p><a name="line.540"></a>
-<span class="sourceLineNo">541</span> * This is used for evict-on-close to remove all blocks of a specific HFile.<a name="line.541"></a>
-<span class="sourceLineNo">542</span> *<a name="line.542"></a>
-<span class="sourceLineNo">543</span> * @return the number of blocks evicted<a name="line.543"></a>
-<span class="sourceLineNo">544</span> */<a name="line.544"></a>
-<span class="sourceLineNo">545</span> @Override<a name="line.545"></a>
-<span class="sourceLineNo">546</span> public int evictBlocksByHfileName(String hfileName) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span> int numEvicted = 0;<a name="line.547"></a>
-<span class="sourceLineNo">548</span> for (BlockCacheKey key : map.keySet()) {<a name="line.548"></a>
-<span class="sourceLineNo">549</span> if (key.getHfileName().equals(hfileName)) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span> if (evictBlock(key))<a name="line.550"></a>
-<span class="sourceLineNo">551</span> ++numEvicted;<a name="line.551"></a>
-<span class="sourceLineNo">552</span> }<a name="line.552"></a>
-<span class="sourceLineNo">553</span> }<a name="line.553"></a>
-<span class="sourceLineNo">554</span> if (victimHandler != null) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span> numEvicted += victimHandler.evictBlocksByHfileName(hfileName);<a name="line.555"></a>
-<span class="sourceLineNo">556</span> }<a name="line.556"></a>
-<span class="sourceLineNo">557</span> return numEvicted;<a name="line.557"></a>
-<span class="sourceLineNo">558</span> }<a name="line.558"></a>
-<span class="sourceLineNo">559</span><a name="line.559"></a>
-<span class="sourceLineNo">560</span> /**<a name="line.560"></a>
-<span class="sourceLineNo">561</span> * Evict the block, and it will be cached by the victim handler if exists &amp;&amp;<a name="line.561"></a>
-<span class="sourceLineNo">562</span> * block may be read again later<a name="line.562"></a>
-<span class="sourceLineNo">563</span> *<a name="line.563"></a>
-<span class="sourceLineNo">564</span> * @param evictedByEvictionProcess true if the given block is evicted by<a name="line.564"></a>
-<span class="sourceLineNo">565</span> * EvictionThread<a name="line.565"></a>
-<span class="sourceLineNo">566</span> * @return the heap size of evicted block<a name="line.566"></a>
-<span class="sourceLineNo">567</span> */<a name="line.567"></a>
-<span class="sourceLineNo">568</span> protected long evictBlock(LruCachedBlock block, boolean evictedByEvictionProcess) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span> boolean found = map.remove(block.getCacheKey()) != null;<a name="line.569"></a>
-<span class="sourceLineNo">570</span> if (!found) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span> return 0;<a name="line.571"></a>
-<span class="sourceLineNo">572</span> }<a name="line.572"></a>
-<span class="sourceLineNo">573</span> updateSizeMetrics(block, true);<a name="line.573"></a>
-<span class="sourceLineNo">574</span> long val = elements.decrementAndGet();<a name="line.574"></a>
-<span class="sourceLineNo">575</span> if (LOG.isTraceEnabled()) {<a name="line.575"></a>
-<span class="sourceLineNo">576</span> long size = map.size();<a name="line.576"></a>
-<span class="sourceLineNo">577</span> assertCounterSanity(size, val);<a name="line.577"></a>
-<span class="sourceLineNo">578</span> }<a name="line.578"></a>
-<span class="sourceLineNo">579</span> if (block.getBuffer().getBlockType().isData()) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span> dataBlockElements.decrement();<a name="line.580"></a>
-<span class="sourceLineNo">581</span> }<a name="line.581"></a>
-<span class="sourceLineNo">582</span> if (evictedByEvictionProcess) {<a name="line.582"></a>
-<span class="sourceLineNo">583</span> // When the eviction of the block happened because of invalidation of HFiles, no need to<a name="line.583"></a>
-<span class="sourceLineNo">584</span> // update the stats counter.<a name="line.584"></a>
-<span class="sourceLineNo">585</span> stats.evicted(block.getCachedTime(), block.getCacheKey().isPrimary());<a name="line.585"></a>
-<span class="sourceLineNo">586</span> if (victimHandler != null) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span> victimHandler.cacheBlock(block.getCacheKey(), block.getBuffer());<a name="line.587"></a>
-<span class="sourceLineNo">588</span> }<a name="line.588"></a>
-<span class="sourceLineNo">589</span> }<a name="line.589"></a>
-<span class="sourceLineNo">590</span> return block.heapSize();<a name="line.590"></a>
-<span class="sourceLineNo">591</span> }<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span> /**<a name="line.593"></a>
-<span class="sourceLineNo">594</span> * Multi-threaded call to run the eviction process.<a name="line.594"></a>
-<span class="sourceLineNo">595</span> */<a name="line.595"></a>
-<span class="sourceLineNo">596</span> private void runEviction() {<a name="line.596"></a>
-<span class="sourceLineNo">597</span> if (evictionThread == null) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span> evict();<a name="line.598"></a>
-<span class="sourceLineNo">599</span> } else {<a name="line.599"></a>
-<span class="sourceLineNo">600</span> evictionThread.evict();<a name="line.600"></a>
-<span class="sourceLineNo">601</span> }<a name="line.601"></a>
-<span class="sourceLineNo">602</span> }<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span> @VisibleForTesting<a name="line.604"></a>
-<span class="sourceLineNo">605</span> boolean isEvictionInProgress() {<a name="line.605"></a>
-<span class="sourceLineNo">606</span> return evictionInProgress;<a name="line.606"></a>
-<span class="sourceLineNo">607</span> }<a name="line.607"></a>
+<span class="sourceLineNo">382</span> if (cb != null && !BlockCacheUtil.shouldReplaceExistingCacheBlock(this, cacheKey, buf)) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> return;<a name="line.383"></a>
+<span class="sourceLineNo">384</span> }<a name="line.384"></a>
+<span class="sourceLineNo">385</span> long currentSize = size.get();<a name="line.385"></a>
+<span class="sourceLineNo">386</span> long currentAcceptableSize = acceptableSize();<a name="line.386"></a>
+<span class="sourceLineNo">387</span> long hardLimitSize = (long) (hardCapacityLimitFactor * currentAcceptableSize);<a name="line.387"></a>
+<span class="sourceLineNo">388</span> if (currentSize >= hardLimitSize) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span> stats.failInsert();<a name="line.389"></a>
+<span class="sourceLineNo">390</span> if (LOG.isTraceEnabled()) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> LOG.trace("LruBlockCache current size " + StringUtils.byteDesc(currentSize)<a name="line.391"></a>
+<span class="sourceLineNo">392</span> + " has exceeded acceptable size " + StringUtils.byteDesc(currentAcceptableSize) + "."<a name="line.392"></a>
+<span class="sourceLineNo">393</span> + " The hard limit size is " + StringUtils.byteDesc(hardLimitSize)<a name="line.393"></a>
+<span class="sourceLineNo">394</span> + ", failed to put cacheKey:" + cacheKey + " into LruBlockCache.");<a name="line.394"></a>
+<span class="sourceLineNo">395</span> }<a name="line.395"></a>
+<span class="sourceLineNo">396</span> if (!evictionInProgress) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span> runEviction();<a name="line.397"></a>
+<span class="sourceLineNo">398</span> }<a name="line.398"></a>
+<span class="sourceLineNo">399</span> return;<a name="line.399"></a>
+<span class="sourceLineNo">400</span> }<a name="line.400"></a>
+<span class="sourceLineNo">401</span> cb = new LruCachedBlock(cacheKey, buf, count.incrementAndGet(), inMemory);<a name="line.401"></a>
+<span class="sourceLineNo">402</span> long newSize = updateSizeMetrics(cb, false);<a name="line.402"></a>
+<span class="sourceLineNo">403</span> map.put(cacheKey, cb);<a name="line.403"></a>
+<span class="sourceLineNo">404</span> long val = elements.incrementAndGet();<a name="line.404"></a>
+<span class="sourceLineNo">405</span> if (buf.getBlockType().isData()) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span> dataBlockElements.increment();<a name="line.406"></a>
+<span class="sourceLineNo">407</span> }<a name="line.407"></a>
+<span class="sourceLineNo">408</span> if (LOG.isTraceEnabled()) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span> long size = map.size();<a name="line.409"></a>
+<span class="sourceLineNo">410</span> assertCounterSanity(size, val);<a name="line.410"></a>
+<span class="sourceLineNo">411</span> }<a name="line.411"></a>
+<span class="sourceLineNo">412</span> if (newSize > currentAcceptableSize && !evictionInProgress) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span> runEviction();<a name="line.413"></a>
+<span class="sourceLineNo">414</span> }<a name="line.414"></a>
+<span class="sourceLineNo">415</span> }<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span> /**<a name="line.417"></a>
+<span class="sourceLineNo">418</span> * Sanity-checking for parity between actual block cache content and metrics.<a name="line.418"></a>
+<span class="sourceLineNo">419</span> * Intended only for use with TRACE level logging and -ea JVM.<a name="line.419"></a>
+<span class="sourceLineNo">420</span> */<a name="line.420"></a>
+<span class="sourceLineNo">421</span> private static void assertCounterSanity(long mapSize, long counterVal) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span> if (counterVal < 0) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span> LOG.trace("counterVal overflow. Assertions unreliable. counterVal=" + counterVal +<a name="line.423"></a>
+<span class="sourceLineNo">424</span> ", mapSize=" + mapSize);<a name="line.424"></a>
+<span class="sourceLineNo">425</span> return;<a name="line.425"></a>
+<span class="sourceLineNo">426</span> }<a name="line.426"></a>
+<span class="sourceLineNo">427</span> if (mapSize < Integer.MAX_VALUE) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span> double pct_diff = Math.abs((((double) counterVal) / ((double) mapSize)) - 1.);<a name="line.428"></a>
+<span class="sourceLineNo">429</span> if (pct_diff > 0.05) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span> LOG.trace("delta between reported and actual size > 5%. counterVal=" + counterVal +<a name="line.430"></a>
+<span class="sourceLineNo">431</span> ", mapSize=" + mapSize);<a name="line.431"></a>
+<span class="sourceLineNo">432</span> }<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span> }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span> /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span> * Cache the block with the specified name and buffer.<a name="line.437"></a>
+<span class="sourceLineNo">438</span> * <p><a name="line.438"></a>
+<span class="sourceLineNo">439</span> *<a name="line.439"></a>
+<span class="sourceLineNo">440</span> * @param cacheKey block's cache key<a name="line.440"></a>
+<span class="sourceLineNo">441</span> * @param buf block buffer<a name="line.441"></a>
+<span class="sourceLineNo">442</span> */<a name="line.442"></a>
+<span class="sourceLineNo">443</span> @Override<a name="line.443"></a>
+<span class="sourceLineNo">444</span> public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span> cacheBlock(cacheKey, buf, false);<a name="line.445"></a>
+<span class="sourceLineNo">446</span> }<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span> /**<a name="line.448"></a>
+<span class="sourceLineNo">449</span> * Helper function that updates the local size counter and also updates any<a name="line.449"></a>
+<span class="sourceLineNo">450</span> * per-cf or per-blocktype metrics it can discern from given<a name="line.450"></a>
+<span class="sourceLineNo">451</span> * {@link LruCachedBlock}<a name="line.451"></a>
+<span class="sourceLineNo">452</span> */<a name="line.452"></a>
+<span class="sourceLineNo">453</span> private long updateSizeMetrics(LruCachedBlock cb, boolean evict) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span> long heapsize = cb.heapSize();<a name="line.454"></a>
+<span class="sourceLineNo">455</span> BlockType bt = cb.getBuffer().getBlockType();<a name="line.455"></a>
+<span class="sourceLineNo">456</span> if (evict) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span> heapsize *= -1;<a name="line.457"></a>
+<span class="sourceLineNo">458</span> }<a name="line.458"></a>
+<span class="sourceLineNo">459</span> if (bt != null && bt.isData()) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span> dataBlockSize.add(heapsize);<a name="line.460"></a>
+<span class="sourceLineNo">461</span> }<a name="line.461"></a>
+<span class="sourceLineNo">462</span> return size.addAndGet(heapsize);<a name="line.462"></a>
+<span class="sourceLineNo">463</span> }<a name="line.463"></a>
+<span class="sourceLineNo">464</span><a name="line.464"></a>
+<span class="sourceLineNo">465</span> /**<a name="line.465"></a>
+<span class="sourceLineNo">466</span> * Get the buffer of the block with the specified name.<a name="line.466"></a>
+<span class="sourceLineNo">467</span> *<a name="line.467"></a>
+<span class="sourceLineNo">468</span> * @param cacheKey block's cache key<a name="line.468"></a>
+<span class="sourceLineNo">469</span> * @param caching true if the caller caches blocks on cache misses<a name="line.469"></a>
+<span class="sourceLineNo">470</span> * @param repeat Whether this is a repeat lookup for the same block<a name="line.470"></a>
+<span class="sourceLineNo">471</span> * (used to avoid double counting cache misses when doing double-check<a name="line.471"></a>
+<span class="sourceLineNo">472</span> * locking)<a name="line.472"></a>
+<span class="sourceLineNo">473</span> * @param updateCacheMetrics Whether to update cache metrics or not<a name="line.473"></a>
+<span class="sourceLineNo">474</span> *<a name="line.474"></a>
+<span class="sourceLineNo">475</span> * @return buffer of specified cache key, or null if not in cache<a name="line.475"></a>
+<span class="sourceLineNo">476</span> */<a name="line.476"></a>
+<span class="sourceLineNo">477</span> @Override<a name="line.477"></a>
+<span class="sourceLineNo">478</span> public Cacheable getBlock(BlockCacheKey cacheKey, boolean caching, boolean repeat,<a name="line.478"></a>
+<span class="sourceLineNo">479</span> boolean updateCacheMetrics) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.480"></a>
+<span class="sourceLineNo">481</span> if (cb == null) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span> if (!repeat && updateCacheMetrics) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> stats.miss(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> // If there is another block cache then try and read there.<a name="line.485"></a>
+<span class="sourceLineNo">486</span> // However if this is a retry ( second time in double checked locking )<a name="line.486"></a>
+<span class="sourceLineNo">487</span> // And it's already a miss then the l2 will also be a miss.<a name="line.487"></a>
+<span class="sourceLineNo">488</span> if (victimHandler != null && !repeat) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> Cacheable result = victimHandler.getBlock(cacheKey, caching, repeat, updateCacheMetrics);<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span> // Promote this to L1.<a name="line.491"></a>
+<span class="sourceLineNo">492</span> if (result != null && caching) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span> if (result instanceof HFileBlock && ((HFileBlock) result).usesSharedMemory()) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span> result = ((HFileBlock) result).deepClone();<a name="line.494"></a>
+<span class="sourceLineNo">495</span> }<a name="line.495"></a>
+<span class="sourceLineNo">496</span> cacheBlock(cacheKey, result, /* inMemory = */ false);<a name="line.496"></a>
+<span class="sourceLineNo">497</span> }<a name="line.497"></a>
+<span class="sourceLineNo">498</span> return result;<a name="line.498"></a>
+<span class="sourceLineNo">499</span> }<a name="line.499"></a>
+<span class="sourceLineNo">500</span> return null;<a name="line.500"></a>
+<span class="sourceLineNo">501</span> }<a name="line.501"></a>
+<span class="sourceLineNo">502</span> if (updateCacheMetrics) stats.hit(caching, cacheKey.isPrimary(), cacheKey.getBlockType());<a name="line.502"></a>
+<span class="sourceLineNo">503</span> cb.access(count.incrementAndGet());<a name="line.503"></a>
+<span class="sourceLineNo">504</span> return cb.getBuffer();<a name="line.504"></a>
+<span class="sourceLineNo">505</span> }<a name="line.505"></a>
+<span class="sourceLineNo">506</span><a name="line.506"></a>
+<span class="sourceLineNo">507</span> /**<a name="line.507"></a>
+<span class="sourceLineNo">508</span> * Whether the cache contains block with specified cacheKey<a name="line.508"></a>
+<span class="sourceLineNo">509</span> *<a name="line.509"></a>
+<span class="sourceLineNo">510</span> * @return true if contains the block<a name="line.510"></a>
+<span class="sourceLineNo">511</span> */<a name="line.511"></a>
+<span class="sourceLineNo">512</span> public boolean containsBlock(BlockCacheKey cacheKey) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span> return map.containsKey(cacheKey);<a name="line.513"></a>
+<span class="sourceLineNo">514</span> }<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span> @Override<a name="line.516"></a>
+<span class="sourceLineNo">517</span> public boolean evictBlock(BlockCacheKey cacheKey) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span> LruCachedBlock cb = map.get(cacheKey);<a name="line.518"></a>
+<span class="sourceLineNo">519</span> return cb != null && evictBlock(cb, false) > 0;<a name="line.519"></a>
+<span class="sourceLineNo">520</span> }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span> /**<a name="line.522"></a>
+<span class="sourceLineNo">523</span> * Evicts all blocks for a specific HFile. This is an<a name="line.523"></a>
+<span class="sourceLineNo">524</span> * expensive operation implemented as a linear-time search through all blocks<a name="line.524"></a>
+<span class="sourceLineNo">525</span> * in the cache. Ideally this should be a search in a log-access-time map.<a name="line.525"></a>
+<span class="sourceLineNo">526</span> *<a name="line.526"></a>
+<span class="sourceLineNo">527</span> * <p><a name="line.527"></a>
+<span class="sourceLineNo">528</span> * This is used for evict-on-close to remove all blocks of a specific HFile.<a name="line.528"></a>
+<span class="sourceLineNo">529</span> *<a name="line.529"></a>
+<span class="sourceLineNo">530</span> * @return the number of blocks evicted<a name="line.530"></a>
+<span class="sourceLineNo">531</span> */<a name="line.531"></a>
+<span class="sourceLineNo">532</span> @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span> public int evictBlocksByHfileName(String hfileName) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span> int numEvicted = 0;<a name="line.534"></a>
+<span class="sourceLineNo">535</span> for (BlockCacheKey key : map.keySet()) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span> if (key.getHfileName().equals(hfileName)) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span> if (evictBlock(key))<a name="line.537"></a>
+<span class="sourceLineNo">538</span> ++numEvicted;<a name="line.538"></a>
+<span class="sourceLineNo">539</span> }<a name="line.539"></a>
+<span class="sourceLineNo">540</span> }<a name="line.540"></a>
+<span class="sourceLineNo">541</span> if (victimHandler != null) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span> numEvicted += victimHandler.evictBlocksByHfileName(hfileName);<a name="line.542"></a>
+<span class="sourceLineNo">543</span> }<a name="line.543"></a>
+<span class="sourceLineNo">544</span> return numEvicted;<a name="line.544"></a>
+<span class="sourceLineNo">545</span> }<a name="line.545"></a>
+<span class="sourceLineNo">546</span><a name="line.546"></a>
+<span class="sourceLineNo">547</span> /**<a name="line.547"></a>
+<span class="sourceLineNo">548</span> * Evict the block, and it will be cached by the victim handler if exists &amp;&amp;<a name="line.548"></a>
+<span class="sourceLineNo">549</span> * block may be read again later<a name="line.549"></a>
+<span class="sourceLineNo">550</span> *<a name="line.550"></a>
+<span class="sourceLineNo">551</span> * @param evictedByEvictionProcess true if the given block is evicted by<a name="line.551"></a>
+<span class="sourceLineNo">552</span> * EvictionThread<a name="line.552"></a>
+<span class="sourceLineNo">553</span> * @return the heap size of evicted block<a name="line.553"></a>
+<span class="sourceLineNo">554</span> */<a name="line.554"></a>
+<span class="sourceLineNo">555</span> protected long evictBlock(LruCachedBlock block, boolean evictedByEvictionProcess) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span> boolean found = map.remove(block.getCacheKey()) != null;<a name="line.556"></a>
+<span class="sourceLineNo">557</span> if (!found) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span> return 0;<a name="line.558"></a>
+<span class="sourceLineNo">559</span> }<a name="line.559"></a>
+<span class="sourceLineNo">560</span> updateSizeMetrics(block, true);<a name="line.560"></a>
+<span class="sourceLineNo">561</span> long val = elements.decrementAndGet();<a name="line.561"></a>
+<span class="sourceLineNo">562</span> if (LOG.isTraceEnabled()) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span> long size = map.size();<a name="line.563"></a>
+<span class="sourceLineNo">564</span> assertCounterSanity(size, val);<a name="line.564"></a>
+<span class="sourceLineNo">565</span> }<a name="line.565"></a>
+<span class="sourceLineNo">566</span> if (block.getBuffer().getBlockType().isData()) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span> dataBlockElements.decrement();<a name="line.567"></a>
+<span class="sourceLineNo">568</span> }<a name="line.568"></a>
+<span class="sourceLineNo">569</span> if (evictedByEvictionProcess) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span> // When the eviction of the block happened because of invalidation of HFiles, no need to<a name="line.570"></a>
+<span class="sourceLineNo">571</span> // update the stats counter.<a name="line.571"></a>
+<span class="sourceLineNo">572</span> stats.evicted(block.getCachedTime(), block.getCacheKey().isPrimary());<a name="line.572"></a>
+<span class="sourceLineNo">573</span> if (victimHandler != null) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span> victimHandler.cacheBlock(block.getCacheKey(), block.getBuffer());<a name="line.574"></a>
+<span class="sourceLineNo">575</span> }<a name="line.575"></a>
+<span class="sourceLineNo">576</span> }<a name="line.576"></a>
+<span class="sourceLineNo">577</span> return block.heapSize();<a name="line.577"></a>
+<span class="sourceLineNo">578</span> }<a name="line.578"></a>
+<span class="sourceLineNo">579</span><a name="line.579"></a>
+<span class="sourceLineNo">580</span> /**<a name="line.580"></a>
+<span class="sourceLineNo">581</span> * Multi-threaded call to run the eviction process.<a name="line.581"></a>
+<span class="sourceLineNo">582</span> */<a name="line.582"></a>
+<span class="sourceLineNo">583</span> private void runEviction() {<a name="line.583"></a>
+<span class="sourceLineNo">584</span> if (evictionThread == null) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span> evict();<a name="line.585"></a>
+<span class="sourceLineNo">586</span> } else {<a name="line.586"></a>
+<span class="sourceLineNo">587</span> evictionThread.evict();<a name="line.587"></a>
+<span class="sourceLineNo">588</span> }<a name="line.588"></a>
+<span class="sourceLineNo">589</span> }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span> @VisibleForTesting<a name="line.591"></a>
+<span class="sourceLineNo">592</span> boolean isEvictionInProgress() {<a name="line.592"></a>
+<span class="sourceLineNo">593</span> return evictionInProgress;<a name="line.593"></a>
+<span class="sourceLineNo">594</span> }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span> @VisibleForTesting<a name="line.596"></a>
+<span class="sourceLineNo">597</span> long getOverhead() {<a name="line.597"></a>
+<span class="sourceLineNo">598</span> return overhead;<a name="line.598"></a>
+<span class="sourceLineNo">599</span> }<a name="line.599"></a>
+<span class="sourceLineNo">600</span><a name="line.600"></a>
+<span class="sourceLineNo">601</span> /**<a name="line.601"></a>
+<span class="sourceLineNo">602</span> * Eviction method.<a name="line.602"></a>
+<span class="sourceLineNo">603</span> */<a name="line.603"></a>
+<span class="sourceLineNo">604</span> void evict() {<a name="line.604"></a>
+<span class="sourceLineNo">605</span><a name="line.605"></a>
+<span class="sourceLineNo">606</span> // Ensure only one eviction at a time<a name="line.606"></a>
+<span class="sourceLineNo">607</span> if(!evictionLock.tryLock()) return;<a name="line.607"></a>
<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span> @VisibleForTesting<a name="line.609"></a>
-<span class="sourceLineNo">610</span> long getOverhead() {<a name="line.610"></a>
-<span class="sourceLineNo">611</span> return overhead;<a name="line.611"></a>
-<span class="sourceLineNo">612</span> }<a name="line.612"></a>
+<span class="sourceLineNo">609</span> try {<a name="line.609"></a>
+<span class="sourceLineNo">610</span> evictionInProgress = true;<a name="line.610"></a>
+<span class="sourceLineNo">611</span> long currentSize = this.size.get();<a name="line.611"></a>
+<span class="sourceLineNo">612</span> long bytesToFree = currentSize - minSize();<a name="line.612"></a>
<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span> /**<a name="line.614"></a>
-<span class="sourceLineNo">615</span> * Eviction method.<a name="line.615"></a>
-<span class="sourceLineNo">616</span> */<a name="line.616"></a>
-<span class="sourceLineNo">617</span> void evict() {<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span> // Ensure only one eviction at a time<a name="line.619"></a>
-<span class="sourceLineNo">620</span> if(!evictionLock.tryLock()) return;<a name="line.620"></a>
+<span class="sourceLineNo">614</span> if (LOG.isTraceEnabled()) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span> LOG.trace("Block cache LRU eviction started; Attempting to free " +<a name="line.615"></a>
+<span class="sourceLineNo">616</span> StringUtils.byteDesc(bytesToFree) + " of total=" +<a name="line.616"></a>
+<span class="sourceLineNo">617</span> StringUtils.byteDesc(currentSize));<a name="line.617"></a>
+<span class="sourceLineNo">618</span> }<a name="line.618"></a>
+<span class="sourceLineNo">619</span><a name="line.619"></a>
+<span class="sourceLineNo">620</span> if (bytesToFree <= 0) return;<a name="line.620"></a>
<span class="sourceLineNo">621</span><a name="line.621"></a>
-<span class="sourceLineNo">622</span> try {<a name="line.622"></a>
-<span class="sourceLineNo">623</span> evictionInProgress = true;<a name="line.623"></a>
-<span class="sourceLineNo">624</span> long currentSize = this.size.get();<a name="line.624"></a>
-<span class="sourceLineNo">625</span> long bytesToFree = currentSize - minSize();<a name="line.625"></a>
+<span class="sourceLineNo">622</span> // Instantiate priority buckets<a name="line.622"></a>
+<span class="sourceLineNo">623</span> BlockBucket bucketSingle = new BlockBucket("single", bytesToFree, blockSize, singleSize());<a name="line.623"></a>
+<span class="sourceLineNo">624</span> BlockBucket bucketMulti = new BlockBucket("multi", bytesToFree, blockSize, multiSize());<a name="line.624"></a>
+<span class="sourceLineNo">625</span> BlockBucket bucketMemory = new BlockBucket("memory", bytesToFree, blockSize, memorySize());<a name="line.625"></a>
<span class="sourceLineNo">626</span><a name="line.626"></a>
-<span class="sourceLineNo">627</span> if (LOG.isTraceEnabled()) {<a name="line.627"></a>
-<span class="sourceLineNo">628</span> LOG.trace("Block cache LRU eviction started; Attempting to free " +<a name="line.628"></a>
-<span class="sourceLineNo">629</span> StringUtils.byteDesc(bytesToFree) + " of total=" +<a name="line.629"></a>
-<span class="sourceLineNo">630</span> StringUtils.byteDesc(currentSize));<a name="line.630"></a>
-<span class="sourceLineNo">631</span> }<a name="line.631"></a>
-<span class="sourceLineNo">632</span><a name="line.632"></a>
-<span class="sourceLineNo">633</span> if (bytesToFree <= 0) return;<a name="line.633"></a>
-<span class="sourceLineNo">634</span><a name="line.634"></a>
-<span class="sourceLineNo">635</span> // Instantiate priority buckets<a name="line.635"></a>
-<span class="sourceLineNo">636</span> BlockBucket bucketSingle = new BlockBucket("single", bytesToFree, blockSize, singleSize());<a name="line.636"></a>
-<span class="sourceLineNo">637</span> BlockBucket bucketMulti = new BlockBucket("multi", bytesToFree, blockSize, multiSize());<a name="line.637"></a>
-<span class="sourceLineNo">638</span> BlockBucket bucketMemory = new BlockBucket("memory", bytesToFree, blockSize, memorySize());<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span> // Scan entire map putting into appropriate buckets<a name="line.640"></a>
-<span class="sourceLineNo">641</span> for (LruCachedBlock cachedBlock : map.values()) {<a name="line.641"></a>
-<span class="sourceLineNo">642</span> switch (cachedBlock.getPriority()) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span> case SINGLE: {<a name="line.643"></a>
-<span class="sourceLineNo">644</span> bucketSingle.add(cachedBlock);<a name="line.644"></a>
-<span class="sourceLineNo">645</span> break;<a name="line.645"></a>
-<span class="sourceLineNo">646</span> }<a name="line.646"></a>
-<span class="sourceLineNo">647</span> case MULTI: {<a name="line.647"></a>
-<span class="sourceLineNo">648</span> bucketMulti.add(cachedBlock);<a name="line.648"></a>
-<span class="sourceLineNo">649</span> break;<a name="line.649"></a>
-<span class="sourceLineNo">650</span> }<a name="line.650"></a>
-<span class="sourceLineNo">651</span> case MEMORY: {<a name="line.651"></a>
-<span class="sourceLineNo">652</span> bucketMemory.add(cachedBlock);<a name="line.652"></a>
-<span class="sourceLineNo">653</span> break;<a name="line.653"></a>
-<span class="sourceLineNo">654</span> }<a name="line.654"></a>
-<span class="sourceLineNo">655</span> }<a name="line.655"></a>
-<span class="sourceLineNo">656</span> }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span> long bytesFreed = 0;<a name="line.658"></a>
-<span class="sourceLineNo">659</span> if (forceInMemory || memoryFactor > 0.999f) {<a name="line.659"></a>
-<span class="sourceLineNo">660</span> long s = bucketSingle.totalSize();<a name="line.660"></a>
-<span class="sourceLineNo">661</span> long m = bucketMulti.totalSize();<a name="line.661"></a>
-<span class="sourceLineNo">662</span> if (bytesToFree > (s + m)) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span> // this means we need to evict blocks in memory bucket to make room,<a name="line.663"></a>
-<span class="sourceLineNo">664</span> // so the single and multi buckets will be emptied<a name="line.664"></a>
-<span class="sourceLineNo">665</span> bytesFreed = bucketSingle.free(s);<a name="line.665"></a>
-<span class="sourceLineNo">666</span> bytesFreed += bucketMulti.free(m);<a name="line.666"></a>
-<span class="sourceLineNo">667</span> if (LOG.isTraceEnabled()) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.668"></a>
-<span class="sourceLineNo">669</span> " from single and multi buckets");<a name="line.669"></a>
-<span class="sourceLineNo">670</span> }<a name="line.670"></a>
-<span class="sourceLineNo">671</span> bytesFreed += bucketMemory.free(bytesToFree - bytesFreed);<a name="line.671"></a>
-<span class="sourceLineNo">672</span> if (LOG.isTraceEnabled()) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.673"></a>
-<span class="sourceLineNo">674</span> " total from all three buckets ");<a name="line.674"></a>
-<span class="sourceLineNo">675</span> }<a name="line.675"></a>
-<span class="sourceLineNo">676</span> } else {<a name="line.676"></a>
-<span class="sourceLineNo">677</span> // this means no need to evict block in memory bucket,<a name="line.677"></a>
-<span class="sourceLineNo">678</span> // and we try best to make the ratio between single-bucket and<a name="line.678"></a>
-<span class="sourceLineNo">679</span> // multi-bucket is 1:2<a name="line.679"></a>
-<span class="sourceLineNo">680</span> long bytesRemain = s + m - bytesToFree;<a name="line.680"></a>
-<span class="sourceLineNo">681</span> if (3 * s <= bytesRemain) {<a name="line.681"></a>
-<span class="sourceLineNo">682</span> // single-bucket is small enough that no eviction happens for it<a name="line.682"></a>
-<span class="sourceLineNo">683</span> // hence all eviction goes from multi-bucket<a name="line.683"></a>
-<span class="sourceLineNo">684</span> bytesFreed = bucketMulti.free(bytesToFree);<a name="line.684"></a>
-<span class="sourceLineNo">685</span> } else if (3 * m <= 2 * bytesRemain) {<a name="line.685"></a>
-<span class="sourceLineNo">686</span> // multi-bucket is small enough that no eviction happens for it<a name="line.686"></a>
-<span class="sourceLineNo">687</span> // hence all eviction goes from single-bucket<a name="line.687"></a>
-<span class="sourceLineNo">688</span> bytesFreed = bucketSingle.free(bytesToFree);<a name="line.688"></a>
-<span class="sourceLineNo">689</span> } else {<a name="line.689"></a>
-<span class="sourceLineNo">690</span> // both buckets need to evict some blocks<a name="line.690"></a>
-<span class="sourceLineNo">691</span> bytesFreed = bucketSingle.free(s - bytesRemain / 3);<a name="line.691"></a>
-<span class="sourceLineNo">692</span> if (bytesFreed < bytesToFree) {<a name="line.692"></a>
-<span class="sourceLineNo">693</span> bytesFreed += bucketMulti.free(bytesToFree - bytesFreed);<a name="line.693"></a>
-<span class="sourceLineNo">694</span> }<a name="line.694"></a>
-<span class="sourceLineNo">695</span> }<a name="line.695"></a>
-<span class="sourceLineNo">696</span> }<a name="line.696"></a>
-<span class="sourceLineNo">697</span> } else {<a name="line.697"></a>
-<span class="sourceLineNo">698</span> PriorityQueue<BlockBucket> bucketQueue = new PriorityQueue<>(3);<a name="line.698"></a>
-<span class="sourceLineNo">699</span><a name="line.699"></a>
-<span class="sourceLineNo">700</span> bucketQueue.add(bucketSingle);<a name="line.700"></a>
-<span class="sourceLineNo">701</span> bucketQueue.add(bucketMulti);<a name="line.701"></a>
-<span class="sourceLineNo">702</span> bucketQueue.add(bucketMemory);<a name="line.702"></a>
-<span class="sourceLineNo">703</span><a name="line.703"></a>
-<span class="sourceLineNo">704</span> int remainingBuckets = 3;<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span> BlockBucket bucket;<a name="line.706"></a>
-<span class="sourceLineNo">707</span> while ((bucket = bucketQueue.poll()) != null) {<a name="line.707"></a>
-<span class="sourceLineNo">708</span> long overflow = bucket.overflow();<a name="line.708"></a>
-<span class="sourceLineNo">709</span> if (overflow > 0) {<a name="line.709"></a>
-<span class="sourceLineNo">710</span> long bucketBytesToFree =<a name="line.710"></a>
-<span class="sourceLineNo">711</span> Math.min(overflow, (bytesToFree - bytesFreed) / remainingBuckets);<a name="line.711"></a>
-<span class="sourceLineNo">712</span> bytesFreed += bucket.free(bucketBytesToFree);<a name="line.712"></a>
-<span class="sourceLineNo">713</span> }<a name="line.713"></a>
-<span class="sourceLineNo">714</span> remainingBuckets--;<a name="line.714"></a>
-<span class="sourceLineNo">715</span> }<a name="line.715"></a>
-<span class="sourceLineNo">716</span> }<a name="line.716"></a>
-<span class="sourceLineNo">717</span> if (LOG.isTraceEnabled()) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span> long single = bucketSingle.totalSize();<a name="line.718"></a>
-<span class="sourceLineNo">719</span> long multi = bucketMulti.totalSize();<a name="line.719"></a>
-<span class="sourceLineNo">720</span> long memory = bucketMemory.totalSize();<a name="line.720"></a>
-<span class="sourceLineNo">721</span> LOG.trace("Block cache LRU eviction completed; " +<a name="line.721"></a>
-<span class="sourceLineNo">722</span> "freed=" + StringUtils.byteDesc(bytesFreed) + ", " +<a name="line.722"></a>
-<span class="sourceLineNo">723</span> "total=" + StringUtils.byteDesc(this.size.get()) + ", " +<a name="line.723"></a>
-<span class="sourceLineNo">724</span> "single=" + StringUtils.byteDesc(single) + ", " +<a name="line.724"></a>
-<span class="sourceLineNo">725</span> "multi=" + StringUtils.byteDesc(multi) + ", " +<a name="line.725"></a>
-<span class="sourceLineNo">726</span> "memory=" + StringUtils.byteDesc(memory));<a name="line.726"></a>
-<span class="sourceLineNo">727</span> }<a name="line.727"></a>
-<span class="sourceLineNo">728</span> } finally {<a name="line.728"></a>
-<span class="sourceLineNo">729</span> stats.evict();<a name="line.729"></a>
-<span class="sourceLineNo">730</span> evictionInProgress = false;<a name="line.730"></a>
-<span class="sourceLineNo">731</span> evictionLock.unlock();<a name="line.731"></a>
-<span class="sourceLineNo">732</span> }<a name="line.732"></a>
-<span class="sourceLineNo">733</span> }<a name="line.733"></a>
-<span class="sourceLineNo">734</span><a name="line.734"></a>
-<span class="sourceLineNo">735</span> @Override<a name="line.735"></a>
-<span class="sourceLineNo">736</span> public String toString() {<a name="line.736"></a>
-<span class="sourceLineNo">737</span> return MoreObjects.toStringHelper(this)<a name="line.737"></a>
-<span class="sourceLineNo">738</span> .add("blockCount", getBlockCount())<a name="line.738"></a>
-<span class="sourceLineNo">739</span> .add("currentSize", StringUtils.byteDesc(getCurrentSize()))<a name="line.739"></a>
-<span class="sourceLineNo">740</span> .add("freeSize", StringUtils.byteDesc(getFreeSize()))<a name="line.740"></a>
-<span class="sourceLineNo">741</span> .add("maxSize", StringUtils.byteDesc(getMaxSize()))<a name="line.741"></a>
-<span class="sourceLineNo">742</span> .add("heapSize", StringUtils.byteDesc(heapSize()))<a name="line.742"></a>
-<span class="sourceLineNo">743</span> .add("minSize", StringUtils.byteDesc(minSize()))<a name="line.743"></a>
-<span class="sourceLineNo">744</span> .add("minFactor", minFactor)<a name="line.744"></a>
-<span class="sourceLineNo">745</span> .add("multiSize", StringUtils.byteDesc(multiSize()))<a name="line.745"></a>
-<span class="sourceLineNo">746</span> .add("multiFactor", multiFactor)<a name="line.746"></a>
-<span class="sourceLineNo">747</span> .add("singleSize", StringUtils.byteDesc(singleSize()))<a name="line.747"></a>
-<span class="sourceLineNo">748</span> .add("singleFactor", singleFactor)<a name="line.748"></a>
-<span class="sourceLineNo">749</span> .toString();<a name="line.749"></a>
-<span class="sourceLineNo">750</span> }<a name="line.750"></a>
+<span class="sourceLineNo">627</span> // Scan entire map putting into appropriate buckets<a name="line.627"></a>
+<span class="sourceLineNo">628</span> for (LruCachedBlock cachedBlock : map.values()) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span> switch (cachedBlock.getPriority()) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span> case SINGLE: {<a name="line.630"></a>
+<span class="sourceLineNo">631</span> bucketSingle.add(cachedBlock);<a name="line.631"></a>
+<span class="sourceLineNo">632</span> break;<a name="line.632"></a>
+<span class="sourceLineNo">633</span> }<a name="line.633"></a>
+<span class="sourceLineNo">634</span> case MULTI: {<a name="line.634"></a>
+<span class="sourceLineNo">635</span> bucketMulti.add(cachedBlock);<a name="line.635"></a>
+<span class="sourceLineNo">636</span> break;<a name="line.636"></a>
+<span class="sourceLineNo">637</span> }<a name="line.637"></a>
+<span class="sourceLineNo">638</span> case MEMORY: {<a name="line.638"></a>
+<span class="sourceLineNo">639</span> bucketMemory.add(cachedBlock);<a name="line.639"></a>
+<span class="sourceLineNo">640</span> break;<a name="line.640"></a>
+<span class="sourceLineNo">641</span> }<a name="line.641"></a>
+<span class="sourceLineNo">642</span> }<a name="line.642"></a>
+<span class="sourceLineNo">643</span> }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span> long bytesFreed = 0;<a name="line.645"></a>
+<span class="sourceLineNo">646</span> if (forceInMemory || memoryFactor > 0.999f) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span> long s = bucketSingle.totalSize();<a name="line.647"></a>
+<span class="sourceLineNo">648</span> long m = bucketMulti.totalSize();<a name="line.648"></a>
+<span class="sourceLineNo">649</span> if (bytesToFree > (s + m)) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span> // this means we need to evict blocks in memory bucket to make room,<a name="line.650"></a>
+<span class="sourceLineNo">651</span> // so the single and multi buckets will be emptied<a name="line.651"></a>
+<span class="sourceLineNo">652</span> bytesFreed = bucketSingle.free(s);<a name="line.652"></a>
+<span class="sourceLineNo">653</span> bytesFreed += bucketMulti.free(m);<a name="line.653"></a>
+<span class="sourceLineNo">654</span> if (LOG.isTraceEnabled()) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.655"></a>
+<span class="sourceLineNo">656</span> " from single and multi buckets");<a name="line.656"></a>
+<span class="sourceLineNo">657</span> }<a name="line.657"></a>
+<span class="sourceLineNo">658</span> bytesFreed += bucketMemory.free(bytesToFree - bytesFreed);<a name="line.658"></a>
+<span class="sourceLineNo">659</span> if (LOG.isTraceEnabled()) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span> LOG.trace("freed " + StringUtils.byteDesc(bytesFreed) +<a name="line.660"></a>
+<span class="sourceLineNo">661</span> " total from all three buckets ");<a name="line.661"></a>
+<span class="sourceLineNo">662</span> }<a name="line.662"></a>
+<span class="sourceLineNo">663</span> } else {<a name="line.663"></a>
+<span class="sourceLineNo">664</span> // this means no need to evict block in memory bucket,<a name="line.664"></a>
+<span class="sourceLineNo">665</span> // and we try best to make the ratio between single-bucket and<a name="line.665"></a>
+<span class="sourceLineNo">666</span> // multi-bucket is 1:2<a name="line.666"></a>
+<span class="sourceLineNo">667</span> long bytesRemain = s + m - bytesToFree;<a name="line.667"></a>
+<span class="sourceLineNo">668</span> if (3 * s <= bytesRemain) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span> // single-bucket is small enough that no eviction happens for it<a name="line.669"></a>
+<span class="sourceLineNo">670</span> // hence all eviction goes from multi-bucket<a name="line.670"></a>
+<span class="sourceLineNo">671</span> bytesFreed = bucketMulti.free(bytesToFree);<a name="line.671"></a>
+<span class="sourceLineNo">672</span> } else if (3 * m <= 2 * bytesRemain) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span> // multi-bucket is small enough that no eviction happens for it<a name="line.673"></a>
+<span class="sourceLineNo">674</span> // hence all eviction goes from single-bucket<a name="line.674"></a>
+<span class="sourceLineNo">675</span> bytesFreed = bucketSingle.free(bytesToFree);<a name="line.675"></a>
+<span class="sourceLineNo">676</span> } else {<a name="line.676"></a>
+<span class="sourceLineNo">677</span> // both buckets need to evict some blocks<a name="line.677"></a>
+<span class="sourceLineNo">678</span> bytesFreed = bucketSingle.free(s - bytesRemain / 3);<a name="line.678"></a>
+<span class="sourceLineNo">679</span> if (bytesFreed < bytesToFree) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span> bytesFreed += bucketMulti.free(bytesToFree - bytesFreed);<a name="line.680"></a>
+<span class="sourceLineNo">681</span> }<a name="line.681"></a>
+<span class="sourceLineNo">682</span> }<a name="line.682"></a>
+<span class="sourceLineNo">683</span> }<a name="line.683"></a>
+<span class="sourceLineNo">684</span> } else {<a name="line.684"></a>
+<span class="sourceLineNo">685</span> PriorityQueue<BlockBucket> bucketQueue = new PriorityQueue<>(3);<a name="line.685"></a>
+<span class="sourceLineNo">686</span><a name="line.686"></a>
+<span class="sourceLineNo">687</span> bucketQueue.add(bucketSingle);<a name="line.687"></a>
+<span class="sourceLineNo">688</span> bucketQueue.add(bucketMulti);<a name="line.688"></a>
+<span class="sourceLineNo">689</span> bucketQueue.add(bucketMemory);<a name="line.689"></a>
+<span class="sourceLineNo">690</span><a name="line.690"></a>
+<span class="sourceLineNo">691</span> int remainingBuckets = 3;<a name="line.691"></a>
+<span class="sourceLineNo">692</span><a name="line.692"></a>
+<span class="sourceLineNo">693</span> BlockBucket bucket;<a name="line.693"></a>
+<span class="sourceLineNo">694</span> while ((bucket = bucketQueue.poll()) != null) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span> long overflow = bucket.overflow();<a name="line.695"></a>
+<span class="sourceLineNo">696</span> if (overflow > 0) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span> long bucketBytesToFree =<a name="line.697"></a>
+<span class="sourceLineNo">698</span> Math.min(overflow, (bytesToFree - bytesFreed) / remainingBuckets);<a name="line.698"></a>
+<span class="sourceLineNo">699</span> bytesFreed += bucket.free(bucketBytesToFree);<a name="line.699"></a>
+<span class="sourceLineNo">700</span> }<a name="line.700"></a>
+<span class="sourceLineNo">701</span> remainingBuckets--;<a name="line.701"></a>
+<span class="sourceLineNo">702</span> }<a name="line.702"></a>
+<span class="sourceLineNo">703</span> }<a name="line.703"></a>
+<span class="sourceLineNo">704</span> if (LOG.isTraceEnabled()) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span> long single = bucketSingle.totalSize();<a name="line.705"></a>
+<span class="sourceLineNo">706</span> long multi = bucketMulti.totalSize();<a name="line.706"></a>
+<span class="sourceLineNo">707</span> long memory = bucketMemory.totalSize();<a name="line.707"></a>
+<span class="sourceLineNo">708</span> LOG.trace("Block cache LRU eviction completed; " +<a name="line.708"></a>
+<span class="sourceLineNo">709</span> "freed=" + StringUtils.byteDesc(bytesFreed) + ", " +<a name="line.709"></a>
+<span class="sourceLineNo">710</span> "total=" + StringUtils.byteDesc(this.size.get()) + ", " +<a name="line.710"></a>
+<span class="sourceLineNo">711</span> "single=" + StringUtils.byteDesc(single) + ", " +<a name="line.711"></a>
+<span class="sourceLineNo">712</span> "multi=" + StringUtils.byteDesc(multi) + ", " +<a name="line.712"></a>
+<span class="sourceLineNo">713</span> "memory=" + StringUtils.byteDesc(memory));<a name="line.713"></a>
+<span class="sourceLineNo">714</span> }<a name="line.714"></a>
+<span class="sourceLineNo">715</span> } finally {<a name="line.715"></a>
+<span class="sourceLineNo">716</span> stats.evict();<a name="line.716"></a>
+<span class="sourceLineNo">717</span> evictionInProgress = false;<a name="line.717"></a>
+<span class="sourceLineNo">718</span> evictionLock.unlock();<a name="line.718"></a>
+<span class="sourceLineNo">719</span> }<a name="line.719"></a>
+<span class="sourceLineNo">720</span> }<a name="line.720"></a>
+<span class="sourceLineNo">721</span><a name="line.721"></a>
+<span class="sourceLineNo">722</span> @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span> public String toString() {<a name="line.723"></a>
+<span class="sourceLineNo">724</span> return MoreObjects.toStringHelper(this)<a name="line.724"></a>
+<span class="sourceLineNo">725</span> .add("blockCount", getBlockCount())<a name="line.725"></a>
+<span class="sourceLineNo">726</span> .add("currentSize", StringUtils.byteDesc(getCurrentSize()))<a name="line.726"></a>
+<span class="sourceLineNo">727</span> .add("freeSize", StringUtils.byteDesc(getFreeSize()))<a name="line.727"></a>
+<span class="sourceLineNo">728</span> .add("maxSize", StringUtils.byteDesc(getMaxSize()))<a name="line.728"></a>
+<span class="sourceLineNo">729</span> .add("heapSize", StringUtils.byteDesc(heapSize()))<a name="line.729"></a>
+<span class="sourceLineNo">730</span> .add("minSize", StringUtils.byteDesc(minSize()))<a name="line.730"></a>
+<span class="sourceLineNo">731</span> .add("minFactor", minFactor)<a name="line.731"></a>
+<span class="sourceLineNo">732</span> .add("multiSize", StringUtils.byteDesc(multiSize()))<a name="line.732"></a>
+<span class="sourceLineNo">733</span> .add("multiFactor", multiFactor)<a name="line.733"></a>
+<span class="sourceLineNo">734</span> .add("singleSize", StringUtils.byteDesc(singleSize()))<a name="line.734"></a>
+<span class="sourceLineNo">735</span> .add("singleFactor", singleFactor)<a name="line.735"></a>
+<span class="sourceLineNo">736</span> .toString();<a name="line.736"></a>
+<span class="sourceLineNo">737</span> }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span> /**<a name="line.739"></a>
+<span class="sourceLineNo">740</span> * Used to group blocks into priority buckets. There will be a BlockBucket<a name="line.740"></a>
+<span class="sourceLineNo">741</span> * for each priority (single, multi, memory). Once bucketed, the eviction<a name="line.741"></a>
+<span class="sourceLineNo">742</span> * algorithm takes the appropriate number of elements out of each according<a name="line.742"></a>
+<span class="sourceLineNo">743</span> * to configuration parameters and their relatives sizes.<a name="line.743"></a>
+<span class="sourceLineNo">744</span> */<a name="line.744"></a>
+<span class="sourceLineNo">745</span> private class BlockBucket implements Comparable<BlockBucket> {<a name="line.745"></a>
+<span class="sourceLineNo">746</span><a name="line.746"></a>
+<span class="sourceLineNo">747</span> private final String name;<a name="line.747"></a>
+<span class="sourceLineNo">748</span> private LruCachedBlockQueue queue;<a name="line.748"></a>
+<span class="sourceLineNo">749</span> private long totalSize = 0;<a name="line.749"></a>
+<span class="sourceLineNo">750</span> private long bucketSize;<a name="line.750"></a>
<span class="sourceLineNo">751</span><a name="line.751"></a>
-<span class="sourceLineNo">752</span> /**<a name="line.752"></a>
-<span class="sourceLineNo">753</span> * Used to group blocks into priority buckets. There will be a BlockBucket<a name="line.753"></a>
-<span class="sourceLineNo">754</span> * for each priority (single, multi, memory). Once bucketed, the eviction<a name="line.754"></a>
-<span class="sourceLineNo">755</span> * algorithm takes the appropriate number of elements out of each according<a name="line.755"></a>
-<span class="sourceLineNo">756</span> * to configuration parameters and their relatives sizes.<a name="line.756"></a>
-<span class="sourceLineNo">757</span> */<a name="line.757"></a>
-<span class="sourceLineNo">758</span> private class BlockBucket implements Comparable<BlockBucket> {<a name="line.758"></a>
-<span class="sourceLineNo">759</span><a name="line.759"></a>
-<span class="sourceLineNo">760</span> private final String name;<a name="line.760"></a>
-<span class="sourceLineNo">761</span> private LruCachedBlockQueue queue;<a name="line.761"></a>
-<span class="sourceLineNo">762</span> private long totalSize = 0;<a name="line.762"></a>
-<span class="sourceLineNo">763</span> private long bucketSize;<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span> public BlockBucket(String name, long bytesToFree, long blockSize, long bucketSize) {<a name="line.765"></a>
-<span class="sourceLineNo">766</span> this.name = name;<a name="line.766"></a>
-<span class="sourceLineNo">767</span> this.bucketSize = bucketSize;<a name="line.767"></a>
-<span class="sourceLineNo">768</span> queue = new LruCachedBlockQueue(bytesToFree, blockSize);<a name="line.768"></a>
-<span class="sourceLineNo">769</span> totalSize = 0;<a name="line.769"></a>
-<span class="sourceLineNo">770</span> }<a name="line.770"></a>
-<span class="sourceLineNo">771</span><a name="line.771"></a>
-<span class="sourceLineNo">772</span> public void add(LruCachedBlock block) {<a name="line.772"></a>
-<span class="sourceLineNo">773</span> totalSize += block.heapSize();<a name="line.773"></a>
-<span class="sourceLineNo">774</span> queue.add(block);<a name="line.774"></a>
-<span class="sourceLineNo">775</span> }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span> public long free(long toFree) {<a name="line.777"></a>
-<span class="sourceLineNo">778</span> if (LOG.isTraceEnabled()) {<a name="line.778"></a>
-<span class="sourceLineNo">779</span> LOG.trace("freeing " + StringUtils.byteDesc(toFree) + " from " + this);<a name="line.779"></a>
-<span class="sourceLineNo">780</span> }<a name="line.780"></a>
-<span class="sourceLineNo">781</span> LruCachedBlock cb;<a name="line.781"></a>
-<span class="sourceLineNo">782</span> long freedBytes = 0;<a name="line.782"></a>
-<span class="sourceLineNo">783</span> while ((cb = queue.pollLast()) != null) {<a name="line.783"></a>
-<span class="sourceLineNo">784</span> freedBytes += evictBlock(cb, true);<a name="line.784"></a>
-<span class="sourceLineNo">785</span> if (freedBytes >= toFree) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span> return freedBytes;<a name="line.786"></a>
-<span class="sourceLineNo">787</span> }<a name="line.787"></a>
-<span class="sourceLineNo">788</span> }<a name="line.788"></a>
-<span class="sourceLineNo">789</span> if (LOG.isTraceEnabled()) {<a name="line.789"></a>
-<span class="sourceLineNo">790</span> LOG.trace("freed " + StringUtils.byteDesc(freedBytes) + " from " + this);<a name="line.790"></a>
-<span class="sourceLineNo">791</span> }<a name="line.791"></a>
-<span class="sourceLineNo">792</span> return freedBytes;<a name="line.792"></a>
+<span class="sourceLineNo">752</span> public BlockBucket(String name, long bytesToFree, long blockSize, long bucketSize) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span> this.name = name;<a name="line.753"></a>
+<span class="sourceLineNo">754</span> this.bucketSize = bucketSize;<a name="line.754"></a>
+<span class="sourceLineNo">755</span> queue = new LruCachedBlockQueue(bytesToFree, blockSize);<a name="line.755"></a>
+<span class="sourceLineNo">756</span> totalSize = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span> }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span> public void add(LruCachedBlock block) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span> totalSize += block.heapSize();<a name="line.760"></a>
+<span class="sourceLineNo">761</span> queue.add(block);<a name="line.761"></a>
+<span class="sourceLineNo">762</span> }<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span> public long free(long toFree) {<a name="line.764"></a>
+<span class="sourceLineNo">765</span> if (LOG.isTraceEnabled()) {<a name="line.765"></a>
+<span class="sourceLineNo">766</span> LOG.trace("freeing " + StringUtils.byteDesc(toFree) + " from " + this);<a name="line.766"></a>
+<span class="sourceLineNo">767</span> }<a name="line.767"></a>
+<span class="sourceLineNo">768</span> LruCachedBlock cb;<a name="line.768"></a>
+<span class="sourceLineNo">769</span> long freedBytes = 0;<a name="line.769"></a>
+<span class="sourceLineNo">770</span> while ((cb = queue.pollLast()) != null) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span> freedBytes += evictBlock(cb, true);<a name="line.771"></a>
+<span class="sourceLineNo">772</span> if (freedBytes >= toFree) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span> return freedBytes;<a name="line.773"></a>
+<span class="sourceLineNo">774</span> }<a name="line.774"></a>
+<span class="sourceLineNo">775</span> }<a name="line.775"></a>
+<span class="sourceLineNo">776</span> if (LOG.isTraceEnabled()) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span> LOG.trace("freed " + StringUtils.byteDesc(freedBytes) + " from " + this);<a name="line.777"></a>
+<span class="sourceLineNo">778</span> }<a name="line.778"></a>
+<span class="sourceLineNo">779</span> return freedBytes;<a name="line.779"></a>
+<span class="sourceLineNo">780</span> }<a name="line.780"></a>
+<span class="sourceLineNo">781</span><a name="line.781"></a>
+<span class="sourceLineNo">782</span> public long overflow() {<a name="line.782"></a>
+<span class="sourceLineNo">783</span> return totalSize - bucketSize;<a name="line.783"></a>
+<span class="sourceLineNo">784</span> }<a name="line.784"></a>
+<span class="sourceLineNo">785</span><a name="line.785"></a>
+<span class="sourceLineNo">786</span> public long totalSize() {<a name="line.786"></a>
+<span class="sourceLineNo">787</span> return totalSize;<a name="line.787"></a>
+<span class="sourceLineNo">788</span> }<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span> @Override<a name="line.790"></a>
+<span class="sourceLineNo">791</span> public int compareTo(BlockBucket that) {<a name="line.791"></a>
+<span class="sourceLineNo">792</span> return Long.compare(this.overflow(), that.overflow());<a name="line.792"></a>
<span class="sourceLineNo">793</span> }<a name="line.793"></a>
<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span> public long overflow() {<a name="line.795"></a>
-<span class="sourceLineNo">796</span> return totalSize - bucketSize;<a name="line.796"></a>
-<span class="sourceLineNo">797</span> }<a name="line.797"></a>
-<span class="sourceLineNo">798</span><a name="line.798"></a>
-<span class="sourceLineNo">799</span> public long totalSize() {<a name="line.799"></a>
-<span class="sourceLineNo">800</span> return totalSize;<a name="line.800"></a>
+<span class="sourceLineNo">795</span> @Override<a name="line.795"></a>
+<span class="sourceLineNo">796</span> public boolean equals(Object that) {<a name="line.796"></a>
+<span class="sourceLineNo">797</span> if (that == null || !(that instanceof BlockBucket)) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span> return false;<a name="line.798"></a>
+<span class="sourceLineNo">799</span> }<a name="line.799"></a>
+<span class="sourceLineNo">800</span> return compareTo((BlockBucket)that) == 0;<a name="line.800"></a>
<span class="sourceLineNo">801</span> }<a name="line.801"></a>
<span class="sourceLineNo">802</span><a name="line.802"></a>
<span class="sourceLineNo">803</span> @Override<a name="line.803"></a>
-<span class="sourceLineNo">804</span> public int compareTo(BlockBucket that) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span> return Long.compare(this.overflow(), that.overflow());<a name="line.805"></a>
+<span class="sourceLineNo">804</span> public int hashCode() {<a name="line.804"></a>
+<span class="sourceLineNo">805</span> return Objects.hashCode(name, bucketSize, queue, totalSize);<a name="line.805"></a>
<span class="sourceLineNo">806</span> }<a name="line.806"></a>
<span class="sourceLineNo">807</span><a name="line.807"></a>
<span class="sourceLineNo">808</span> @Override<a name="line.808"></a>
-<span class="sourceLineNo">809</span> public boolean equals(Object that) {<a name="line.809"></a>
-<span class="sourceLineNo">810</span> if (that == null || !(that instanceof BlockBucket)) {<a name="line.810"></a>
-<span class="sourceLineNo">811</span> return false;<a name="line.811"></a>
-<span class="sourceLineNo">812</span> }<a name="line.812"></a>
-<span class="sourceLineNo">813</span> return compareTo((BlockBucket)that) == 0;<a name="line.813"></a>
-<span class="sourceLineNo">814</span> }<a name="line.814"></a>
-<span class="sourceLineNo">815</span><a name="line.815"></a>
-<span class="sourceLineNo">816</span> @Override<a name="line.816"></a>
-<span class="sourceLineNo">817</span> public int hashCode() {<a name="line.817"></a>
-<span class="sourceLineNo">818</span> return Objects.hashCode(name, bucketSize, queue, totalSize);<a name="line.818"></a>
-<span class="sourceLineNo">819</span> }<a name="line.819"></a>
-<span class="sourceLineNo">820</span><a name="line.820"></a>
-<span class="sourceLineNo">821</span> @Override<a name="line.821"></a>
-<span class="sourceLineNo">822</span> public String toString() {<a name="line.822"></a>
-<span class="sourceLineNo">823</span> return MoreObjects.toStringHelper(this)<a name="line.823"></a>
-<span class="sourceLineNo">824</span> .add("name", name)<a name="line.824"></a>
-<span class="sourceLineNo">825</span> .add("totalSize", StringUtils.byteDesc(totalSize))<a name="line.825"></a>
-<span class="sourceLineNo">826</span> .add("bucketSize", StringUtils.byteDesc(bucketSize))<a name="line.826"></a>
-<span class="sourceLineNo">827</span> .toString();<a name="line.827"></a>
-<span class="sourceLineNo">828</span> }<a name="line.828"></a>
-<span class="sourceLineNo">829</span> }<a name="line.829"></a>
-<span class="sourceLineNo">830</span><a name="line.830"></a>
-<span class="sourceLineNo">831</span> /**<a name="line.831"></a>
-<span class="sourceLineNo">832</span> * Get the maximum size of this cache.<a name="line.832"></a>
-<span class="sourceLineNo">833</span> *<a name="line.833"></a>
-<span class="sourceLineNo">834</span> * @return max size in bytes<a name="line.834"></a>
-<span class="sourceLineNo">835</span> */<a name="line.835"></a>
-<span class="sourceLineNo">836</span><a name="line.836"></a>
-<span class="sourceLineNo">837</span> @Override<a name="line.837"></a>
-<span class="sourceLineNo">838</span> public long getMaxSize() {<a name="line.838"></a>
-<span class="sourceLineNo">839</span> return this.maxSize;<a name="line.839"></a>
-<span class="sourceLineNo">840</span> }<a name="line.840"></a>
-<span class="sourceLineNo">841</span><a name="line.841"></a>
-<span class="sourceLineNo">842</span> @Override<a name="line.842"></a>
-<span class="sourceLineNo">843</span> public long getCurrentSize() {<a name="line.843"></a>
-<span class="sourceLineNo">844</span> return this.size.get();<a name="line.844"></a>
-<span class="sourceLineNo">845</span> }<a name="line.845"></a>
-<span class="sourceLineNo">846</span><a name="line.846"></a>
-<span class="sourceLineNo">847</span> @Override<a name="line.847"></a>
-<span class="sourceLineNo">848</span> public long getCurrentDataSize() {<a name="line.848"></a>
-<span class="sourceLineNo">849</span> return this.dataBlockSize.sum();<a name="line.849"></a>
-<span class="sourceLineNo">850</span> }<a name="line.850"></a>
-<span class="sourceLineNo">851</span><a name="line.851"></a>
-<span class="sourceLineNo">852</span> @Override<a name="line.852"></a>
-<span class="sourceLineNo">853</span> public long getFreeSize() {<a name="line.853"></a>
-<span class="sourceLineNo">854</span> return getMaxSize() - getCurrentSize();<a name="line.854"></a>
-<span class="sourceLineNo">855</span> }<a name="line.855"></a>
-<span class="sourceLineNo">856</span><a name="line.856"></a>
-<span class="sourceLineNo">857</span> @Override<a name="line.857"></a>
-<span class="sourceLineNo">858</span> public long size() {<a name="line.858"></a>
-<span class="sourceLineNo">859</span> return getMaxSize();<a name="line.859"></a>
-<span class="sourceLineNo">860</span> }<a name="line.860"></a>
-<span class="sourceLineNo">861</span><a name="line.861"></a>
-<span class="sourceLineNo">862</span> @Override<a name="line.862"></a>
-<span class="sourceLineNo">863</span> public long getBlockCount() {<a name="line.863"></a>
-<span class="sourceLineNo">864</span> return this.elements.get();<a name="line.864"></a>
-<span class="sourceLineNo">865</span> }<a name="line.865"></a>
-<span class="sourceLineNo">866</span><a name="line.866"></a>
-<span class="sourceLineNo">867</span> @Override<a name="line.867"></a>
-<span class="sourceLineNo">868</span> public long getDataBlockCount() {<a name="line.868"></a>
-<span class="sourceLineNo">869</span> return this.dataBlockElements.sum();<a name="line.869"></a>
-<span class="sourceLineNo">870</span> }<a name="line.870"></a>
-<span class="sourceLineNo">871</span><a name="line.871"></a>
-<span class="sourceLineNo">872</span> EvictionThread getEvictionThread() {<a name="line.872"></a>
-<span class="sourceLineNo">873</span> return this.evictionThread;<a name="line.873"></a>
-<span class="sourceLineNo">874</span> }<a name="line.874"></a>
+<span class="sourceLineNo">809</span> public String toString() {<a name="line.809"></a>
+<span class="sourceLineNo">810</span> return MoreObjects.toStringHelper(this)<a name="line.810"></a>
+<span class="sourceLineNo">811</span> .add("name", name)<a name="line.811"></a>
+<span class="sourceLineNo">812</span> .add("totalSize", StringUtils.byteDesc(totalSize))<a name="line.812"></a>
+<span class="sourceLineNo">813</span> .add("bucketSize", StringUtils.byteDesc(bucketSize))<a name="line.813"></a>
+<span class="sourceLineNo">814</span> .toString();<a name="line.814"></a>
+<span class="sourceLineNo">815</span> }<a name="line.815"></a>
+<span class="sourceLineNo">816</span> }<a name="line.816"></a>
+<span class="sourceLineNo">817</span><a name="line.817"></a>
+<span class="sourceLineNo">818</span> /**<a name="line.818"></a>
+<span class="sourceLineNo">819</span> * Get the maximum size of this cache.<a name="line.819"></a>
+<span class="sourceLineNo">820</span> *<a name="line.820"></a>
+<span class="sourceLineNo">821</span> * @return max size in bytes<a name="line.821"></a>
+<span class="sourceLineNo">822</span> */<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span> @Override<a name="line.824"></a>
+<span class="sourceLineNo">825</span> public long getMaxSize() {<a name="line.825"></a>
+<span class="sourceLineNo">826</span> return this.maxSize;<a name="line.826"></a>
+<span class="sourceLineNo">827</span> }<a name="line.827"></a>
+<span class="sourceLineNo">828</span><a name="line.828"></a>
+<span class="sourceLineNo">829</span> @Override<a name="line.829"></a>
+<span class="sourceLineNo">830</span> public long getCurrentSize() {<a name="line.830"></a>
+<span class="sourceLineNo">831</span> return this.size.get();<a name="line.831"></a>
+<span class="sourceLineNo">832</span> }<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span> @Override<a name="line.834"></a>
+<span class="sourceLineNo">835</span> public long getCurrentDataSize() {<a name="line.835"></a>
+<span class="sourceLineNo">836</span> return this.dataBlockSize.sum();<a name="line.836"></a>
+<span class="sourceLineNo">837</span> }<a name="line.837"></a>
+<span class="sourceLineNo">838</span><a name="line.838"></a>
+<span class="sourceLineNo">839</span> @Override<a name="line.839"></a>
+<span class="sourceLineNo">840</span> public long getFreeSize() {<a name="line.840"></a>
+<span class="sourceLineNo">841</span> return getMaxSize() - getCurrentSize();<a name="line.841"></a>
+<span class="sourceLineNo">842</span> }<a name="line.842"></a>
+<span class="sourceLineNo">843</span><a name="line.843"></a>
+<span class="sourceL
<TRUNCATED>
[13/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html
index 05e032c..40ef9f4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslClientCallbackHandler.html
@@ -25,767 +25,805 @@
<span class="sourceLineNo">017</span> */<a name="line.17"></a>
<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.io.asyncfs;<a name="line.18"></a>
<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.21"></a>
+<span class="sourceLineNo">020</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.21"></a>
<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import com.google.protobuf.CodedOutputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.io.IOException;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.lang.reflect.Field;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.lang.reflect.InvocationTargetException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.lang.reflect.Method;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.net.InetAddress;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import java.net.InetSocketAddress;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import java.nio.ByteBuffer;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import java.security.GeneralSecurityException;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import java.util.Arrays;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import java.util.Collections;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import java.util.List;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import java.util.Map;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import java.util.Set;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import java.util.concurrent.TimeUnit;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>import javax.security.auth.callback.Callback;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import javax.security.auth.callback.CallbackHandler;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import javax.security.auth.callback.NameCallback;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import javax.security.auth.callback.PasswordCallback;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import javax.security.sasl.RealmCallback;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import javax.security.sasl.Sasl;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import javax.security.sasl.SaslClient;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import javax.security.sasl.SaslException;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.commons.codec.binary.Base64;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.commons.lang3.StringUtils;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.conf.Configuration;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.slf4j.Logger;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.slf4j.LoggerFactory;<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>import com.google.protobuf.ByteString;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.security.token.Token;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>/**<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@InterfaceAudience.Private<a name="line.109"></a>
-<span class="sourceLineNo">110</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.110"></a>
-<span class="sourceLineNo">111</span> private static final Logger LOG =<a name="line.111"></a>
-<span class="sourceLineNo">112</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.112"></a>
+<span class="sourceLineNo">023</span>import com.google.protobuf.ByteString;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import com.google.protobuf.CodedOutputStream;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.lang.reflect.Field;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.lang.reflect.InvocationTargetException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.lang.reflect.Method;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.net.InetAddress;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.net.InetSocketAddress;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.ByteBuffer;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.security.GeneralSecurityException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.Arrays;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.List;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Map;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.Set;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import java.util.concurrent.TimeUnit;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import javax.security.auth.callback.Callback;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import javax.security.auth.callback.CallbackHandler;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import javax.security.auth.callback.NameCallback;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import javax.security.auth.callback.PasswordCallback;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import javax.security.sasl.RealmCallback;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import javax.security.sasl.Sasl;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import javax.security.sasl.SaslClient;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import javax.security.sasl.SaslException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.commons.codec.binary.Base64;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.commons.lang3.StringUtils;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.conf.Configuration;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.crypto.key.KeyProvider;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.security.token.Token;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.slf4j.Logger;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.slf4j.LoggerFactory;<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>/**<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.104"></a>
+<span class="sourceLineNo">105</span> */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>@InterfaceAudience.Private<a name="line.106"></a>
+<span class="sourceLineNo">107</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> private static final Logger LOG =<a name="line.108"></a>
+<span class="sourceLineNo">109</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span> }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span> private static final String SERVER_NAME = "0";<a name="line.117"></a>
-<span class="sourceLineNo">118</span> private static final String PROTOCOL = "hdfs";<a name="line.118"></a>
-<span class="sourceLineNo">119</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.119"></a>
-<span class="sourceLineNo">120</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> private static final String NAME_DELIMITER = " ";<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span> private interface SaslAdaptor {<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.127"></a>
+<span class="sourceLineNo">114</span> private static final String SERVER_NAME = "0";<a name="line.114"></a>
+<span class="sourceLineNo">115</span> private static final String PROTOCOL = "hdfs";<a name="line.115"></a>
+<span class="sourceLineNo">116</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.116"></a>
+<span class="sourceLineNo">117</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> private static final String NAME_DELIMITER = " ";<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span> private interface SaslAdaptor {<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> }<a name="line.127"></a>
<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> }<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.132"></a>
+<span class="sourceLineNo">129</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span> // helper class for convert protos.<a name="line.131"></a>
+<span class="sourceLineNo">132</span> private interface PBHelper {<a name="line.132"></a>
<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span> // helper class for convert protos.<a name="line.134"></a>
-<span class="sourceLineNo">135</span> private interface PBHelper {<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.137"></a>
+<span class="sourceLineNo">134</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.139"></a>
-<span class="sourceLineNo">140</span> }<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span> private static final PBHelper PB_HELPER;<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> private interface TransparentCryptoHelper {<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.146"></a>
-<span class="sourceLineNo">147</span> throws IOException;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span> private static SaslAdaptor createSaslAdaptor()<a name="line.152"></a>
-<span class="sourceLineNo">153</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.153"></a>
-<span class="sourceLineNo">154</span> Field saslPropsResolverField =<a name="line.154"></a>
-<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.155"></a>
-<span class="sourceLineNo">156</span> saslPropsResolverField.setAccessible(true);<a name="line.156"></a>
-<span class="sourceLineNo">157</span> Field trustedChannelResolverField =<a name="line.157"></a>
-<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.158"></a>
-<span class="sourceLineNo">159</span> trustedChannelResolverField.setAccessible(true);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> Field fallbackToSimpleAuthField =<a name="line.160"></a>
-<span class="sourceLineNo">161</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.161"></a>
-<span class="sourceLineNo">162</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.162"></a>
-<span class="sourceLineNo">163</span> return new SaslAdaptor() {<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> @Override<a name="line.165"></a>
-<span class="sourceLineNo">166</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span> try {<a name="line.167"></a>
-<span class="sourceLineNo">168</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.168"></a>
-<span class="sourceLineNo">169</span> } catch (IllegalAccessException e) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> throw new RuntimeException(e);<a name="line.170"></a>
-<span class="sourceLineNo">171</span> }<a name="line.171"></a>
-<span class="sourceLineNo">172</span> }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span> @Override<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> try {<a name="line.176"></a>
-<span class="sourceLineNo">177</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> } catch (IllegalAccessException e) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span> throw new RuntimeException(e);<a name="line.179"></a>
-<span class="sourceLineNo">180</span> }<a name="line.180"></a>
-<span class="sourceLineNo">181</span> }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span> @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span> try {<a name="line.185"></a>
-<span class="sourceLineNo">186</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.186"></a>
-<span class="sourceLineNo">187</span> } catch (IllegalAccessException e) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> throw new RuntimeException(e);<a name="line.188"></a>
-<span class="sourceLineNo">189</span> }<a name="line.189"></a>
-<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span> };<a name="line.191"></a>
-<span class="sourceLineNo">192</span> }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.194"></a>
-<span class="sourceLineNo">195</span> Class<?> helperClass;<a name="line.195"></a>
-<span class="sourceLineNo">196</span> try {<a name="line.196"></a>
-<span class="sourceLineNo">197</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.197"></a>
-<span class="sourceLineNo">198</span> } catch (ClassNotFoundException e) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.199"></a>
-<span class="sourceLineNo">200</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.200"></a>
-<span class="sourceLineNo">201</span> }<a name="line.201"></a>
-<span class="sourceLineNo">202</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> Method convertCipherOptionProtosMethod =<a name="line.203"></a>
-<span class="sourceLineNo">204</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.204"></a>
-<span class="sourceLineNo">205</span> return new PBHelper() {<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span> @SuppressWarnings("unchecked")<a name="line.207"></a>
-<span class="sourceLineNo">208</span> @Override<a name="line.208"></a>
-<span class="sourceLineNo">209</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span> try {<a name="line.210"></a>
-<span class="sourceLineNo">211</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span> throw new RuntimeException(e);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> }<a name="line.214"></a>
-<span class="sourceLineNo">215</span> }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> @SuppressWarnings("unchecked")<a name="line.217"></a>
-<span class="sourceLineNo">218</span> @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span> try {<a name="line.220"></a>
-<span class="sourceLineNo">221</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.221"></a>
-<span class="sourceLineNo">222</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span> throw new RuntimeException(e);<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span> }<a name="line.225"></a>
-<span class="sourceLineNo">226</span> };<a name="line.226"></a>
-<span class="sourceLineNo">227</span> }<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.229"></a>
-<span class="sourceLineNo">230</span> throws NoSuchMethodException {<a name="line.230"></a>
-<span class="sourceLineNo">231</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.231"></a>
-<span class="sourceLineNo">232</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.232"></a>
-<span class="sourceLineNo">233</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span> return new TransparentCryptoHelper() {<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span> @Override<a name="line.236"></a>
-<span class="sourceLineNo">237</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.237"></a>
-<span class="sourceLineNo">238</span> DFSClient client) throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span> try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> KeyVersion decryptedKey =<a name="line.240"></a>
-<span class="sourceLineNo">241</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.241"></a>
-<span class="sourceLineNo">242</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.242"></a>
-<span class="sourceLineNo">243</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.243"></a>
-<span class="sourceLineNo">244</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.244"></a>
-<span class="sourceLineNo">245</span> return encryptor;<a name="line.245"></a>
-<span class="sourceLineNo">246</span> } catch (InvocationTargetException e) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.247"></a>
-<span class="sourceLineNo">248</span> throw new RuntimeException(e.getTargetException());<a name="line.248"></a>
-<span class="sourceLineNo">249</span> } catch (GeneralSecurityException e) {<a name="line.249"></a>
-<span class="sourceLineNo">250</span> throw new IOException(e);<a name="line.250"></a>
-<span class="sourceLineNo">251</span> } catch (IllegalAccessException e) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> throw new RuntimeException(e);<a name="line.252"></a>
-<span class="sourceLineNo">253</span> }<a name="line.253"></a>
-<span class="sourceLineNo">254</span> }<a name="line.254"></a>
-<span class="sourceLineNo">255</span> };<a name="line.255"></a>
-<span class="sourceLineNo">256</span> }<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span> static {<a name="line.258"></a>
-<span class="sourceLineNo">259</span> try {<a name="line.259"></a>
-<span class="sourceLineNo">260</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.260"></a>
-<span class="sourceLineNo">261</span> PB_HELPER = createPBHelper();<a name="line.261"></a>
-<span class="sourceLineNo">262</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.262"></a>
-<span class="sourceLineNo">263</span> } catch (Exception e) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.264"></a>
-<span class="sourceLineNo">265</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.265"></a>
-<span class="sourceLineNo">266</span> + "HBASE-16110 for more information.";<a name="line.266"></a>
-<span class="sourceLineNo">267</span> LOG.error(msg, e);<a name="line.267"></a>
-<span class="sourceLineNo">268</span> throw new Error(msg, e);<a name="line.268"></a>
-<span class="sourceLineNo">269</span> }<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span> /**<a name="line.272"></a>
-<span class="sourceLineNo">273</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.273"></a>
-<span class="sourceLineNo">274</span> */<a name="line.274"></a>
-<span class="sourceLineNo">275</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span> private final char[] password;<a name="line.277"></a>
-<span class="sourceLineNo">278</span> private final String userName;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span> /**<a name="line.280"></a>
-<span class="sourceLineNo">281</span> * Creates a new SaslClientCallbackHandler.<a name="line.281"></a>
-<span class="sourceLineNo">282</span> * @param userName SASL user name<a name="line.282"></a>
-<span class="sourceLineNo">283</span> * @Param password SASL password<a name="line.283"></a>
-<span class="sourceLineNo">284</span> */<a name="line.284"></a>
-<span class="sourceLineNo">285</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span> this.password = password;<a name="line.286"></a>
-<span class="sourceLineNo">287</span> this.userName = userName;<a name="line.287"></a>
-<span class="sourceLineNo">288</span> }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span> @Override<a name="line.290"></a>
-<span class="sourceLineNo">291</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.291"></a>
-<span class="sourceLineNo">292</span> NameCallback nc = null;<a name="line.292"></a>
-<span class="sourceLineNo">293</span> PasswordCallback pc = null;<a name="line.293"></a>
-<span class="sourceLineNo">294</span> RealmCallback rc = null;<a name="line.294"></a>
-<span class="sourceLineNo">295</span> for (Callback callback : callbacks) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span> if (callback instanceof RealmChoiceCallback) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span> continue;<a name="line.297"></a>
-<span class="sourceLineNo">298</span> } else if (callback instanceof NameCallback) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span> nc = (NameCallback) callback;<a name="line.299"></a>
-<span class="sourceLineNo">300</span> } else if (callback instanceof PasswordCallback) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span> pc = (PasswordCallback) callback;<a name="line.301"></a>
-<span class="sourceLineNo">302</span> } else if (callback instanceof RealmCallback) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span> rc = (RealmCallback) callback;<a name="line.303"></a>
-<span class="sourceLineNo">304</span> } else {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span> }<a name="line.307"></a>
-<span class="sourceLineNo">308</span> if (nc != null) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span> nc.setName(userName);<a name="line.309"></a>
-<span class="sourceLineNo">310</span> }<a name="line.310"></a>
-<span class="sourceLineNo">311</span> if (pc != null) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> pc.setPassword(password);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span> if (rc != null) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span> rc.setText(rc.getDefaultText());<a name="line.315"></a>
-<span class="sourceLineNo">316</span> }<a name="line.316"></a>
-<span class="sourceLineNo">317</span> }<a name="line.317"></a>
-<span class="sourceLineNo">318</span> }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span> private final Configuration conf;<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span> private final Map<String, String> saslProps;<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span> private final SaslClient saslClient;<a name="line.326"></a>
+<span class="sourceLineNo">139</span> private static final PBHelper PB_HELPER;<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span> private interface TransparentCryptoHelper {<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.143"></a>
+<span class="sourceLineNo">144</span> throws IOException;<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span> private static SaslAdaptor createSaslAdaptor()<a name="line.149"></a>
+<span class="sourceLineNo">150</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Field saslPropsResolverField =<a name="line.151"></a>
+<span class="sourceLineNo">152</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.152"></a>
+<span class="sourceLineNo">153</span> saslPropsResolverField.setAccessible(true);<a name="line.153"></a>
+<span class="sourceLineNo">154</span> Field trustedChannelResolverField =<a name="line.154"></a>
+<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.155"></a>
+<span class="sourceLineNo">156</span> trustedChannelResolverField.setAccessible(true);<a name="line.156"></a>
+<span class="sourceLineNo">157</span> Field fallbackToSimpleAuthField =<a name="line.157"></a>
+<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.158"></a>
+<span class="sourceLineNo">159</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.159"></a>
+<span class="sourceLineNo">160</span> return new SaslAdaptor() {<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span> @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span> try {<a name="line.164"></a>
+<span class="sourceLineNo">165</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.165"></a>
+<span class="sourceLineNo">166</span> } catch (IllegalAccessException e) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span> throw new RuntimeException(e);<a name="line.167"></a>
+<span class="sourceLineNo">168</span> }<a name="line.168"></a>
+<span class="sourceLineNo">169</span> }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span> @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span> try {<a name="line.173"></a>
+<span class="sourceLineNo">174</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.174"></a>
+<span class="sourceLineNo">175</span> } catch (IllegalAccessException e) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span> throw new RuntimeException(e);<a name="line.176"></a>
+<span class="sourceLineNo">177</span> }<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span> @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span> try {<a name="line.182"></a>
+<span class="sourceLineNo">183</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.183"></a>
+<span class="sourceLineNo">184</span> } catch (IllegalAccessException e) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span> throw new RuntimeException(e);<a name="line.185"></a>
+<span class="sourceLineNo">186</span> }<a name="line.186"></a>
+<span class="sourceLineNo">187</span> }<a name="line.187"></a>
+<span class="sourceLineNo">188</span> };<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.191"></a>
+<span class="sourceLineNo">192</span> Class<?> helperClass;<a name="line.192"></a>
+<span class="sourceLineNo">193</span> try {<a name="line.193"></a>
+<span class="sourceLineNo">194</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.194"></a>
+<span class="sourceLineNo">195</span> } catch (ClassNotFoundException e) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.197"></a>
+<span class="sourceLineNo">198</span> }<a name="line.198"></a>
+<span class="sourceLineNo">199</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.199"></a>
+<span class="sourceLineNo">200</span> Method convertCipherOptionProtosMethod =<a name="line.200"></a>
+<span class="sourceLineNo">201</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.201"></a>
+<span class="sourceLineNo">202</span> return new PBHelper() {<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span> @SuppressWarnings("unchecked")<a name="line.204"></a>
+<span class="sourceLineNo">205</span> @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> try {<a name="line.207"></a>
+<span class="sourceLineNo">208</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.208"></a>
+<span class="sourceLineNo">209</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span> throw new RuntimeException(e);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> }<a name="line.211"></a>
+<span class="sourceLineNo">212</span> }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span> @SuppressWarnings("unchecked")<a name="line.214"></a>
+<span class="sourceLineNo">215</span> @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> try {<a name="line.217"></a>
+<span class="sourceLineNo">218</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span> throw new RuntimeException(e);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> };<a name="line.223"></a>
+<span class="sourceLineNo">224</span> }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span> private static TransparentCryptoHelper createTransparentCryptoHelper27()<a name="line.226"></a>
+<span class="sourceLineNo">227</span> throws NoSuchMethodException {<a name="line.227"></a>
+<span class="sourceLineNo">228</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.228"></a>
+<span class="sourceLineNo">229</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> return new TransparentCryptoHelper() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.234"></a>
+<span class="sourceLineNo">235</span> DFSClient client) throws IOException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span> try {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> KeyVersion decryptedKey =<a name="line.237"></a>
+<span class="sourceLineNo">238</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.238"></a>
+<span class="sourceLineNo">239</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.239"></a>
+<span class="sourceLineNo">240</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.241"></a>
+<span class="sourceLineNo">242</span> return encryptor;<a name="line.242"></a>
+<span class="sourceLineNo">243</span> } catch (InvocationTargetException e) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.244"></a>
+<span class="sourceLineNo">245</span> throw new RuntimeException(e.getTargetException());<a name="line.245"></a>
+<span class="sourceLineNo">246</span> } catch (GeneralSecurityException e) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> throw new IOException(e);<a name="line.247"></a>
+<span class="sourceLineNo">248</span> } catch (IllegalAccessException e) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span> throw new RuntimeException(e);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span> }<a name="line.251"></a>
+<span class="sourceLineNo">252</span> };<a name="line.252"></a>
+<span class="sourceLineNo">253</span> }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span> private static TransparentCryptoHelper createTransparentCryptoHelper28()<a name="line.255"></a>
+<span class="sourceLineNo">256</span> throws ClassNotFoundException, NoSuchMethodException {<a name="line.256"></a>
+<span class="sourceLineNo">257</span> Class<?> hdfsKMSUtilCls = Class.forName("org.apache.hadoop.hdfs.HdfsKMSUtil");<a name="line.257"></a>
+<span class="sourceLineNo">258</span> Method decryptEncryptedDataEncryptionKeyMethod = hdfsKMSUtilCls.getDeclaredMethod(<a name="line.258"></a>
+<span class="sourceLineNo">259</span> "decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class, KeyProvider.class);<a name="line.259"></a>
+<span class="sourceLineNo">260</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.260"></a>
+<span class="sourceLineNo">261</span> return new TransparentCryptoHelper() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span> @Override<a name="line.263"></a>
+<span class="sourceLineNo">264</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.264"></a>
+<span class="sourceLineNo">265</span> DFSClient client) throws IOException {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> try {<a name="line.266"></a>
+<span class="sourceLineNo">267</span> KeyVersion decryptedKey = (KeyVersion) decryptEncryptedDataEncryptionKeyMethod<a name="line.267"></a>
+<span class="sourceLineNo">268</span> .invoke(null, feInfo, client.getKeyProvider());<a name="line.268"></a>
+<span class="sourceLineNo">269</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.269"></a>
+<span class="sourceLineNo">270</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.270"></a>
+<span class="sourceLineNo">271</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.271"></a>
+<span class="sourceLineNo">272</span> return encryptor;<a name="line.272"></a>
+<span class="sourceLineNo">273</span> } catch (InvocationTargetException e) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.274"></a>
+<span class="sourceLineNo">275</span> throw new RuntimeException(e.getTargetException());<a name="line.275"></a>
+<span class="sourceLineNo">276</span> } catch (GeneralSecurityException e) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> throw new IOException(e);<a name="line.277"></a>
+<span class="sourceLineNo">278</span> } catch (IllegalAccessException e) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> throw new RuntimeException(e);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> }<a name="line.280"></a>
+<span class="sourceLineNo">281</span> }<a name="line.281"></a>
+<span class="sourceLineNo">282</span> };<a name="line.282"></a>
+<span class="sourceLineNo">283</span> }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.285"></a>
+<span class="sourceLineNo">286</span> throws NoSuchMethodException, ClassNotFoundException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> try {<a name="line.287"></a>
+<span class="sourceLineNo">288</span> return createTransparentCryptoHelper27();<a name="line.288"></a>
+<span class="sourceLineNo">289</span> } catch (NoSuchMethodException e) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> LOG.debug("No decryptEncryptedDataEncryptionKey method in DFSClient, should be hadoop 2.8+",<a name="line.290"></a>
+<span class="sourceLineNo">291</span> e);<a name="line.291"></a>
+<span class="sourceLineNo">292</span> }<a name="line.292"></a>
+<span class="sourceLineNo">293</span> return createTransparentCryptoHelper28();<a name="line.293"></a>
+<span class="sourceLineNo">294</span> }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span> static {<a name="line.296"></a>
+<span class="sourceLineNo">297</span> try {<a name="line.297"></a>
+<span class="sourceLineNo">298</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.298"></a>
+<span class="sourceLineNo">299</span> PB_HELPER = createPBHelper();<a name="line.299"></a>
+<span class="sourceLineNo">300</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.300"></a>
+<span class="sourceLineNo">301</span> } catch (Exception e) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.302"></a>
+<span class="sourceLineNo">303</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.303"></a>
+<span class="sourceLineNo">304</span> + "HBASE-16110 for more information.";<a name="line.304"></a>
+<span class="sourceLineNo">305</span> LOG.error(msg, e);<a name="line.305"></a>
+<span class="sourceLineNo">306</span> throw new Error(msg, e);<a name="line.306"></a>
+<span class="sourceLineNo">307</span> }<a name="line.307"></a>
+<span class="sourceLineNo">308</span> }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span> /**<a name="line.310"></a>
+<span class="sourceLineNo">311</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.311"></a>
+<span class="sourceLineNo">312</span> */<a name="line.312"></a>
+<span class="sourceLineNo">313</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span> private final char[] password;<a name="line.315"></a>
+<span class="sourceLineNo">316</span> private final String userName;<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span> /**<a name="line.318"></a>
+<span class="sourceLineNo">319</span> * Creates a new SaslClientCallbackHandler.<a name="line.319"></a>
+<span class="sourceLineNo">320</span> * @param userName SASL user name<a name="line.320"></a>
+<span class="sourceLineNo">321</span> * @Param password SASL password<a name="line.321"></a>
+<span class="sourceLineNo">322</span> */<a name="line.322"></a>
+<span class="sourceLineNo">323</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span> this.password = password;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> this.userName = userName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> }<a name="line.326"></a>
<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span> private final int timeoutMs;<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span> private final Promise<Void> promise;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span> private int step = 0;<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.334"></a>
-<span class="sourceLineNo">335</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.335"></a>
-<span class="sourceLineNo">336</span> this.conf = conf;<a name="line.336"></a>
-<span class="sourceLineNo">337</span> this.saslProps = saslProps;<a name="line.337"></a>
-<span class="sourceLineNo">338</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.338"></a>
-<span class="sourceLineNo">339</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.339"></a>
-<span class="sourceLineNo">340</span> this.timeoutMs = timeoutMs;<a name="line.340"></a>
-<span class="sourceLineNo">341</span> this.promise = promise;<a name="line.341"></a>
-<span class="sourceLineNo">342</span> }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.344"></a>
-<span class="sourceLineNo">345</span> sendSaslMessage(ctx, payload, null);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.349"></a>
-<span class="sourceLineNo">350</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.350"></a>
-<span class="sourceLineNo">351</span> // values for future expansion.<a name="line.351"></a>
-<span class="sourceLineNo">352</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span> return null;<a name="line.354"></a>
-<span class="sourceLineNo">355</span> }<a name="line.355"></a>
-<span class="sourceLineNo">356</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.357"></a>
-<span class="sourceLineNo">358</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.358"></a>
-<span class="sourceLineNo">359</span> }<a name="line.359"></a>
-<span class="sourceLineNo">360</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.360"></a>
-<span class="sourceLineNo">361</span> }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.363"></a>
-<span class="sourceLineNo">364</span> List<CipherOption> options) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.365"></a>
-<span class="sourceLineNo">366</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.366"></a>
-<span class="sourceLineNo">367</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> if (payload != null) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.369"></a>
-<span class="sourceLineNo">370</span> // and we want to keep that out of hbase-server.<a name="line.370"></a>
-<span class="sourceLineNo">371</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.371"></a>
-<span class="sourceLineNo">372</span> }<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (options != null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.376"></a>
-<span class="sourceLineNo">377</span> int size = proto.getSerializedSize();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.378"></a>
-<span class="sourceLineNo">379</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.379"></a>
-<span class="sourceLineNo">380</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> ctx.write(buf);<a name="line.381"></a>
-<span class="sourceLineNo">382</span> }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span> @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.385"></a>
-<span class="sourceLineNo">386</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.386"></a>
-<span class="sourceLineNo">387</span> sendSaslMessage(ctx, new byte[0]);<a name="line.387"></a>
-<span class="sourceLineNo">388</span> ctx.flush();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> step++;<a name="line.389"></a>
-<span class="sourceLineNo">390</span> }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span> @Override<a name="line.392"></a>
-<span class="sourceLineNo">393</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.393"></a>
-<span class="sourceLineNo">394</span> saslClient.dispose();<a name="line.394"></a>
-<span class="sourceLineNo">395</span> }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.399"></a>
-<span class="sourceLineNo">400</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span> throw new IOException(proto.getMessage());<a name="line.401"></a>
-<span class="sourceLineNo">402</span> }<a name="line.402"></a>
-<span class="sourceLineNo">403</span> }<a name="line.403"></a>
-<span class="sourceLineNo">404</span><a name="line.404"></a>
-<span class="sourceLineNo">405</span> private String getNegotiatedQop() {<a name="line.405"></a>
-<span class="sourceLineNo">406</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.406"></a>
-<span class="sourceLineNo">407</span> }<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span> private boolean isNegotiatedQopPrivacy() {<a name="line.409"></a>
-<span class="sourceLineNo">410</span> String qop = getNegotiatedQop();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> return qop != null && "auth-conf".equalsIgnoreCase(qop);<a name="line.411"></a>
-<span class="sourceLineNo">412</span> }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span> private boolean requestedQopContainsPrivacy() {<a name="line.414"></a>
-<span class="sourceLineNo">415</span> Set<String> requestedQop =<a name="line.415"></a>
-<span class="sourceLineNo">416</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.416"></a>
-<span class="sourceLineNo">417</span> return requestedQop.contains("auth-conf");<a name="line.417"></a>
-<span class="sourceLineNo">418</span> }<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span> private void checkSaslComplete() throws IOException {<a name="line.420"></a>
-<span class="sourceLineNo">421</span> if (!saslClient.isComplete()) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> throw new IOException("Failed to complete SASL handshake");<a name="line.422"></a>
-<span class="sourceLineNo">423</span> }<a name="line.423"></a>
-<span class="sourceLineNo">424</span> Set<String> requestedQop =<a name="line.424"></a>
-<span class="sourceLineNo">425</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.425"></a>
-<span class="sourceLineNo">426</span> String negotiatedQop = getNegotiatedQop();<a name="line.426"></a>
-<span class="sourceLineNo">427</span> LOG.debug(<a name="line.427"></a>
-<span class="sourceLineNo">428</span> "Verifying QOP, requested QOP = " + requestedQop + ", negotiated QOP = " + negotiatedQop);<a name="line.428"></a>
-<span class="sourceLineNo">429</span> if (!requestedQop.contains(negotiatedQop)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span> throw new IOException(String.format("SASL handshake completed, but "<a name="line.430"></a>
-<span class="sourceLineNo">431</span> + "channel does not have acceptable quality of protection, "<a name="line.431"></a>
-<span class="sourceLineNo">432</span> + "requested = %s, negotiated = %s",<a name="line.432"></a>
-<span class="sourceLineNo">433</span> requestedQop, negotiatedQop));<a name="line.433"></a>
-<span class="sourceLineNo">434</span> }<a name="line.434"></a>
-<span class="sourceLineNo">435</span> }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span> private boolean useWrap() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> String qop = (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> return qop != null && !"auth".equalsIgnoreCase(qop);<a name="line.439"></a>
-<span class="sourceLineNo">440</span> }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span> private CipherOption unwrap(CipherOption option, SaslClient saslClient) throws IOException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> byte[] inKey = option.getInKey();<a name="line.443"></a>
-<span class="sourceLineNo">444</span> if (inKey != null) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span> inKey = saslClient.unwrap(inKey, 0, inKey.length);<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> byte[] outKey = option.getOutKey();<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (outKey != null) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> outKey = saslClient.unwrap(outKey, 0, outKey.length);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> }<a name="line.450"></a>
-<span class="sourceLineNo">451</span> return new CipherOption(option.getCipherSuite(), inKey, option.getInIv(), outKey,<a name="line.451"></a>
-<span class="sourceLineNo">452</span> option.getOutIv());<a name="line.452"></a>
-<span class="sourceLineNo">453</span> }<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span> private CipherOption getCipherOption(DataTransferEncryptorMessageProto proto,<a name="line.455"></a>
-<span class="sourceLineNo">456</span> boolean isNegotiatedQopPrivacy, SaslClient saslClient) throws IOException {<a name="line.456"></a>
-<span class="sourceLineNo">457</span> List<CipherOption> cipherOptions =<a name="line.457"></a>
-<span class="sourceLineNo">458</span> PB_HELPER.convertCipherOptionProtos(proto.getCipherOptionList());<a name="line.458"></a>
-<span class="sourceLineNo">459</span> if (cipherOptions == null || cipherOptions.isEmpty()) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span> return null;<a name="line.460"></a>
+<span class="sourceLineNo">328</span> @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.329"></a>
+<span class="sourceLineNo">330</span> NameCallback nc = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span> PasswordCallback pc = null;<a name="line.331"></a>
+<span class="sourceLineNo">332</span> RealmCallback rc = null;<a name="line.332"></a>
+<span class="sourceLineNo">333</span> for (Callback callback : callbacks) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span> if (callback instanceof RealmChoiceCallback) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span> continue;<a name="line.335"></a>
+<span class="sourceLineNo">336</span> } else if (callback instanceof NameCallback) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span> nc = (NameCallback) callback;<a name="line.337"></a>
+<span class="sourceLineNo">338</span> } else if (callback instanceof PasswordCallback) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span> pc = (PasswordCallback) callback;<a name="line.339"></a>
+<span class="sourceLineNo">340</span> } else if (callback instanceof RealmCallback) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span> rc = (RealmCallback) callback;<a name="line.341"></a>
+<span class="sourceLineNo">342</span> } else {<a name="line.342"></a>
+<span class="sourceLineNo">343</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.343"></a>
+<span class="sourceLineNo">344</span> }<a name="line.344"></a>
+<span class="sourceLineNo">345</span> }<a name="line.345"></a>
+<span class="sourceLineNo">346</span> if (nc != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> nc.setName(userName);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span> if (pc != null) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span> pc.setPassword(password);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> }<a name="line.351"></a>
+<span class="sourceLineNo">352</span> if (rc != null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span> rc.setText(rc.getDefaultText());<a name="line.353"></a>
+<span class="sourceLineNo">354</span> }<a name="line.354"></a>
+<span class="sourceLineNo">355</span> }<a name="line.355"></a>
+<span class="sourceLineNo">356</span> }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span> private final Configuration conf;<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span> private final Map<String, String> saslProps;<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span> private final SaslClient saslClient;<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span> private final int timeoutMs;<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span> private final Promise<Void> promise;<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span> private int step = 0;<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.372"></a>
+<span class="sourceLineNo">373</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span> this.conf = conf;<a name="line.374"></a>
+<span class="sourceLineNo">375</span> this.saslProps = saslProps;<a name="line.375"></a>
+<span class="sourceLineNo">376</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.376"></a>
+<span class="sourceLineNo">377</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.377"></a>
+<span class="sourceLineNo">378</span> this.timeoutMs = timeoutMs;<a name="line.378"></a>
+<span class="sourceLineNo">379</span> this.promise = promise;<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> sendSaslMessage(ctx, payload, null);<a name="line.383"></a>
+<span class="sourceLineNo">384</span> }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.386"></a>
+<span class="sourceLineNo">387</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.387"></a>
+<span class="sourceLineNo">388</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.388"></a>
+<span class="sourceLineNo">389</span> // values for future expansion.<a name="line.389"></a>
+<span class="sourceLineNo">390</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.390"></a>
+<span class="sourceLineNo">391</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span> return null;<a name="line.392"></a>
+<span class="sourceLineNo">393</span> }<a name="line.393"></a>
+<span class="sourceLineNo">394</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.395"></a>
+<span class="sourceLineNo">396</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.396"></a>
+<span class="sourceLineNo">397</span> }<a name="line.397"></a>
+<span class="sourceLineNo">398</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.398"></a>
+<span class="sourceLineNo">399</span> }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.401"></a>
+<span class="sourceLineNo">402</span> List<CipherOption> options) throws IOException {<a name="line.402"></a>
+<span class="sourceLineNo">403</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.403"></a>
+<span class="sourceLineNo">404</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.404"></a>
+<span class="sourceLineNo">405</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.405"></a>
+<span class="sourceLineNo">406</span> if (payload != null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.407"></a>
+<span class="sourceLineNo">408</span> // and we want to keep that out of hbase-server.<a name="line.408"></a>
+<span class="sourceLineNo">409</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.409"></a>
+<span class="sourceLineNo">410</span> }<a name="line.410"></a>
+<span class="sourceLineNo">411</span> if (options != null) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.412"></a>
+<span class="sourceLineNo">413</span> }<a name="line.413"></a>
+<span class="sourceLineNo">414</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.414"></a>
+<span class="sourceLineNo">415</span> int size = proto.getSerializedSize();<a name="line.415"></a>
+<span class="sourceLineNo">416</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.416"></a>
+<span class="sourceLineNo">417</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.417"></a>
+<span class="sourceLineNo">418</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.418"></a>
+<span class="sourceLineNo">419</span> ctx.write(buf);<a name="line.419"></a>
+<span class="sourceLineNo">420</span> }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span> @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.424"></a>
+<span class="sourceLineNo">425</span> sendSaslMessage(ctx, new byte[0]);<a name="line.425"></a>
+<span class="sourceLineNo">426</span> ctx.flush();<a name="line.426"></a>
+<span class="sourceLineNo">427</span> step++;<a name="line.427"></a>
+<span class="sourceLineNo">428</span> }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span> @Override<a name="line.430"></a>
+<span class="sourceLineNo">431</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.431"></a>
+<span class="sourceLineNo">432</span> saslClient.dispose();<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.435"></a>
+<span class="sourceLineNo">436</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.437"></a>
+<span class="sourceLineNo">438</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span> throw new IOException(proto.getMessage());<a name="line.439"></a>
+<span class="sourceLineNo">440</span> }<a name="line.440"></a>
+<span class="sourceLineNo">441</span> }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span> private String getNegotiatedQop() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>
<TRUNCATED>
[43/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html
index 162b207..d3df994 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9};
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
<hr>
<br>
<pre>@InterfaceAudience.Private
-public final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.110">FanOutOneBlockAsyncDFSOutputSaslHelper</a>
+public final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.107">FanOutOneBlockAsyncDFSOutputSaslHelper</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Helper class for adding sasl support for <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.html" title="class in org.apache.hadoop.hbase.io.asyncfs"><code>FanOutOneBlockAsyncDFSOutput</code></a>.</div>
</li>
@@ -285,6 +285,14 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#createTransparentCryptoHelper--">createTransparentCryptoHelper</a></span>()</code> </td>
</tr>
<tr id="i7" class="rowColor">
+<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#createTransparentCryptoHelper27--">createTransparentCryptoHelper27</a></span>()</code> </td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#createTransparentCryptoHelper28--">createTransparentCryptoHelper28</a></span>()</code> </td>
+</tr>
+<tr id="i9" class="rowColor">
<td class="colFirst"><code>private static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#doSaslNegotiation-org.apache.hadoop.conf.Configuration-org.apache.hbase.thirdparty.io.netty.channel.Channel-int-java.lang.String-char:A-java.util.Map-org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise-">doSaslNegotiation</a></span>(org.apache.hadoop.conf.Configuration conf,
org.apache.hbase.thirdparty.io.netty.channel.Channel channel,
@@ -294,15 +302,15 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> saslProps,
org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise<<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>> saslPromise)</code> </td>
</tr>
-<tr id="i8" class="altColor">
+<tr id="i10" class="altColor">
<td class="colFirst"><code>private static char[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#encryptionKeyToPassword-byte:A-">encryptionKeyToPassword</a></span>(byte[] encryptionKey)</code> </td>
</tr>
-<tr id="i9" class="rowColor">
+<tr id="i11" class="rowColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#getUserNameFromEncryptionKey-org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey-">getUserNameFromEncryptionKey</a></span>(org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey encryptionKey)</code> </td>
</tr>
-<tr id="i10" class="altColor">
+<tr id="i12" class="altColor">
<td class="colFirst"><code>(package private) static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#trySaslNegotiate-org.apache.hadoop.conf.Configuration-org.apache.hbase.thirdparty.io.netty.channel.Channel-org.apache.hadoop.hdfs.protocol.DatanodeInfo-int-org.apache.hadoop.hdfs.DFSClient-org.apache.hadoop.security.token.Token-org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise-">trySaslNegotiate</a></span>(org.apache.hadoop.conf.Configuration conf,
org.apache.hbase.thirdparty.io.netty.channel.Channel channel,
@@ -340,7 +348,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
-<pre>private static final org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.111">LOG</a></pre>
+<pre>private static final org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.108">LOG</a></pre>
</li>
</ul>
<a name="SERVER_NAME">
@@ -349,7 +357,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>SERVER_NAME</h4>
-<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.117">SERVER_NAME</a></pre>
+<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.114">SERVER_NAME</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputSaslHelper.SERVER_NAME">Constant Field Values</a></dd>
@@ -362,7 +370,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>PROTOCOL</h4>
-<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.118">PROTOCOL</a></pre>
+<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.115">PROTOCOL</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputSaslHelper.PROTOCOL">Constant Field Values</a></dd>
@@ -375,7 +383,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>MECHANISM</h4>
-<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.119">MECHANISM</a></pre>
+<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.116">MECHANISM</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputSaslHelper.MECHANISM">Constant Field Values</a></dd>
@@ -388,7 +396,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>SASL_TRANSFER_MAGIC_NUMBER</h4>
-<pre>private static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.120">SASL_TRANSFER_MAGIC_NUMBER</a></pre>
+<pre>private static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.117">SASL_TRANSFER_MAGIC_NUMBER</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputSaslHelper.SASL_TRANSFER_MAGIC_NUMBER">Constant Field Values</a></dd>
@@ -401,7 +409,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>NAME_DELIMITER</h4>
-<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.121">NAME_DELIMITER</a></pre>
+<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.118">NAME_DELIMITER</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputSaslHelper.NAME_DELIMITER">Constant Field Values</a></dd>
@@ -414,7 +422,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>SASL_ADAPTOR</h4>
-<pre>private static final <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.132">SASL_ADAPTOR</a></pre>
+<pre>private static final <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.129">SASL_ADAPTOR</a></pre>
</li>
</ul>
<a name="PB_HELPER">
@@ -423,7 +431,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>PB_HELPER</h4>
-<pre>private static final <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.142">PB_HELPER</a></pre>
+<pre>private static final <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.139">PB_HELPER</a></pre>
</li>
</ul>
<a name="TRANSPARENT_CRYPTO_HELPER">
@@ -432,7 +440,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>TRANSPARENT_CRYPTO_HELPER</h4>
-<pre>private static final <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.150">TRANSPARENT_CRYPTO_HELPER</a></pre>
+<pre>private static final <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.147">TRANSPARENT_CRYPTO_HELPER</a></pre>
</li>
</ul>
</li>
@@ -449,7 +457,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>FanOutOneBlockAsyncDFSOutputSaslHelper</h4>
-<pre>private <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.114">FanOutOneBlockAsyncDFSOutputSaslHelper</a>()</pre>
+<pre>private <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.111">FanOutOneBlockAsyncDFSOutputSaslHelper</a>()</pre>
</li>
</ul>
</li>
@@ -466,7 +474,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>createSaslAdaptor</h4>
-<pre>private static <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.152">createSaslAdaptor</a>()
+<pre>private static <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.SaslAdaptor</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.149">createSaslAdaptor</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NoSuchFieldException.html?is-external=true" title="class or interface in java.lang">NoSuchFieldException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang">NoSuchMethodException</a></pre>
<dl>
@@ -482,7 +490,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>createPBHelper</h4>
-<pre>private static <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.194">createPBHelper</a>()
+<pre>private static <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.PBHelper</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.191">createPBHelper</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang">NoSuchMethodException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -490,17 +498,49 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
</dl>
</li>
</ul>
+<a name="createTransparentCryptoHelper27--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTransparentCryptoHelper27</h4>
+<pre>private static <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.226">createTransparentCryptoHelper27</a>()
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang">NoSuchMethodException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang">NoSuchMethodException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createTransparentCryptoHelper28--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTransparentCryptoHelper28</h4>
+<pre>private static <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.255">createTransparentCryptoHelper28</a>()
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a>,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang">NoSuchMethodException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang">NoSuchMethodException</a></code></dd>
+</dl>
+</li>
+</ul>
<a name="createTransparentCryptoHelper--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createTransparentCryptoHelper</h4>
-<pre>private static <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.229">createTransparentCryptoHelper</a>()
- throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang">NoSuchMethodException</a></pre>
+<pre>private static <a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.285">createTransparentCryptoHelper</a>()
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang">NoSuchMethodException</a>,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang">NoSuchMethodException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></code></dd>
</dl>
</li>
</ul>
@@ -510,7 +550,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getUserNameFromEncryptionKey</h4>
-<pre>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.675">getUserNameFromEncryptionKey</a>(org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey encryptionKey)</pre>
+<pre>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.713">getUserNameFromEncryptionKey</a>(org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey encryptionKey)</pre>
</li>
</ul>
<a name="encryptionKeyToPassword-byte:A-">
@@ -519,7 +559,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>encryptionKeyToPassword</h4>
-<pre>private static char[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.680">encryptionKeyToPassword</a>(byte[] encryptionKey)</pre>
+<pre>private static char[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.718">encryptionKeyToPassword</a>(byte[] encryptionKey)</pre>
</li>
</ul>
<a name="buildUsername-org.apache.hadoop.security.token.Token-">
@@ -528,7 +568,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>buildUsername</h4>
-<pre>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.684">buildUsername</a>(org.apache.hadoop.security.token.Token<org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier> blockToken)</pre>
+<pre>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.722">buildUsername</a>(org.apache.hadoop.security.token.Token<org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier> blockToken)</pre>
</li>
</ul>
<a name="buildClientPassword-org.apache.hadoop.security.token.Token-">
@@ -537,7 +577,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>buildClientPassword</h4>
-<pre>private static char[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.688">buildClientPassword</a>(org.apache.hadoop.security.token.Token<org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier> blockToken)</pre>
+<pre>private static char[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.726">buildClientPassword</a>(org.apache.hadoop.security.token.Token<org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier> blockToken)</pre>
</li>
</ul>
<a name="createSaslPropertiesForEncryption-java.lang.String-">
@@ -546,7 +586,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>createSaslPropertiesForEncryption</h4>
-<pre>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.693">createSaslPropertiesForEncryption</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> encryptionAlgorithm)</pre>
+<pre>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.731">createSaslPropertiesForEncryption</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> encryptionAlgorithm)</pre>
</li>
</ul>
<a name="doSaslNegotiation-org.apache.hadoop.conf.Configuration-org.apache.hbase.thirdparty.io.netty.channel.Channel-int-java.lang.String-char:A-java.util.Map-org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise-">
@@ -555,7 +595,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>doSaslNegotiation</h4>
-<pre>private static void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.701">doSaslNegotiation</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>private static void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.739">doSaslNegotiation</a>(org.apache.hadoop.conf.Configuration conf,
org.apache.hbase.thirdparty.io.netty.channel.Channel channel,
int timeoutMs,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> username,
@@ -570,7 +610,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>trySaslNegotiate</h4>
-<pre>static void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.713">trySaslNegotiate</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>static void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.751">trySaslNegotiate</a>(org.apache.hadoop.conf.Configuration conf,
org.apache.hbase.thirdparty.io.netty.channel.Channel channel,
org.apache.hadoop.hdfs.protocol.DatanodeInfo dnInfo,
int timeoutMs,
@@ -590,7 +630,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>createEncryptor</h4>
-<pre>static org.apache.hadoop.crypto.Encryptor <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.772">createEncryptor</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>static org.apache.hadoop.crypto.Encryptor <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#line.810">createEncryptor</a>(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.hdfs.protocol.HdfsFileStatus stat,
org.apache.hadoop.hdfs.DFSClient client)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/asyncfs/class-use/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/class-use/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/class-use/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html
index 4bf7f70..9ed2a9f 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/class-use/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/class-use/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html
@@ -119,6 +119,14 @@
<td class="colFirst"><code>private static <a href="../../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper</a></code></td>
<td class="colLast"><span class="typeNameLabel">FanOutOneBlockAsyncDFSOutputSaslHelper.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#createTransparentCryptoHelper--">createTransparentCryptoHelper</a></span>()</code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private static <a href="../../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FanOutOneBlockAsyncDFSOutputSaslHelper.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#createTransparentCryptoHelper27--">createTransparentCryptoHelper27</a></span>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static <a href="../../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper.TransparentCryptoHelper</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FanOutOneBlockAsyncDFSOutputSaslHelper.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#createTransparentCryptoHelper28--">createTransparentCryptoHelper28</a></span>()</code> </td>
+</tr>
</tbody>
</table>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html
index 884c9b1..01824b9 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#line.223">BlockCacheUtil.CachedBlocksByFile</a>
+<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#line.258">BlockCacheUtil.CachedBlocksByFile</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Use one of these to keep a running account of cached blocks by file. Throw it away when done.
This is different than metrics in that it is stats on current state of a cache.
@@ -275,7 +275,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>count</h4>
-<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.224">count</a></pre>
+<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.259">count</a></pre>
</li>
</ul>
<a name="dataBlockCount">
@@ -284,7 +284,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>dataBlockCount</h4>
-<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.225">dataBlockCount</a></pre>
+<pre>private int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.260">dataBlockCount</a></pre>
</li>
</ul>
<a name="size">
@@ -293,7 +293,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.226">size</a></pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.261">size</a></pre>
</li>
</ul>
<a name="dataSize">
@@ -302,7 +302,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>dataSize</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.227">dataSize</a></pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.262">dataSize</a></pre>
</li>
</ul>
<a name="now">
@@ -311,7 +311,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>now</h4>
-<pre>private final long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.228">now</a></pre>
+<pre>private final long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.263">now</a></pre>
</li>
</ul>
<a name="max">
@@ -320,7 +320,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>max</h4>
-<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.236">max</a></pre>
+<pre>private final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.271">max</a></pre>
<div class="block">How many blocks to look at before we give up.
There could be many millions of blocks. We don't want the
ui to freeze while we run through 1B blocks... users will
@@ -334,7 +334,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_MAX</h4>
-<pre>public static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.237">DEFAULT_MAX</a></pre>
+<pre>public static final int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.272">DEFAULT_MAX</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.BlockCacheUtil.CachedBlocksByFile.DEFAULT_MAX">Constant Field Values</a></dd>
@@ -347,7 +347,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>cachedBlockByFile</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.250">cachedBlockByFile</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.285">cachedBlockByFile</a></pre>
<div class="block">Map by filename. use concurent utils because we want our Map and contained blocks sorted.</div>
</li>
</ul>
@@ -357,7 +357,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>hist</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/metrics/impl/FastLongHistogram.html" title="class in org.apache.hadoop.hbase.metrics.impl">FastLongHistogram</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.251">hist</a></pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/metrics/impl/FastLongHistogram.html" title="class in org.apache.hadoop.hbase.metrics.impl">FastLongHistogram</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.286">hist</a></pre>
</li>
</ul>
</li>
@@ -374,7 +374,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>CachedBlocksByFile</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.239">CachedBlocksByFile</a>()</pre>
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.274">CachedBlocksByFile</a>()</pre>
</li>
</ul>
<a name="CachedBlocksByFile-org.apache.hadoop.conf.Configuration-">
@@ -383,7 +383,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>CachedBlocksByFile</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.243">CachedBlocksByFile</a>(org.apache.hadoop.conf.Configuration c)</pre>
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.278">CachedBlocksByFile</a>(org.apache.hadoop.conf.Configuration c)</pre>
</li>
</ul>
</li>
@@ -400,7 +400,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>update</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.257">update</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a> cb)</pre>
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.292">update</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a> cb)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cb</code> - </dd>
@@ -415,7 +415,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>isFull</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.282">isFull</a>()</pre>
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.317">isFull</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if full; i.e. there are more items in the cache but we only loaded up
@@ -430,7 +430,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getCachedBlockStatsByFile</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.286">getCachedBlockStatsByFile</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.321">getCachedBlockStatsByFile</a>()</pre>
</li>
</ul>
<a name="getCount--">
@@ -439,7 +439,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getCount</h4>
-<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.293">getCount</a>()</pre>
+<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.328">getCount</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>count of blocks in the cache</dd>
@@ -452,7 +452,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getDataCount</h4>
-<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.297">getDataCount</a>()</pre>
+<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.332">getDataCount</a>()</pre>
</li>
</ul>
<a name="getSize--">
@@ -461,7 +461,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getSize</h4>
-<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.304">getSize</a>()</pre>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.339">getSize</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>size of blocks in the cache</dd>
@@ -474,7 +474,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getDataSize</h4>
-<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.311">getDataSize</a>()</pre>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.346">getDataSize</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Size of data.</dd>
@@ -487,7 +487,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getAgeInCacheSnapshot</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/AgeSnapshot.html" title="class in org.apache.hadoop.hbase.io.hfile">AgeSnapshot</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.315">getAgeInCacheSnapshot</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/AgeSnapshot.html" title="class in org.apache.hadoop.hbase.io.hfile">AgeSnapshot</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.350">getAgeInCacheSnapshot</a>()</pre>
</li>
</ul>
<a name="toString--">
@@ -496,7 +496,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.320">toString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html#line.355">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html
index 6b86d0c..ef4e796 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9};
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -220,29 +220,38 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
</td>
</tr>
<tr id="i2" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#shouldReplaceExistingCacheBlock-org.apache.hadoop.hbase.io.hfile.BlockCache-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-">shouldReplaceExistingCacheBlock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> blockCache,
+ <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+ <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> newBlock)</code>
+<div class="block">Because of the region splitting, it's possible that the split key locate in the middle of a
+ block.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#toJSON-org.apache.hadoop.hbase.io.hfile.BlockCache-">toJSON</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> bc)</code> </td>
</tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#toJSON-org.apache.hadoop.hbase.io.hfile.BlockCacheUtil.CachedBlocksByFile-">toJSON</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheUtil.CachedBlocksByFile</a> cbsbf)</code> </td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#toJSON-java.lang.String-java.util.NavigableSet-">toJSON</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> filename,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>> blocks)</code> </td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#toString-org.apache.hadoop.hbase.io.hfile.CachedBlock-long-">toString</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a> cb,
long now)</code> </td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#toStringMinusFileName-org.apache.hadoop.hbase.io.hfile.CachedBlock-long-">toStringMinusFileName</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a> cb,
long now)</code> </td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#validateBlockAddition-org.apache.hadoop.hbase.io.hfile.Cacheable-org.apache.hadoop.hbase.io.hfile.Cacheable-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">validateBlockAddition</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> existing,
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> newBlock,
@@ -463,7 +472,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<a name="validateBlockAddition-org.apache.hadoop.hbase.io.hfile.Cacheable-org.apache.hadoop.hbase.io.hfile.Cacheable-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>validateBlockAddition</h4>
<pre>public static int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#line.199">validateBlockAddition</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> existing,
@@ -482,6 +491,33 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
</dl>
</li>
</ul>
+<a name="shouldReplaceExistingCacheBlock-org.apache.hadoop.hbase.io.hfile.BlockCache-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>shouldReplaceExistingCacheBlock</h4>
+<pre>public static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#line.227">shouldReplaceExistingCacheBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> blockCache,
+ <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey,
+ <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> newBlock)</pre>
+<div class="block">Because of the region splitting, it's possible that the split key locate in the middle of a
+ block. So it's possible that both the daughter regions load the same block from their parent
+ HFile. When pread, we don't force the read to read all of the next block header. So when two
+ threads try to cache the same block, it's possible that one thread read all of the next block
+ header but the other one didn't. if the already cached block hasn't next block header but the
+ new block to cache has, then we can replace the existing block with the new block for better
+ performance.(HBASE-20447)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>blockCache</code> - BlockCache to check</dd>
+<dd><code>cacheKey</code> - the block cache key</dd>
+<dd><code>newBlock</code> - the new block which try to put into the block cache.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true means need to replace existing block with new block for the same block cache key.
+ false means just keep the existing block.</dd>
+</dl>
+</li>
+</ul>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html
index 125a6bd..1ae319c 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>private class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.758">LruBlockCache.BlockBucket</a>
+<pre>private class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.745">LruBlockCache.BlockBucket</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.BlockBucket</a>></pre>
<div class="block">Used to group blocks into priority buckets. There will be a BlockBucket
@@ -253,7 +253,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>name</h4>
-<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.760">name</a></pre>
+<pre>private final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.747">name</a></pre>
</li>
</ul>
<a name="queue">
@@ -262,7 +262,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>queue</h4>
-<pre>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruCachedBlockQueue.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlockQueue</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.761">queue</a></pre>
+<pre>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruCachedBlockQueue.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlockQueue</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.748">queue</a></pre>
</li>
</ul>
<a name="totalSize">
@@ -271,7 +271,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>totalSize</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.762">totalSize</a></pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.749">totalSize</a></pre>
</li>
</ul>
<a name="bucketSize">
@@ -280,7 +280,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockListLast">
<li class="blockList">
<h4>bucketSize</h4>
-<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.763">bucketSize</a></pre>
+<pre>private long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.750">bucketSize</a></pre>
</li>
</ul>
</li>
@@ -297,7 +297,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockListLast">
<li class="blockList">
<h4>BlockBucket</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.765">BlockBucket</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.752">BlockBucket</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
long bytesToFree,
long blockSize,
long bucketSize)</pre>
@@ -317,7 +317,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.772">add</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a> block)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.759">add</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a> block)</pre>
</li>
</ul>
<a name="free-long-">
@@ -326,7 +326,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>free</h4>
-<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.777">free</a>(long toFree)</pre>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.764">free</a>(long toFree)</pre>
</li>
</ul>
<a name="overflow--">
@@ -335,7 +335,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>overflow</h4>
-<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.795">overflow</a>()</pre>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.782">overflow</a>()</pre>
</li>
</ul>
<a name="totalSize--">
@@ -344,7 +344,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>totalSize</h4>
-<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.799">totalSize</a>()</pre>
+<pre>public long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.786">totalSize</a>()</pre>
</li>
</ul>
<a name="compareTo-org.apache.hadoop.hbase.io.hfile.LruBlockCache.BlockBucket-">
@@ -353,7 +353,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>compareTo</h4>
-<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.804">compareTo</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.BlockBucket</a> that)</pre>
+<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.791">compareTo</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.BlockBucket</a> that)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true#compareTo-T-" title="class or interface in java.lang">compareTo</a></code> in interface <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.BlockBucket</a>></code></dd>
@@ -366,7 +366,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.809">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> that)</pre>
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.796">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> that)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -379,7 +379,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
-<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.817">hashCode</a>()</pre>
+<pre>public int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.804">hashCode</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -392,7 +392,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.822">toString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.BlockBucket.html#line.809">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html
index bc5912f..595b06f 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.882">LruBlockCache.EvictionThread</a>
+<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.869">LruBlockCache.EvictionThread</a>
extends <a href="../../../../../../org/apache/hadoop/hbase/util/HasThread.html" title="class in org.apache.hadoop.hbase.util">HasThread</a></pre>
</li>
</ul>
@@ -239,7 +239,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/HasThread.html"
<ul class="blockList">
<li class="blockList">
<h4>cache</h4>
-<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ref/WeakReference.html?is-external=true" title="class or interface in java.lang.ref">WeakReference</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.884">cache</a></pre>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ref/WeakReference.html?is-external=true" title="class or interface in java.lang.ref">WeakReference</a><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.871">cache</a></pre>
</li>
</ul>
<a name="go">
@@ -248,7 +248,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/HasThread.html"
<ul class="blockList">
<li class="blockList">
<h4>go</h4>
-<pre>private volatile boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.885">go</a></pre>
+<pre>private volatile boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.872">go</a></pre>
</li>
</ul>
<a name="enteringRun">
@@ -257,7 +257,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/HasThread.html"
<ul class="blockListLast">
<li class="blockList">
<h4>enteringRun</h4>
-<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.887">enteringRun</a></pre>
+<pre>private boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.874">enteringRun</a></pre>
</li>
</ul>
</li>
@@ -274,7 +274,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/HasThread.html"
<ul class="blockListLast">
<li class="blockList">
<h4>EvictionThread</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.889">EvictionThread</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a> cache)</pre>
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.876">EvictionThread</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a> cache)</pre>
</li>
</ul>
</li>
@@ -291,7 +291,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/HasThread.html"
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.896">run</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.883">run</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code> in interface <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -306,7 +306,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/HasThread.html"
<ul class="blockList">
<li class="blockList">
<h4>evict</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.915">evict</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.902">evict</a>()</pre>
</li>
</ul>
<a name="shutdown--">
@@ -315,7 +315,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/HasThread.html"
<ul class="blockList">
<li class="blockList">
<h4>shutdown</h4>
-<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.921">shutdown</a>()</pre>
+<pre>void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.908">shutdown</a>()</pre>
</li>
</ul>
<a name="isEnteringRun--">
@@ -324,7 +324,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/HasThread.html"
<ul class="blockListLast">
<li class="blockList">
<h4>isEnteringRun</h4>
-<pre>boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.929">isEnteringRun</a>()</pre>
+<pre>boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html#line.916">isEnteringRun</a>()</pre>
<div class="block">Used for the test.</div>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html
index e896b6e..96583f9 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.937">LruBlockCache.StatisticsThread</a>
+<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line.924">LruBlockCache.StatisticsThread</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></pre>
</li>
</ul>
@@ -239,7 +239,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockListLast">
<li class="blockList">
<h4>lru</h4>
-<pre>private final <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html#line.939">lru</a></pre>
+<pre>private final <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html#line.926">lru</a></pre>
</li>
</ul>
</li>
@@ -256,7 +256,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockListLast">
<li class="blockList">
<h4>StatisticsThread</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html#line.941">StatisticsThread</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a> lru)</pre>
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html#line.928">StatisticsThread</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a> lru)</pre>
</li>
</ul>
</li>
@@ -273,7 +273,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
<ul class="blockListLast">
<li class="blockList">
<h4>run</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html#line.948">run</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html#line.935">run</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code> in interface <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
[10/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html
index 05e032c..40ef9f4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html
@@ -25,767 +25,805 @@
<span class="sourceLineNo">017</span> */<a name="line.17"></a>
<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.io.asyncfs;<a name="line.18"></a>
<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.21"></a>
+<span class="sourceLineNo">020</span>import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import static org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleState.READER_IDLE;<a name="line.21"></a>
<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import com.google.protobuf.CodedOutputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.io.IOException;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.lang.reflect.Field;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.lang.reflect.InvocationTargetException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.lang.reflect.Method;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.net.InetAddress;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import java.net.InetSocketAddress;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import java.nio.ByteBuffer;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import java.security.GeneralSecurityException;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import java.util.Arrays;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import java.util.Collections;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import java.util.List;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import java.util.Map;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import java.util.Set;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import java.util.concurrent.TimeUnit;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>import javax.security.auth.callback.Callback;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import javax.security.auth.callback.CallbackHandler;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import javax.security.auth.callback.NameCallback;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import javax.security.auth.callback.PasswordCallback;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import javax.security.sasl.RealmCallback;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import javax.security.sasl.Sasl;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import javax.security.sasl.SaslClient;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import javax.security.sasl.SaslException;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.commons.codec.binary.Base64;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.commons.lang3.StringUtils;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.conf.Configuration;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.slf4j.Logger;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.slf4j.LoggerFactory;<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>import com.google.protobuf.ByteString;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.security.token.Token;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>/**<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@InterfaceAudience.Private<a name="line.109"></a>
-<span class="sourceLineNo">110</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.110"></a>
-<span class="sourceLineNo">111</span> private static final Logger LOG =<a name="line.111"></a>
-<span class="sourceLineNo">112</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.112"></a>
+<span class="sourceLineNo">023</span>import com.google.protobuf.ByteString;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import com.google.protobuf.CodedOutputStream;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.lang.reflect.Field;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.lang.reflect.InvocationTargetException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.lang.reflect.Method;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.net.InetAddress;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.net.InetSocketAddress;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.ByteBuffer;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.security.GeneralSecurityException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.Arrays;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.List;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Map;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.Set;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import java.util.concurrent.TimeUnit;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import javax.security.auth.callback.Callback;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import javax.security.auth.callback.CallbackHandler;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import javax.security.auth.callback.NameCallback;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import javax.security.auth.callback.PasswordCallback;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import javax.security.auth.callback.UnsupportedCallbackException;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import javax.security.sasl.RealmCallback;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import javax.security.sasl.RealmChoiceCallback;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import javax.security.sasl.Sasl;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import javax.security.sasl.SaslClient;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import javax.security.sasl.SaslException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.commons.codec.binary.Base64;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.commons.lang3.StringUtils;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.conf.Configuration;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.crypto.CipherOption;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.crypto.CipherSuite;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.crypto.CryptoCodec;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.crypto.Decryptor;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.crypto.Encryptor;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.crypto.key.KeyProvider;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.fs.FileEncryptionInfo;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hdfs.DFSClient;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hdfs.protocol.datatransfer.InvalidEncryptionKeyException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hdfs.protocol.datatransfer.TrustedChannelResolver;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslDataTransferClient;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.DataTransferEncryptorMessageProto.DataTransferEncryptorStatus;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.CipherOptionProto;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.security.SaslPropertiesResolver;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.security.token.Token;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.slf4j.Logger;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.slf4j.LoggerFactory;<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hbase.thirdparty.com.google.common.base.Charsets;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBuf;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hbase.thirdparty.io.netty.buffer.ByteBufOutputStream;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hbase.thirdparty.io.netty.buffer.CompositeByteBuf;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hbase.thirdparty.io.netty.buffer.Unpooled;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelDuplexHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelOutboundHandlerAdapter;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPipeline;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hbase.thirdparty.io.netty.channel.ChannelPromise;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.LengthFieldBasedFrameDecoder;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.MessageToByteEncoder;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufDecoder;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hbase.thirdparty.io.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateEvent;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hbase.thirdparty.io.netty.handler.timeout.IdleStateHandler;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise;<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>/**<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * Helper class for adding sasl support for {@link FanOutOneBlockAsyncDFSOutput}.<a name="line.104"></a>
+<span class="sourceLineNo">105</span> */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>@InterfaceAudience.Private<a name="line.106"></a>
+<span class="sourceLineNo">107</span>public final class FanOutOneBlockAsyncDFSOutputSaslHelper {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> private static final Logger LOG =<a name="line.108"></a>
+<span class="sourceLineNo">109</span> LoggerFactory.getLogger(FanOutOneBlockAsyncDFSOutputSaslHelper.class);<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span> private FanOutOneBlockAsyncDFSOutputSaslHelper() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span> }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span> private static final String SERVER_NAME = "0";<a name="line.117"></a>
-<span class="sourceLineNo">118</span> private static final String PROTOCOL = "hdfs";<a name="line.118"></a>
-<span class="sourceLineNo">119</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.119"></a>
-<span class="sourceLineNo">120</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> private static final String NAME_DELIMITER = " ";<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span> private interface SaslAdaptor {<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.127"></a>
+<span class="sourceLineNo">114</span> private static final String SERVER_NAME = "0";<a name="line.114"></a>
+<span class="sourceLineNo">115</span> private static final String PROTOCOL = "hdfs";<a name="line.115"></a>
+<span class="sourceLineNo">116</span> private static final String MECHANISM = "DIGEST-MD5";<a name="line.116"></a>
+<span class="sourceLineNo">117</span> private static final int SASL_TRANSFER_MAGIC_NUMBER = 0xDEADBEEF;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> private static final String NAME_DELIMITER = " ";<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span> private interface SaslAdaptor {<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span> TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span> SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> }<a name="line.127"></a>
<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> }<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.132"></a>
+<span class="sourceLineNo">129</span> private static final SaslAdaptor SASL_ADAPTOR;<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span> // helper class for convert protos.<a name="line.131"></a>
+<span class="sourceLineNo">132</span> private interface PBHelper {<a name="line.132"></a>
<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span> // helper class for convert protos.<a name="line.134"></a>
-<span class="sourceLineNo">135</span> private interface PBHelper {<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.137"></a>
+<span class="sourceLineNo">134</span> List<CipherOptionProto> convertCipherOptions(List<CipherOption> options);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span> List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options);<a name="line.139"></a>
-<span class="sourceLineNo">140</span> }<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span> private static final PBHelper PB_HELPER;<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> private interface TransparentCryptoHelper {<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.146"></a>
-<span class="sourceLineNo">147</span> throws IOException;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span> private static SaslAdaptor createSaslAdaptor()<a name="line.152"></a>
-<span class="sourceLineNo">153</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.153"></a>
-<span class="sourceLineNo">154</span> Field saslPropsResolverField =<a name="line.154"></a>
-<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.155"></a>
-<span class="sourceLineNo">156</span> saslPropsResolverField.setAccessible(true);<a name="line.156"></a>
-<span class="sourceLineNo">157</span> Field trustedChannelResolverField =<a name="line.157"></a>
-<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.158"></a>
-<span class="sourceLineNo">159</span> trustedChannelResolverField.setAccessible(true);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> Field fallbackToSimpleAuthField =<a name="line.160"></a>
-<span class="sourceLineNo">161</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.161"></a>
-<span class="sourceLineNo">162</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.162"></a>
-<span class="sourceLineNo">163</span> return new SaslAdaptor() {<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> @Override<a name="line.165"></a>
-<span class="sourceLineNo">166</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span> try {<a name="line.167"></a>
-<span class="sourceLineNo">168</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.168"></a>
-<span class="sourceLineNo">169</span> } catch (IllegalAccessException e) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> throw new RuntimeException(e);<a name="line.170"></a>
-<span class="sourceLineNo">171</span> }<a name="line.171"></a>
-<span class="sourceLineNo">172</span> }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span> @Override<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> try {<a name="line.176"></a>
-<span class="sourceLineNo">177</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> } catch (IllegalAccessException e) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span> throw new RuntimeException(e);<a name="line.179"></a>
-<span class="sourceLineNo">180</span> }<a name="line.180"></a>
-<span class="sourceLineNo">181</span> }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span> @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span> try {<a name="line.185"></a>
-<span class="sourceLineNo">186</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.186"></a>
-<span class="sourceLineNo">187</span> } catch (IllegalAccessException e) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> throw new RuntimeException(e);<a name="line.188"></a>
-<span class="sourceLineNo">189</span> }<a name="line.189"></a>
-<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span> };<a name="line.191"></a>
-<span class="sourceLineNo">192</span> }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.194"></a>
-<span class="sourceLineNo">195</span> Class<?> helperClass;<a name="line.195"></a>
-<span class="sourceLineNo">196</span> try {<a name="line.196"></a>
-<span class="sourceLineNo">197</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.197"></a>
-<span class="sourceLineNo">198</span> } catch (ClassNotFoundException e) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.199"></a>
-<span class="sourceLineNo">200</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.200"></a>
-<span class="sourceLineNo">201</span> }<a name="line.201"></a>
-<span class="sourceLineNo">202</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> Method convertCipherOptionProtosMethod =<a name="line.203"></a>
-<span class="sourceLineNo">204</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.204"></a>
-<span class="sourceLineNo">205</span> return new PBHelper() {<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span> @SuppressWarnings("unchecked")<a name="line.207"></a>
-<span class="sourceLineNo">208</span> @Override<a name="line.208"></a>
-<span class="sourceLineNo">209</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span> try {<a name="line.210"></a>
-<span class="sourceLineNo">211</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span> throw new RuntimeException(e);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> }<a name="line.214"></a>
-<span class="sourceLineNo">215</span> }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> @SuppressWarnings("unchecked")<a name="line.217"></a>
-<span class="sourceLineNo">218</span> @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span> try {<a name="line.220"></a>
-<span class="sourceLineNo">221</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.221"></a>
-<span class="sourceLineNo">222</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span> throw new RuntimeException(e);<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span> }<a name="line.225"></a>
-<span class="sourceLineNo">226</span> };<a name="line.226"></a>
-<span class="sourceLineNo">227</span> }<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.229"></a>
-<span class="sourceLineNo">230</span> throws NoSuchMethodException {<a name="line.230"></a>
-<span class="sourceLineNo">231</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.231"></a>
-<span class="sourceLineNo">232</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.232"></a>
-<span class="sourceLineNo">233</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span> return new TransparentCryptoHelper() {<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span> @Override<a name="line.236"></a>
-<span class="sourceLineNo">237</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.237"></a>
-<span class="sourceLineNo">238</span> DFSClient client) throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span> try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> KeyVersion decryptedKey =<a name="line.240"></a>
-<span class="sourceLineNo">241</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.241"></a>
-<span class="sourceLineNo">242</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.242"></a>
-<span class="sourceLineNo">243</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.243"></a>
-<span class="sourceLineNo">244</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.244"></a>
-<span class="sourceLineNo">245</span> return encryptor;<a name="line.245"></a>
-<span class="sourceLineNo">246</span> } catch (InvocationTargetException e) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.247"></a>
-<span class="sourceLineNo">248</span> throw new RuntimeException(e.getTargetException());<a name="line.248"></a>
-<span class="sourceLineNo">249</span> } catch (GeneralSecurityException e) {<a name="line.249"></a>
-<span class="sourceLineNo">250</span> throw new IOException(e);<a name="line.250"></a>
-<span class="sourceLineNo">251</span> } catch (IllegalAccessException e) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> throw new RuntimeException(e);<a name="line.252"></a>
-<span class="sourceLineNo">253</span> }<a name="line.253"></a>
-<span class="sourceLineNo">254</span> }<a name="line.254"></a>
-<span class="sourceLineNo">255</span> };<a name="line.255"></a>
-<span class="sourceLineNo">256</span> }<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span> static {<a name="line.258"></a>
-<span class="sourceLineNo">259</span> try {<a name="line.259"></a>
-<span class="sourceLineNo">260</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.260"></a>
-<span class="sourceLineNo">261</span> PB_HELPER = createPBHelper();<a name="line.261"></a>
-<span class="sourceLineNo">262</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.262"></a>
-<span class="sourceLineNo">263</span> } catch (Exception e) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.264"></a>
-<span class="sourceLineNo">265</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.265"></a>
-<span class="sourceLineNo">266</span> + "HBASE-16110 for more information.";<a name="line.266"></a>
-<span class="sourceLineNo">267</span> LOG.error(msg, e);<a name="line.267"></a>
-<span class="sourceLineNo">268</span> throw new Error(msg, e);<a name="line.268"></a>
-<span class="sourceLineNo">269</span> }<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span> /**<a name="line.272"></a>
-<span class="sourceLineNo">273</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.273"></a>
-<span class="sourceLineNo">274</span> */<a name="line.274"></a>
-<span class="sourceLineNo">275</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span> private final char[] password;<a name="line.277"></a>
-<span class="sourceLineNo">278</span> private final String userName;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span> /**<a name="line.280"></a>
-<span class="sourceLineNo">281</span> * Creates a new SaslClientCallbackHandler.<a name="line.281"></a>
-<span class="sourceLineNo">282</span> * @param userName SASL user name<a name="line.282"></a>
-<span class="sourceLineNo">283</span> * @Param password SASL password<a name="line.283"></a>
-<span class="sourceLineNo">284</span> */<a name="line.284"></a>
-<span class="sourceLineNo">285</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span> this.password = password;<a name="line.286"></a>
-<span class="sourceLineNo">287</span> this.userName = userName;<a name="line.287"></a>
-<span class="sourceLineNo">288</span> }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span> @Override<a name="line.290"></a>
-<span class="sourceLineNo">291</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.291"></a>
-<span class="sourceLineNo">292</span> NameCallback nc = null;<a name="line.292"></a>
-<span class="sourceLineNo">293</span> PasswordCallback pc = null;<a name="line.293"></a>
-<span class="sourceLineNo">294</span> RealmCallback rc = null;<a name="line.294"></a>
-<span class="sourceLineNo">295</span> for (Callback callback : callbacks) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span> if (callback instanceof RealmChoiceCallback) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span> continue;<a name="line.297"></a>
-<span class="sourceLineNo">298</span> } else if (callback instanceof NameCallback) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span> nc = (NameCallback) callback;<a name="line.299"></a>
-<span class="sourceLineNo">300</span> } else if (callback instanceof PasswordCallback) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span> pc = (PasswordCallback) callback;<a name="line.301"></a>
-<span class="sourceLineNo">302</span> } else if (callback instanceof RealmCallback) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span> rc = (RealmCallback) callback;<a name="line.303"></a>
-<span class="sourceLineNo">304</span> } else {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span> }<a name="line.307"></a>
-<span class="sourceLineNo">308</span> if (nc != null) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span> nc.setName(userName);<a name="line.309"></a>
-<span class="sourceLineNo">310</span> }<a name="line.310"></a>
-<span class="sourceLineNo">311</span> if (pc != null) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> pc.setPassword(password);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span> if (rc != null) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span> rc.setText(rc.getDefaultText());<a name="line.315"></a>
-<span class="sourceLineNo">316</span> }<a name="line.316"></a>
-<span class="sourceLineNo">317</span> }<a name="line.317"></a>
-<span class="sourceLineNo">318</span> }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span> private final Configuration conf;<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span> private final Map<String, String> saslProps;<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span> private final SaslClient saslClient;<a name="line.326"></a>
+<span class="sourceLineNo">139</span> private static final PBHelper PB_HELPER;<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span> private interface TransparentCryptoHelper {<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo, DFSClient client)<a name="line.143"></a>
+<span class="sourceLineNo">144</span> throws IOException;<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span> private static final TransparentCryptoHelper TRANSPARENT_CRYPTO_HELPER;<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span> private static SaslAdaptor createSaslAdaptor()<a name="line.149"></a>
+<span class="sourceLineNo">150</span> throws NoSuchFieldException, NoSuchMethodException {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Field saslPropsResolverField =<a name="line.151"></a>
+<span class="sourceLineNo">152</span> SaslDataTransferClient.class.getDeclaredField("saslPropsResolver");<a name="line.152"></a>
+<span class="sourceLineNo">153</span> saslPropsResolverField.setAccessible(true);<a name="line.153"></a>
+<span class="sourceLineNo">154</span> Field trustedChannelResolverField =<a name="line.154"></a>
+<span class="sourceLineNo">155</span> SaslDataTransferClient.class.getDeclaredField("trustedChannelResolver");<a name="line.155"></a>
+<span class="sourceLineNo">156</span> trustedChannelResolverField.setAccessible(true);<a name="line.156"></a>
+<span class="sourceLineNo">157</span> Field fallbackToSimpleAuthField =<a name="line.157"></a>
+<span class="sourceLineNo">158</span> SaslDataTransferClient.class.getDeclaredField("fallbackToSimpleAuth");<a name="line.158"></a>
+<span class="sourceLineNo">159</span> fallbackToSimpleAuthField.setAccessible(true);<a name="line.159"></a>
+<span class="sourceLineNo">160</span> return new SaslAdaptor() {<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span> @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span> public TrustedChannelResolver getTrustedChannelResolver(SaslDataTransferClient saslClient) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span> try {<a name="line.164"></a>
+<span class="sourceLineNo">165</span> return (TrustedChannelResolver) trustedChannelResolverField.get(saslClient);<a name="line.165"></a>
+<span class="sourceLineNo">166</span> } catch (IllegalAccessException e) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span> throw new RuntimeException(e);<a name="line.167"></a>
+<span class="sourceLineNo">168</span> }<a name="line.168"></a>
+<span class="sourceLineNo">169</span> }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span> @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span> public SaslPropertiesResolver getSaslPropsResolver(SaslDataTransferClient saslClient) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span> try {<a name="line.173"></a>
+<span class="sourceLineNo">174</span> return (SaslPropertiesResolver) saslPropsResolverField.get(saslClient);<a name="line.174"></a>
+<span class="sourceLineNo">175</span> } catch (IllegalAccessException e) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span> throw new RuntimeException(e);<a name="line.176"></a>
+<span class="sourceLineNo">177</span> }<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span> @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span> public AtomicBoolean getFallbackToSimpleAuth(SaslDataTransferClient saslClient) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span> try {<a name="line.182"></a>
+<span class="sourceLineNo">183</span> return (AtomicBoolean) fallbackToSimpleAuthField.get(saslClient);<a name="line.183"></a>
+<span class="sourceLineNo">184</span> } catch (IllegalAccessException e) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span> throw new RuntimeException(e);<a name="line.185"></a>
+<span class="sourceLineNo">186</span> }<a name="line.186"></a>
+<span class="sourceLineNo">187</span> }<a name="line.187"></a>
+<span class="sourceLineNo">188</span> };<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> private static PBHelper createPBHelper() throws NoSuchMethodException {<a name="line.191"></a>
+<span class="sourceLineNo">192</span> Class<?> helperClass;<a name="line.192"></a>
+<span class="sourceLineNo">193</span> try {<a name="line.193"></a>
+<span class="sourceLineNo">194</span> helperClass = Class.forName("org.apache.hadoop.hdfs.protocolPB.PBHelperClient");<a name="line.194"></a>
+<span class="sourceLineNo">195</span> } catch (ClassNotFoundException e) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span> LOG.debug("No PBHelperClient class found, should be hadoop 2.7-", e);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> helperClass = org.apache.hadoop.hdfs.protocolPB.PBHelper.class;<a name="line.197"></a>
+<span class="sourceLineNo">198</span> }<a name="line.198"></a>
+<span class="sourceLineNo">199</span> Method convertCipherOptionsMethod = helperClass.getMethod("convertCipherOptions", List.class);<a name="line.199"></a>
+<span class="sourceLineNo">200</span> Method convertCipherOptionProtosMethod =<a name="line.200"></a>
+<span class="sourceLineNo">201</span> helperClass.getMethod("convertCipherOptionProtos", List.class);<a name="line.201"></a>
+<span class="sourceLineNo">202</span> return new PBHelper() {<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span> @SuppressWarnings("unchecked")<a name="line.204"></a>
+<span class="sourceLineNo">205</span> @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span> public List<CipherOptionProto> convertCipherOptions(List<CipherOption> options) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> try {<a name="line.207"></a>
+<span class="sourceLineNo">208</span> return (List<CipherOptionProto>) convertCipherOptionsMethod.invoke(null, options);<a name="line.208"></a>
+<span class="sourceLineNo">209</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span> throw new RuntimeException(e);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> }<a name="line.211"></a>
+<span class="sourceLineNo">212</span> }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span> @SuppressWarnings("unchecked")<a name="line.214"></a>
+<span class="sourceLineNo">215</span> @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span> public List<CipherOption> convertCipherOptionProtos(List<CipherOptionProto> options) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> try {<a name="line.217"></a>
+<span class="sourceLineNo">218</span> return (List<CipherOption>) convertCipherOptionProtosMethod.invoke(null, options);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span> throw new RuntimeException(e);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> };<a name="line.223"></a>
+<span class="sourceLineNo">224</span> }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span> private static TransparentCryptoHelper createTransparentCryptoHelper27()<a name="line.226"></a>
+<span class="sourceLineNo">227</span> throws NoSuchMethodException {<a name="line.227"></a>
+<span class="sourceLineNo">228</span> Method decryptEncryptedDataEncryptionKeyMethod = DFSClient.class<a name="line.228"></a>
+<span class="sourceLineNo">229</span> .getDeclaredMethod("decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> return new TransparentCryptoHelper() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.234"></a>
+<span class="sourceLineNo">235</span> DFSClient client) throws IOException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span> try {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> KeyVersion decryptedKey =<a name="line.237"></a>
+<span class="sourceLineNo">238</span> (KeyVersion) decryptEncryptedDataEncryptionKeyMethod.invoke(client, feInfo);<a name="line.238"></a>
+<span class="sourceLineNo">239</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.239"></a>
+<span class="sourceLineNo">240</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.241"></a>
+<span class="sourceLineNo">242</span> return encryptor;<a name="line.242"></a>
+<span class="sourceLineNo">243</span> } catch (InvocationTargetException e) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.244"></a>
+<span class="sourceLineNo">245</span> throw new RuntimeException(e.getTargetException());<a name="line.245"></a>
+<span class="sourceLineNo">246</span> } catch (GeneralSecurityException e) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> throw new IOException(e);<a name="line.247"></a>
+<span class="sourceLineNo">248</span> } catch (IllegalAccessException e) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span> throw new RuntimeException(e);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span> }<a name="line.251"></a>
+<span class="sourceLineNo">252</span> };<a name="line.252"></a>
+<span class="sourceLineNo">253</span> }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span> private static TransparentCryptoHelper createTransparentCryptoHelper28()<a name="line.255"></a>
+<span class="sourceLineNo">256</span> throws ClassNotFoundException, NoSuchMethodException {<a name="line.256"></a>
+<span class="sourceLineNo">257</span> Class<?> hdfsKMSUtilCls = Class.forName("org.apache.hadoop.hdfs.HdfsKMSUtil");<a name="line.257"></a>
+<span class="sourceLineNo">258</span> Method decryptEncryptedDataEncryptionKeyMethod = hdfsKMSUtilCls.getDeclaredMethod(<a name="line.258"></a>
+<span class="sourceLineNo">259</span> "decryptEncryptedDataEncryptionKey", FileEncryptionInfo.class, KeyProvider.class);<a name="line.259"></a>
+<span class="sourceLineNo">260</span> decryptEncryptedDataEncryptionKeyMethod.setAccessible(true);<a name="line.260"></a>
+<span class="sourceLineNo">261</span> return new TransparentCryptoHelper() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span> @Override<a name="line.263"></a>
+<span class="sourceLineNo">264</span> public Encryptor createEncryptor(Configuration conf, FileEncryptionInfo feInfo,<a name="line.264"></a>
+<span class="sourceLineNo">265</span> DFSClient client) throws IOException {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> try {<a name="line.266"></a>
+<span class="sourceLineNo">267</span> KeyVersion decryptedKey = (KeyVersion) decryptEncryptedDataEncryptionKeyMethod<a name="line.267"></a>
+<span class="sourceLineNo">268</span> .invoke(null, feInfo, client.getKeyProvider());<a name="line.268"></a>
+<span class="sourceLineNo">269</span> CryptoCodec cryptoCodec = CryptoCodec.getInstance(conf, feInfo.getCipherSuite());<a name="line.269"></a>
+<span class="sourceLineNo">270</span> Encryptor encryptor = cryptoCodec.createEncryptor();<a name="line.270"></a>
+<span class="sourceLineNo">271</span> encryptor.init(decryptedKey.getMaterial(), feInfo.getIV());<a name="line.271"></a>
+<span class="sourceLineNo">272</span> return encryptor;<a name="line.272"></a>
+<span class="sourceLineNo">273</span> } catch (InvocationTargetException e) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Throwables.propagateIfPossible(e.getTargetException(), IOException.class);<a name="line.274"></a>
+<span class="sourceLineNo">275</span> throw new RuntimeException(e.getTargetException());<a name="line.275"></a>
+<span class="sourceLineNo">276</span> } catch (GeneralSecurityException e) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> throw new IOException(e);<a name="line.277"></a>
+<span class="sourceLineNo">278</span> } catch (IllegalAccessException e) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> throw new RuntimeException(e);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> }<a name="line.280"></a>
+<span class="sourceLineNo">281</span> }<a name="line.281"></a>
+<span class="sourceLineNo">282</span> };<a name="line.282"></a>
+<span class="sourceLineNo">283</span> }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> private static TransparentCryptoHelper createTransparentCryptoHelper()<a name="line.285"></a>
+<span class="sourceLineNo">286</span> throws NoSuchMethodException, ClassNotFoundException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> try {<a name="line.287"></a>
+<span class="sourceLineNo">288</span> return createTransparentCryptoHelper27();<a name="line.288"></a>
+<span class="sourceLineNo">289</span> } catch (NoSuchMethodException e) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> LOG.debug("No decryptEncryptedDataEncryptionKey method in DFSClient, should be hadoop 2.8+",<a name="line.290"></a>
+<span class="sourceLineNo">291</span> e);<a name="line.291"></a>
+<span class="sourceLineNo">292</span> }<a name="line.292"></a>
+<span class="sourceLineNo">293</span> return createTransparentCryptoHelper28();<a name="line.293"></a>
+<span class="sourceLineNo">294</span> }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span> static {<a name="line.296"></a>
+<span class="sourceLineNo">297</span> try {<a name="line.297"></a>
+<span class="sourceLineNo">298</span> SASL_ADAPTOR = createSaslAdaptor();<a name="line.298"></a>
+<span class="sourceLineNo">299</span> PB_HELPER = createPBHelper();<a name="line.299"></a>
+<span class="sourceLineNo">300</span> TRANSPARENT_CRYPTO_HELPER = createTransparentCryptoHelper();<a name="line.300"></a>
+<span class="sourceLineNo">301</span> } catch (Exception e) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span> String msg = "Couldn't properly initialize access to HDFS internals. Please "<a name="line.302"></a>
+<span class="sourceLineNo">303</span> + "update your WAL Provider to not make use of the 'asyncfs' provider. See "<a name="line.303"></a>
+<span class="sourceLineNo">304</span> + "HBASE-16110 for more information.";<a name="line.304"></a>
+<span class="sourceLineNo">305</span> LOG.error(msg, e);<a name="line.305"></a>
+<span class="sourceLineNo">306</span> throw new Error(msg, e);<a name="line.306"></a>
+<span class="sourceLineNo">307</span> }<a name="line.307"></a>
+<span class="sourceLineNo">308</span> }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span> /**<a name="line.310"></a>
+<span class="sourceLineNo">311</span> * Sets user name and password when asked by the client-side SASL object.<a name="line.311"></a>
+<span class="sourceLineNo">312</span> */<a name="line.312"></a>
+<span class="sourceLineNo">313</span> private static final class SaslClientCallbackHandler implements CallbackHandler {<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span> private final char[] password;<a name="line.315"></a>
+<span class="sourceLineNo">316</span> private final String userName;<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span> /**<a name="line.318"></a>
+<span class="sourceLineNo">319</span> * Creates a new SaslClientCallbackHandler.<a name="line.319"></a>
+<span class="sourceLineNo">320</span> * @param userName SASL user name<a name="line.320"></a>
+<span class="sourceLineNo">321</span> * @Param password SASL password<a name="line.321"></a>
+<span class="sourceLineNo">322</span> */<a name="line.322"></a>
+<span class="sourceLineNo">323</span> public SaslClientCallbackHandler(String userName, char[] password) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span> this.password = password;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> this.userName = userName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> }<a name="line.326"></a>
<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span> private final int timeoutMs;<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span> private final Promise<Void> promise;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span> private int step = 0;<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.334"></a>
-<span class="sourceLineNo">335</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.335"></a>
-<span class="sourceLineNo">336</span> this.conf = conf;<a name="line.336"></a>
-<span class="sourceLineNo">337</span> this.saslProps = saslProps;<a name="line.337"></a>
-<span class="sourceLineNo">338</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.338"></a>
-<span class="sourceLineNo">339</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.339"></a>
-<span class="sourceLineNo">340</span> this.timeoutMs = timeoutMs;<a name="line.340"></a>
-<span class="sourceLineNo">341</span> this.promise = promise;<a name="line.341"></a>
-<span class="sourceLineNo">342</span> }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.344"></a>
-<span class="sourceLineNo">345</span> sendSaslMessage(ctx, payload, null);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.349"></a>
-<span class="sourceLineNo">350</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.350"></a>
-<span class="sourceLineNo">351</span> // values for future expansion.<a name="line.351"></a>
-<span class="sourceLineNo">352</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span> return null;<a name="line.354"></a>
-<span class="sourceLineNo">355</span> }<a name="line.355"></a>
-<span class="sourceLineNo">356</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.357"></a>
-<span class="sourceLineNo">358</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.358"></a>
-<span class="sourceLineNo">359</span> }<a name="line.359"></a>
-<span class="sourceLineNo">360</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.360"></a>
-<span class="sourceLineNo">361</span> }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.363"></a>
-<span class="sourceLineNo">364</span> List<CipherOption> options) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.365"></a>
-<span class="sourceLineNo">366</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.366"></a>
-<span class="sourceLineNo">367</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> if (payload != null) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.369"></a>
-<span class="sourceLineNo">370</span> // and we want to keep that out of hbase-server.<a name="line.370"></a>
-<span class="sourceLineNo">371</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.371"></a>
-<span class="sourceLineNo">372</span> }<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (options != null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.376"></a>
-<span class="sourceLineNo">377</span> int size = proto.getSerializedSize();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.378"></a>
-<span class="sourceLineNo">379</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.379"></a>
-<span class="sourceLineNo">380</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> ctx.write(buf);<a name="line.381"></a>
-<span class="sourceLineNo">382</span> }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span> @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.385"></a>
-<span class="sourceLineNo">386</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.386"></a>
-<span class="sourceLineNo">387</span> sendSaslMessage(ctx, new byte[0]);<a name="line.387"></a>
-<span class="sourceLineNo">388</span> ctx.flush();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> step++;<a name="line.389"></a>
-<span class="sourceLineNo">390</span> }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span> @Override<a name="line.392"></a>
-<span class="sourceLineNo">393</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.393"></a>
-<span class="sourceLineNo">394</span> saslClient.dispose();<a name="line.394"></a>
-<span class="sourceLineNo">395</span> }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.399"></a>
-<span class="sourceLineNo">400</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span> throw new IOException(proto.getMessage());<a name="line.401"></a>
-<span class="sourceLineNo">402</span> }<a name="line.402"></a>
-<span class="sourceLineNo">403</span> }<a name="line.403"></a>
-<span class="sourceLineNo">404</span><a name="line.404"></a>
-<span class="sourceLineNo">405</span> private String getNegotiatedQop() {<a name="line.405"></a>
-<span class="sourceLineNo">406</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.406"></a>
-<span class="sourceLineNo">407</span> }<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span> private boolean isNegotiatedQopPrivacy() {<a name="line.409"></a>
-<span class="sourceLineNo">410</span> String qop = getNegotiatedQop();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> return qop != null && "auth-conf".equalsIgnoreCase(qop);<a name="line.411"></a>
-<span class="sourceLineNo">412</span> }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span> private boolean requestedQopContainsPrivacy() {<a name="line.414"></a>
-<span class="sourceLineNo">415</span> Set<String> requestedQop =<a name="line.415"></a>
-<span class="sourceLineNo">416</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.416"></a>
-<span class="sourceLineNo">417</span> return requestedQop.contains("auth-conf");<a name="line.417"></a>
-<span class="sourceLineNo">418</span> }<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span> private void checkSaslComplete() throws IOException {<a name="line.420"></a>
-<span class="sourceLineNo">421</span> if (!saslClient.isComplete()) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> throw new IOException("Failed to complete SASL handshake");<a name="line.422"></a>
-<span class="sourceLineNo">423</span> }<a name="line.423"></a>
-<span class="sourceLineNo">424</span> Set<String> requestedQop =<a name="line.424"></a>
-<span class="sourceLineNo">425</span> ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));<a name="line.425"></a>
-<span class="sourceLineNo">426</span> String negotiatedQop = getNegotiatedQop();<a name="line.426"></a>
-<span class="sourceLineNo">427</span> LOG.debug(<a name="line.427"></a>
-<span class="sourceLineNo">428</span> "Verifying QOP, requested QOP = " + requestedQop + ", negotiated QOP = " + negotiatedQop);<a name="line.428"></a>
-<span class="sourceLineNo">429</span> if (!requestedQop.contains(negotiatedQop)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span> throw new IOException(String.format("SASL handshake completed, but "<a name="line.430"></a>
-<span class="sourceLineNo">431</span> + "channel does not have acceptable quality of protection, "<a name="line.431"></a>
-<span class="sourceLineNo">432</span> + "requested = %s, negotiated = %s",<a name="line.432"></a>
-<span class="sourceLineNo">433</span> requestedQop, negotiatedQop));<a name="line.433"></a>
-<span class="sourceLineNo">434</span> }<a name="line.434"></a>
-<span class="sourceLineNo">435</span> }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span> private boolean useWrap() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> String qop = (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> return qop != null && !"auth".equalsIgnoreCase(qop);<a name="line.439"></a>
-<span class="sourceLineNo">440</span> }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span> private CipherOption unwrap(CipherOption option, SaslClient saslClient) throws IOException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> byte[] inKey = option.getInKey();<a name="line.443"></a>
-<span class="sourceLineNo">444</span> if (inKey != null) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span> inKey = saslClient.unwrap(inKey, 0, inKey.length);<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> byte[] outKey = option.getOutKey();<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (outKey != null) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> outKey = saslClient.unwrap(outKey, 0, outKey.length);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> }<a name="line.450"></a>
-<span class="sourceLineNo">451</span> return new CipherOption(option.getCipherSuite(), inKey, option.getInIv(), outKey,<a name="line.451"></a>
-<span class="sourceLineNo">452</span> option.getOutIv());<a name="line.452"></a>
-<span class="sourceLineNo">453</span> }<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span> private CipherOption getCipherOption(DataTransferEncryptorMessageProto proto,<a name="line.455"></a>
-<span class="sourceLineNo">456</span> boolean isNegotiatedQopPrivacy, SaslClient saslClient) throws IOException {<a name="line.456"></a>
-<span class="sourceLineNo">457</span> List<CipherOption> cipherOptions =<a name="line.457"></a>
-<span class="sourceLineNo">458</span> PB_HELPER.convertCipherOptionProtos(proto.getCipherOptionList());<a name="line.458"></a>
-<span class="sourceLineNo">459</span> if (cipherOptions == null || cipherOptions.isEmpty()) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span> return null;<a name="line.460"></a>
+<span class="sourceLineNo">328</span> @Override<a name="line.328"></a>
+<span class="sourceLineNo">329</span> public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {<a name="line.329"></a>
+<span class="sourceLineNo">330</span> NameCallback nc = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span> PasswordCallback pc = null;<a name="line.331"></a>
+<span class="sourceLineNo">332</span> RealmCallback rc = null;<a name="line.332"></a>
+<span class="sourceLineNo">333</span> for (Callback callback : callbacks) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span> if (callback instanceof RealmChoiceCallback) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span> continue;<a name="line.335"></a>
+<span class="sourceLineNo">336</span> } else if (callback instanceof NameCallback) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span> nc = (NameCallback) callback;<a name="line.337"></a>
+<span class="sourceLineNo">338</span> } else if (callback instanceof PasswordCallback) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span> pc = (PasswordCallback) callback;<a name="line.339"></a>
+<span class="sourceLineNo">340</span> } else if (callback instanceof RealmCallback) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span> rc = (RealmCallback) callback;<a name="line.341"></a>
+<span class="sourceLineNo">342</span> } else {<a name="line.342"></a>
+<span class="sourceLineNo">343</span> throw new UnsupportedCallbackException(callback, "Unrecognized SASL client callback");<a name="line.343"></a>
+<span class="sourceLineNo">344</span> }<a name="line.344"></a>
+<span class="sourceLineNo">345</span> }<a name="line.345"></a>
+<span class="sourceLineNo">346</span> if (nc != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> nc.setName(userName);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span> if (pc != null) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span> pc.setPassword(password);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> }<a name="line.351"></a>
+<span class="sourceLineNo">352</span> if (rc != null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span> rc.setText(rc.getDefaultText());<a name="line.353"></a>
+<span class="sourceLineNo">354</span> }<a name="line.354"></a>
+<span class="sourceLineNo">355</span> }<a name="line.355"></a>
+<span class="sourceLineNo">356</span> }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span> private static final class SaslNegotiateHandler extends ChannelDuplexHandler {<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span> private final Configuration conf;<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span> private final Map<String, String> saslProps;<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span> private final SaslClient saslClient;<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span> private final int timeoutMs;<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span> private final Promise<Void> promise;<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span> private int step = 0;<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span> public SaslNegotiateHandler(Configuration conf, String username, char[] password,<a name="line.372"></a>
+<span class="sourceLineNo">373</span> Map<String, String> saslProps, int timeoutMs, Promise<Void> promise) throws SaslException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span> this.conf = conf;<a name="line.374"></a>
+<span class="sourceLineNo">375</span> this.saslProps = saslProps;<a name="line.375"></a>
+<span class="sourceLineNo">376</span> this.saslClient = Sasl.createSaslClient(new String[] { MECHANISM }, username, PROTOCOL,<a name="line.376"></a>
+<span class="sourceLineNo">377</span> SERVER_NAME, saslProps, new SaslClientCallbackHandler(username, password));<a name="line.377"></a>
+<span class="sourceLineNo">378</span> this.timeoutMs = timeoutMs;<a name="line.378"></a>
+<span class="sourceLineNo">379</span> this.promise = promise;<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload) throws IOException {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> sendSaslMessage(ctx, payload, null);<a name="line.383"></a>
+<span class="sourceLineNo">384</span> }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span> private List<CipherOption> getCipherOptions() throws IOException {<a name="line.386"></a>
+<span class="sourceLineNo">387</span> // Negotiate cipher suites if configured. Currently, the only supported<a name="line.387"></a>
+<span class="sourceLineNo">388</span> // cipher suite is AES/CTR/NoPadding, but the protocol allows multiple<a name="line.388"></a>
+<span class="sourceLineNo">389</span> // values for future expansion.<a name="line.389"></a>
+<span class="sourceLineNo">390</span> String cipherSuites = conf.get(DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY);<a name="line.390"></a>
+<span class="sourceLineNo">391</span> if (StringUtils.isBlank(cipherSuites)) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span> return null;<a name="line.392"></a>
+<span class="sourceLineNo">393</span> }<a name="line.393"></a>
+<span class="sourceLineNo">394</span> if (!cipherSuites.equals(CipherSuite.AES_CTR_NOPADDING.getName())) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span> throw new IOException(String.format("Invalid cipher suite, %s=%s",<a name="line.395"></a>
+<span class="sourceLineNo">396</span> DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY, cipherSuites));<a name="line.396"></a>
+<span class="sourceLineNo">397</span> }<a name="line.397"></a>
+<span class="sourceLineNo">398</span> return Collections.singletonList(new CipherOption(CipherSuite.AES_CTR_NOPADDING));<a name="line.398"></a>
+<span class="sourceLineNo">399</span> }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span> private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,<a name="line.401"></a>
+<span class="sourceLineNo">402</span> List<CipherOption> options) throws IOException {<a name="line.402"></a>
+<span class="sourceLineNo">403</span> DataTransferEncryptorMessageProto.Builder builder =<a name="line.403"></a>
+<span class="sourceLineNo">404</span> DataTransferEncryptorMessageProto.newBuilder();<a name="line.404"></a>
+<span class="sourceLineNo">405</span> builder.setStatus(DataTransferEncryptorStatus.SUCCESS);<a name="line.405"></a>
+<span class="sourceLineNo">406</span> if (payload != null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span> // Was ByteStringer; fix w/o using ByteStringer. Its in hbase-protocol<a name="line.407"></a>
+<span class="sourceLineNo">408</span> // and we want to keep that out of hbase-server.<a name="line.408"></a>
+<span class="sourceLineNo">409</span> builder.setPayload(ByteString.copyFrom(payload));<a name="line.409"></a>
+<span class="sourceLineNo">410</span> }<a name="line.410"></a>
+<span class="sourceLineNo">411</span> if (options != null) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span> builder.addAllCipherOption(PB_HELPER.convertCipherOptions(options));<a name="line.412"></a>
+<span class="sourceLineNo">413</span> }<a name="line.413"></a>
+<span class="sourceLineNo">414</span> DataTransferEncryptorMessageProto proto = builder.build();<a name="line.414"></a>
+<span class="sourceLineNo">415</span> int size = proto.getSerializedSize();<a name="line.415"></a>
+<span class="sourceLineNo">416</span> size += CodedOutputStream.computeRawVarint32Size(size);<a name="line.416"></a>
+<span class="sourceLineNo">417</span> ByteBuf buf = ctx.alloc().buffer(size);<a name="line.417"></a>
+<span class="sourceLineNo">418</span> proto.writeDelimitedTo(new ByteBufOutputStream(buf));<a name="line.418"></a>
+<span class="sourceLineNo">419</span> ctx.write(buf);<a name="line.419"></a>
+<span class="sourceLineNo">420</span> }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span> @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span> public void handlerAdded(ChannelHandlerContext ctx) throws Exception {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> ctx.write(ctx.alloc().buffer(4).writeInt(SASL_TRANSFER_MAGIC_NUMBER));<a name="line.424"></a>
+<span class="sourceLineNo">425</span> sendSaslMessage(ctx, new byte[0]);<a name="line.425"></a>
+<span class="sourceLineNo">426</span> ctx.flush();<a name="line.426"></a>
+<span class="sourceLineNo">427</span> step++;<a name="line.427"></a>
+<span class="sourceLineNo">428</span> }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span> @Override<a name="line.430"></a>
+<span class="sourceLineNo">431</span> public void channelInactive(ChannelHandlerContext ctx) throws Exception {<a name="line.431"></a>
+<span class="sourceLineNo">432</span> saslClient.dispose();<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span> private void check(DataTransferEncryptorMessageProto proto) throws IOException {<a name="line.435"></a>
+<span class="sourceLineNo">436</span> if (proto.getStatus() == DataTransferEncryptorStatus.ERROR_UNKNOWN_KEY) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> throw new InvalidEncryptionKeyException(proto.getMessage());<a name="line.437"></a>
+<span class="sourceLineNo">438</span> } else if (proto.getStatus() == DataTransferEncryptorStatus.ERROR) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span> throw new IOException(proto.getMessage());<a name="line.439"></a>
+<span class="sourceLineNo">440</span> }<a name="line.440"></a>
+<span class="sourceLineNo">441</span> }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span> private String getNegotiatedQop() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> return (String) saslClient.getNegotiatedProperty(Sasl.QOP);<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span> private boolean isNegotiatedQopPrivacy() {<a name=
<TRUNCATED>
[50/51] [partial] hbase-site git commit: Published site at
0f23784182ab88649de340d75804e0ff20dcd0fc.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bcb555af/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index bcdb7bd..ad73c3c 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,16 +5,16 @@
/Author (Apache HBase Team)
/Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
/Producer (Apache HBase Team)
-/ModDate (D:20180630170331+00'00')
-/CreationDate (D:20180630171914+00'00')
+/ModDate (D:20180703194659+00'00')
+/CreationDate (D:20180703200243+00'00')
>>
endobj
2 0 obj
<< /Type /Catalog
/Pages 3 0 R
/Names 28 0 R
-/Outlines 4950 0 R
-/PageLabels 5201 0 R
+/Outlines 4951 0 R
+/PageLabels 5202 0 R
/PageMode /UseOutlines
/OpenAction [7 0 R /FitH 842.89]
/ViewerPreferences << /DisplayDocTitle true
@@ -24,7 +24,7 @@ endobj
3 0 obj
<< /Type /Pages
/Count 777
-/Kids [7 0 R 12 0 R 14 0 R 16 0 R 18 0 R 20 0 R 22 0 R 24 0 R 26 0 R 46 0 R 49 0 R 52 0 R 56 0 R 63 0 R 65 0 R 69 0 R 71 0 R 73 0 R 80 0 R 83 0 R 85 0 R 91 0 R 94 0 R 96 0 R 98 0 R 105 0 R 112 0 R 117 0 R 119 0 R 135 0 R 140 0 R 148 0 R 157 0 R 165 0 R 174 0 R 185 0 R 189 0 R 191 0 R 195 0 R 204 0 R 213 0 R 221 0 R 230 0 R 235 0 R 244 0 R 252 0 R 261 0 R 274 0 R 281 0 R 291 0 R 299 0 R 307 0 R 314 0 R 322 0 R 329 0 R 335 0 R 342 0 R 350 0 R 359 0 R 368 0 R 382 0 R 389 0 R 397 0 R 404 0 R 412 0 R 421 0 R 431 0 R 439 0 R 446 0 R 455 0 R 467 0 R 477 0 R 484 0 R 491 0 R 499 0 R 508 0 R 516 0 R 521 0 R 525 0 R 530 0 R 534 0 R 550 0 R 561 0 R 565 0 R 580 0 R 585 0 R 590 0 R 592 0 R 594 0 R 597 0 R 599 0 R 601 0 R 609 0 R 615 0 R 618 0 R 622 0 R 631 0 R 642 0 R 650 0 R 654 0 R 658 0 R 660 0 R 670 0 R 685 0 R 692 0 R 703 0 R 713 0 R 724 0 R 736 0 R 756 0 R 766 0 R 773 0 R 777 0 R 783 0 R 786 0 R 790 0 R 794 0 R 797 0 R 800 0 R 802 0 R 805 0 R 809 0 R 811 0 R 815 0 R 821 0 R 826 0 R 830 0 R
833 0 R 839 0 R 841 0 R 845 0 R 853 0 R 855 0 R 858 0 R 861 0 R 864 0 R 867 0 R 881 0 R 889 0 R 900 0 R 911 0 R 917 0 R 927 0 R 938 0 R 941 0 R 945 0 R 948 0 R 953 0 R 962 0 R 970 0 R 974 0 R 978 0 R 983 0 R 987 0 R 989 0 R 1005 0 R 1016 0 R 1021 0 R 1028 0 R 1031 0 R 1039 0 R 1047 0 R 1052 0 R 1057 0 R 1062 0 R 1064 0 R 1066 0 R 1068 0 R 1078 0 R 1086 0 R 1090 0 R 1097 0 R 1104 0 R 1112 0 R 1116 0 R 1122 0 R 1127 0 R 1135 0 R 1139 0 R 1144 0 R 1146 0 R 1152 0 R 1160 0 R 1166 0 R 1173 0 R 1184 0 R 1188 0 R 1190 0 R 1192 0 R 1196 0 R 1199 0 R 1204 0 R 1207 0 R 1219 0 R 1223 0 R 1229 0 R 1237 0 R 1242 0 R 1246 0 R 1250 0 R 1252 0 R 1255 0 R 1258 0 R 1261 0 R 1265 0 R 1269 0 R 1273 0 R 1278 0 R 1282 0 R 1285 0 R 1287 0 R 1297 0 R 1300 0 R 1308 0 R 1317 0 R 1323 0 R 1327 0 R 1329 0 R 1340 0 R 1343 0 R 1349 0 R 1357 0 R 1360 0 R 1367 0 R 1374 0 R 1377 0 R 1379 0 R 1388 0 R 1390 0 R 1392 0 R 1395 0 R 1397 0 R 1399 0 R 1401 0 R 1403 0 R 1406 0 R 1410 0 R 1415 0 R 1417 0 R 1419 0 R 1421 0 R
1426 0 R 1433 0 R 1439 0 R 1442 0 R 1444 0 R 1447 0 R 1451 0 R 1455 0 R 1458 0 R 1460 0 R 1462 0 R 1465 0 R 1470 0 R 1476 0 R 1484 0 R 1498 0 R 1512 0 R 1515 0 R 1520 0 R 1533 0 R 1538 0 R 1553 0 R 1561 0 R 1565 0 R 1574 0 R 1589 0 R 1603 0 R 1611 0 R 1616 0 R 1627 0 R 1632 0 R 1638 0 R 1644 0 R 1656 0 R 1659 0 R 1668 0 R 1671 0 R 1680 0 R 1686 0 R 1690 0 R 1702 0 R 1707 0 R 1713 0 R 1715 0 R 1722 0 R 1730 0 R 1738 0 R 1742 0 R 1744 0 R 1746 0 R 1758 0 R 1764 0 R 1773 0 R 1779 0 R 1792 0 R 1798 0 R 1804 0 R 1815 0 R 1821 0 R 1826 0 R 1831 0 R 1834 0 R 1837 0 R 1842 0 R 1847 0 R 1854 0 R 1858 0 R 1863 0 R 1872 0 R 1877 0 R 1882 0 R 1884 0 R 1893 0 R 1900 0 R 1906 0 R 1911 0 R 1915 0 R 1919 0 R 1924 0 R 1929 0 R 1935 0 R 1937 0 R 1939 0 R 1942 0 R 1953 0 R 1956 0 R 1963 0 R 1971 0 R 1976 0 R 1980 0 R 1985 0 R 1987 0 R 1990 0 R 1995 0 R 1998 0 R 2000 0 R 2003 0 R 2006 0 R 2009 0 R 2019 0 R 2024 0 R 2029 0 R 2031 0 R 2039 0 R 2046 0 R 2053 0 R 2059 0 R 2064 0 R 2066 0 R 2075 0 R 2085 0
R 2095 0 R 2101 0 R 2108 0 R 2110 0 R 2115 0 R 2117 0 R 2119 0 R 2123 0 R 2126 0 R 2129 0 R 2134 0 R 2138 0 R 2149 0 R 2152 0 R 2155 0 R 2159 0 R 2163 0 R 2166 0 R 2168 0 R 2173 0 R 2176 0 R 2178 0 R 2183 0 R 2193 0 R 2195 0 R 2197 0 R 2199 0 R 2201 0 R 2204 0 R 2206 0 R 2208 0 R 2211 0 R 2213 0 R 2215 0 R 2219 0 R 2224 0 R 2233 0 R 2235 0 R 2237 0 R 2243 0 R 2245 0 R 2250 0 R 2252 0 R 2254 0 R 2261 0 R 2266 0 R 2270 0 R 2275 0 R 2279 0 R 2281 0 R 2283 0 R 2287 0 R 2290 0 R 2292 0 R 2294 0 R 2298 0 R 2300 0 R 2303 0 R 2305 0 R 2307 0 R 2309 0 R 2316 0 R 2319 0 R 2324 0 R 2326 0 R 2328 0 R 2330 0 R 2332 0 R 2340 0 R 2351 0 R 2365 0 R 2376 0 R 2380 0 R 2385 0 R 2389 0 R 2392 0 R 2397 0 R 2403 0 R 2405 0 R 2408 0 R 2410 0 R 2412 0 R 2414 0 R 2419 0 R 2421 0 R 2434 0 R 2437 0 R 2445 0 R 2451 0 R 2463 0 R 2477 0 R 2490 0 R 2509 0 R 2511 0 R 2513 0 R 2517 0 R 2535 0 R 2541 0 R 2553 0 R 2557 0 R 2561 0 R 2570 0 R 2582 0 R 2587 0 R 2597 0 R 2610 0 R 2629 0 R 2638 0 R 2641 0 R 2650 0 R 2667
0 R 2674 0 R 2677 0 R 2682 0 R 2686 0 R 2689 0 R 2698 0 R 2707 0 R 2710 0 R 2712 0 R 2716 0 R 2730 0 R 2739 0 R 2744 0 R 2748 0 R 2751 0 R 2753 0 R 2755 0 R 2757 0 R 2762 0 R 2775 0 R 2785 0 R 2793 0 R 2799 0 R 2804 0 R 2815 0 R 2822 0 R 2828 0 R 2830 0 R 2839 0 R 2847 0 R 2849 0 R 2857 0 R 2865 0 R 2867 0 R 2876 0 R 2879 0 R 2889 0 R 2893 0 R 2902 0 R 2910 0 R 2915 0 R 2919 0 R 2923 0 R 2925 0 R 2931 0 R 2935 0 R 2939 0 R 2945 0 R 2951 0 R 2954 0 R 2960 0 R 2964 0 R 2973 0 R 2978 0 R 2984 0 R 2994 0 R 3001 0 R 3008 0 R 3011 0 R 3014 0 R 3021 0 R 3026 0 R 3029 0 R 3034 0 R 3044 0 R 3049 0 R 3051 0 R 3055 0 R 3062 0 R 3065 0 R 3076 0 R 3079 0 R 3086 0 R 3094 0 R 3100 0 R 3105 0 R 3114 0 R 3119 0 R 3123 0 R 3131 0 R 3136 0 R 3140 0 R 3142 0 R 3153 0 R 3158 0 R 3161 0 R 3163 0 R 3165 0 R 3175 0 R 3182 0 R 3186 0 R 3189 0 R 3196 0 R 3200 0 R 3203 0 R 3207 0 R 3212 0 R 3220 0 R 3225 0 R 3230 0 R 3235 0 R 3237 0 R 3240 0 R 3242 0 R 3246 0 R 3257 0 R 3259 0 R 3263 0 R 3266 0 R 3270 0 R 32
73 0 R 3277 0 R 3279 0 R 3292 0 R 3297 0 R 3302 0 R 3308 0 R 3316 0 R 3318 0 R 3326 0 R 3344 0 R 3356 0 R 3362 0 R 3378 0 R 3382 0 R 3387 0 R 3389 0 R 3396 0 R 3399 0 R 3404 0 R 3407 0 R 3409 0 R 3411 0 R 3413 0 R 3416 0 R 3434 0 R 3437 0 R 3442 0 R 3448 0 R 3458 0 R 3463 0 R 3473 0 R 3483 0 R 3491 0 R 3496 0 R 3502 0 R 3507 0 R 3510 0 R 3518 0 R 3522 0 R 3527 0 R 3532 0 R 3545 0 R 3548 0 R 3554 0 R 3560 0 R 3565 0 R 3574 0 R 3583 0 R 3589 0 R 3598 0 R 3607 0 R 3612 0 R 3618 0 R 3624 0 R 3628 0 R 3630 0 R 3636 0 R 3643 0 R 3645 0 R 3652 0 R 3654 0 R 3661 0 R 3669 0 R 3675 0 R 3684 0 R 3690 0 R 3701 0 R 3710 0 R 3722 0 R 3735 0 R 3738 0 R 3740 0 R 3744 0 R 3757 0 R 3763 0 R 3768 0 R 3774 0 R 3778 0 R 3781 0 R 3786 0 R 3788 0 R 3792 0 R 3794 0 R 3798 0 R 3801 0 R 3804 0 R 3812 0 R 3814 0 R 3820 0 R 3823 0 R 3829 0 R 3833 0 R 3836 0 R 3839 0 R 3842 0 R 3846 0 R 3849 0 R 3854 0 R 3859 0 R 3862 0 R 3870 0 R 3874 0 R 3878 0 R 3880 0 R 3883 0 R 3886 0 R 3891 0 R 3898 0 R 3904 0 R 3908 0 R
3911 0 R 3918 0 R 3926 0 R 3930 0 R 3933 0 R 3935 0 R 3939 0 R 3944 0 R 3949 0 R 3952 0 R 3961 0 R 3966 0 R 3970 0 R 3973 0 R 3981 0 R 3986 0 R 3994 0 R 3999 0 R 4001 0 R 4007 0 R 4009 0 R 4014 0 R 4018 0 R 4023 0 R 4027 0 R 4039 0 R 4055 0 R 4070 0 R 4075 0 R 4078 0 R 4081 0 R 4087 0 R 4092 0 R 4094 0 R 4096 0 R 4098 0 R 4100 0 R 4102 0 R 4111 0 R 4115 0 R 4119 0 R 4123 0 R 4125 0 R 4132 0 R 4142 0 R 4151 0 R 4154 0 R 4157 0 R 4159 0 R 4166 0 R 4173 0 R 4183 0 R 4187 0 R 4190 0 R 4194 0 R 4197 0 R 4203 0 R 4206 0 R 4221 0 R 4226 0 R 4249 0 R 4253 0 R 4260 0 R 4271 0 R 4280 0 R 4283 0 R 4286 0 R 4289 0 R 4305 0 R 4310 0 R 4317 0 R 4320 0 R 4323 0 R 4330 0 R 4335 0 R 4339 0 R 4341 0 R 4348 0 R 4355 0 R 4363 0 R 4367 0 R 4372 0 R 4377 0 R 4383 0 R 4390 0 R 4397 0 R 4403 0 R 4411 0 R 4419 0 R 4423 0 R 4432 0 R 4441 0 R 4447 0 R]
+/Kids [7 0 R 12 0 R 14 0 R 16 0 R 18 0 R 20 0 R 22 0 R 24 0 R 26 0 R 46 0 R 49 0 R 52 0 R 56 0 R 63 0 R 65 0 R 69 0 R 71 0 R 73 0 R 80 0 R 83 0 R 85 0 R 91 0 R 94 0 R 96 0 R 98 0 R 105 0 R 112 0 R 117 0 R 119 0 R 135 0 R 140 0 R 148 0 R 157 0 R 165 0 R 174 0 R 185 0 R 189 0 R 191 0 R 195 0 R 204 0 R 213 0 R 221 0 R 230 0 R 235 0 R 244 0 R 252 0 R 261 0 R 274 0 R 281 0 R 291 0 R 299 0 R 307 0 R 314 0 R 322 0 R 329 0 R 335 0 R 342 0 R 350 0 R 359 0 R 368 0 R 382 0 R 389 0 R 397 0 R 404 0 R 412 0 R 421 0 R 431 0 R 439 0 R 446 0 R 455 0 R 467 0 R 477 0 R 484 0 R 491 0 R 499 0 R 508 0 R 516 0 R 521 0 R 525 0 R 530 0 R 534 0 R 550 0 R 561 0 R 565 0 R 580 0 R 585 0 R 590 0 R 592 0 R 594 0 R 597 0 R 599 0 R 601 0 R 609 0 R 615 0 R 618 0 R 622 0 R 631 0 R 642 0 R 650 0 R 654 0 R 658 0 R 660 0 R 670 0 R 685 0 R 692 0 R 703 0 R 713 0 R 724 0 R 736 0 R 756 0 R 766 0 R 773 0 R 777 0 R 783 0 R 786 0 R 790 0 R 794 0 R 797 0 R 800 0 R 802 0 R 805 0 R 809 0 R 811 0 R 815 0 R 821 0 R 826 0 R 830 0 R
833 0 R 839 0 R 841 0 R 845 0 R 853 0 R 855 0 R 858 0 R 861 0 R 864 0 R 867 0 R 881 0 R 889 0 R 900 0 R 911 0 R 917 0 R 927 0 R 938 0 R 941 0 R 945 0 R 948 0 R 953 0 R 962 0 R 970 0 R 974 0 R 978 0 R 983 0 R 987 0 R 989 0 R 1005 0 R 1016 0 R 1021 0 R 1028 0 R 1031 0 R 1039 0 R 1047 0 R 1052 0 R 1057 0 R 1062 0 R 1064 0 R 1066 0 R 1068 0 R 1078 0 R 1086 0 R 1090 0 R 1097 0 R 1104 0 R 1112 0 R 1116 0 R 1122 0 R 1127 0 R 1135 0 R 1139 0 R 1144 0 R 1146 0 R 1152 0 R 1160 0 R 1166 0 R 1173 0 R 1184 0 R 1188 0 R 1190 0 R 1192 0 R 1196 0 R 1199 0 R 1204 0 R 1207 0 R 1219 0 R 1223 0 R 1229 0 R 1237 0 R 1242 0 R 1246 0 R 1250 0 R 1252 0 R 1255 0 R 1258 0 R 1261 0 R 1265 0 R 1269 0 R 1273 0 R 1278 0 R 1282 0 R 1285 0 R 1287 0 R 1297 0 R 1300 0 R 1308 0 R 1317 0 R 1323 0 R 1327 0 R 1329 0 R 1340 0 R 1343 0 R 1349 0 R 1357 0 R 1360 0 R 1367 0 R 1374 0 R 1377 0 R 1379 0 R 1388 0 R 1390 0 R 1392 0 R 1395 0 R 1397 0 R 1399 0 R 1401 0 R 1403 0 R 1406 0 R 1410 0 R 1415 0 R 1417 0 R 1419 0 R 1421 0 R
1426 0 R 1433 0 R 1439 0 R 1442 0 R 1444 0 R 1447 0 R 1451 0 R 1455 0 R 1458 0 R 1460 0 R 1462 0 R 1465 0 R 1470 0 R 1476 0 R 1484 0 R 1498 0 R 1512 0 R 1515 0 R 1520 0 R 1533 0 R 1538 0 R 1553 0 R 1561 0 R 1565 0 R 1574 0 R 1589 0 R 1603 0 R 1611 0 R 1616 0 R 1627 0 R 1632 0 R 1638 0 R 1644 0 R 1656 0 R 1659 0 R 1668 0 R 1671 0 R 1680 0 R 1686 0 R 1690 0 R 1702 0 R 1707 0 R 1713 0 R 1715 0 R 1722 0 R 1730 0 R 1738 0 R 1742 0 R 1744 0 R 1746 0 R 1758 0 R 1764 0 R 1773 0 R 1779 0 R 1792 0 R 1798 0 R 1804 0 R 1815 0 R 1821 0 R 1826 0 R 1831 0 R 1834 0 R 1837 0 R 1842 0 R 1847 0 R 1854 0 R 1858 0 R 1863 0 R 1872 0 R 1877 0 R 1882 0 R 1884 0 R 1893 0 R 1900 0 R 1906 0 R 1912 0 R 1916 0 R 1920 0 R 1925 0 R 1930 0 R 1936 0 R 1938 0 R 1940 0 R 1943 0 R 1954 0 R 1957 0 R 1964 0 R 1972 0 R 1977 0 R 1981 0 R 1986 0 R 1988 0 R 1991 0 R 1996 0 R 1999 0 R 2001 0 R 2004 0 R 2007 0 R 2010 0 R 2020 0 R 2025 0 R 2030 0 R 2032 0 R 2040 0 R 2047 0 R 2054 0 R 2060 0 R 2065 0 R 2067 0 R 2076 0 R 2086 0
R 2096 0 R 2102 0 R 2109 0 R 2111 0 R 2116 0 R 2118 0 R 2120 0 R 2124 0 R 2127 0 R 2130 0 R 2135 0 R 2139 0 R 2150 0 R 2153 0 R 2156 0 R 2160 0 R 2164 0 R 2167 0 R 2169 0 R 2174 0 R 2177 0 R 2179 0 R 2184 0 R 2194 0 R 2196 0 R 2198 0 R 2200 0 R 2202 0 R 2205 0 R 2207 0 R 2209 0 R 2212 0 R 2214 0 R 2216 0 R 2220 0 R 2225 0 R 2234 0 R 2236 0 R 2238 0 R 2244 0 R 2246 0 R 2251 0 R 2253 0 R 2255 0 R 2262 0 R 2267 0 R 2271 0 R 2276 0 R 2280 0 R 2282 0 R 2284 0 R 2288 0 R 2291 0 R 2293 0 R 2295 0 R 2299 0 R 2301 0 R 2304 0 R 2306 0 R 2308 0 R 2310 0 R 2317 0 R 2320 0 R 2325 0 R 2327 0 R 2329 0 R 2331 0 R 2333 0 R 2341 0 R 2352 0 R 2366 0 R 2377 0 R 2381 0 R 2386 0 R 2390 0 R 2393 0 R 2398 0 R 2404 0 R 2406 0 R 2409 0 R 2411 0 R 2413 0 R 2415 0 R 2420 0 R 2422 0 R 2435 0 R 2438 0 R 2446 0 R 2452 0 R 2464 0 R 2478 0 R 2491 0 R 2510 0 R 2512 0 R 2514 0 R 2518 0 R 2536 0 R 2542 0 R 2554 0 R 2558 0 R 2562 0 R 2571 0 R 2583 0 R 2588 0 R 2598 0 R 2611 0 R 2630 0 R 2639 0 R 2642 0 R 2651 0 R 2668
0 R 2675 0 R 2678 0 R 2683 0 R 2687 0 R 2690 0 R 2699 0 R 2708 0 R 2711 0 R 2713 0 R 2717 0 R 2731 0 R 2740 0 R 2745 0 R 2749 0 R 2752 0 R 2754 0 R 2756 0 R 2758 0 R 2763 0 R 2776 0 R 2786 0 R 2794 0 R 2800 0 R 2805 0 R 2816 0 R 2823 0 R 2829 0 R 2831 0 R 2840 0 R 2848 0 R 2850 0 R 2858 0 R 2866 0 R 2868 0 R 2877 0 R 2880 0 R 2890 0 R 2894 0 R 2903 0 R 2911 0 R 2916 0 R 2920 0 R 2924 0 R 2926 0 R 2932 0 R 2936 0 R 2940 0 R 2946 0 R 2952 0 R 2955 0 R 2961 0 R 2965 0 R 2974 0 R 2979 0 R 2985 0 R 2995 0 R 3002 0 R 3009 0 R 3012 0 R 3015 0 R 3022 0 R 3027 0 R 3030 0 R 3035 0 R 3045 0 R 3050 0 R 3052 0 R 3056 0 R 3063 0 R 3066 0 R 3077 0 R 3080 0 R 3087 0 R 3095 0 R 3101 0 R 3106 0 R 3115 0 R 3120 0 R 3124 0 R 3132 0 R 3137 0 R 3141 0 R 3143 0 R 3154 0 R 3159 0 R 3162 0 R 3164 0 R 3166 0 R 3176 0 R 3183 0 R 3187 0 R 3190 0 R 3197 0 R 3201 0 R 3204 0 R 3208 0 R 3213 0 R 3221 0 R 3226 0 R 3231 0 R 3236 0 R 3238 0 R 3241 0 R 3243 0 R 3247 0 R 3258 0 R 3260 0 R 3264 0 R 3267 0 R 3271 0 R 32
74 0 R 3278 0 R 3280 0 R 3293 0 R 3298 0 R 3303 0 R 3309 0 R 3317 0 R 3319 0 R 3327 0 R 3345 0 R 3357 0 R 3363 0 R 3379 0 R 3383 0 R 3388 0 R 3390 0 R 3397 0 R 3400 0 R 3405 0 R 3408 0 R 3410 0 R 3412 0 R 3414 0 R 3417 0 R 3435 0 R 3438 0 R 3443 0 R 3449 0 R 3459 0 R 3464 0 R 3474 0 R 3484 0 R 3492 0 R 3497 0 R 3503 0 R 3508 0 R 3511 0 R 3519 0 R 3523 0 R 3528 0 R 3533 0 R 3546 0 R 3549 0 R 3555 0 R 3561 0 R 3566 0 R 3575 0 R 3584 0 R 3590 0 R 3599 0 R 3608 0 R 3613 0 R 3619 0 R 3625 0 R 3629 0 R 3631 0 R 3637 0 R 3644 0 R 3646 0 R 3653 0 R 3655 0 R 3662 0 R 3670 0 R 3676 0 R 3685 0 R 3691 0 R 3702 0 R 3711 0 R 3723 0 R 3736 0 R 3739 0 R 3741 0 R 3745 0 R 3758 0 R 3764 0 R 3769 0 R 3775 0 R 3779 0 R 3782 0 R 3787 0 R 3789 0 R 3793 0 R 3795 0 R 3799 0 R 3802 0 R 3805 0 R 3813 0 R 3815 0 R 3821 0 R 3824 0 R 3830 0 R 3834 0 R 3837 0 R 3840 0 R 3843 0 R 3847 0 R 3850 0 R 3855 0 R 3860 0 R 3863 0 R 3871 0 R 3875 0 R 3879 0 R 3881 0 R 3884 0 R 3887 0 R 3892 0 R 3899 0 R 3905 0 R 3909 0 R
3912 0 R 3919 0 R 3927 0 R 3931 0 R 3934 0 R 3936 0 R 3940 0 R 3945 0 R 3950 0 R 3953 0 R 3962 0 R 3967 0 R 3971 0 R 3974 0 R 3982 0 R 3987 0 R 3995 0 R 4000 0 R 4002 0 R 4008 0 R 4010 0 R 4015 0 R 4019 0 R 4024 0 R 4028 0 R 4040 0 R 4056 0 R 4071 0 R 4076 0 R 4079 0 R 4082 0 R 4088 0 R 4093 0 R 4095 0 R 4097 0 R 4099 0 R 4101 0 R 4103 0 R 4112 0 R 4116 0 R 4120 0 R 4124 0 R 4126 0 R 4133 0 R 4143 0 R 4152 0 R 4155 0 R 4158 0 R 4160 0 R 4167 0 R 4174 0 R 4184 0 R 4188 0 R 4191 0 R 4195 0 R 4198 0 R 4204 0 R 4207 0 R 4222 0 R 4227 0 R 4250 0 R 4254 0 R 4261 0 R 4272 0 R 4281 0 R 4284 0 R 4287 0 R 4290 0 R 4306 0 R 4311 0 R 4318 0 R 4321 0 R 4324 0 R 4331 0 R 4336 0 R 4340 0 R 4342 0 R 4349 0 R 4356 0 R 4364 0 R 4368 0 R 4373 0 R 4378 0 R 4384 0 R 4391 0 R 4398 0 R 4404 0 R 4412 0 R 4420 0 R 4424 0 R 4433 0 R 4442 0 R 4448 0 R]
>>
endobj
4 0 obj
@@ -187,11 +187,11 @@ endobj
<< /Type /Font
/BaseFont /71be00+NotoSerif
/Subtype /TrueType
-/FontDescriptor 5203 0 R
+/FontDescriptor 5204 0 R
/FirstChar 32
/LastChar 255
-/Widths 5205 0 R
-/ToUnicode 5204 0 R
+/Widths 5206 0 R
+/ToUnicode 5205 0 R
>>
endobj
11 0 obj
@@ -1750,7 +1750,7 @@ endobj
/F1.0 10 0 R
>>
>>
-/Annots [4448 0 R 4449 0 R 4450 0 R 4451 0 R 4452 0 R 4453 0 R 4454 0 R 4455 0 R 4456 0 R 4457 0 R 4458 0 R 4459 0 R 4460 0 R 4461 0 R 4462 0 R 4463 0 R 4464 0 R 4465 0 R 4466 0 R 4467 0 R 4468 0 R 4469 0 R 4470 0 R 4471 0 R 4472 0 R 4473 0 R 4474 0 R 4475 0 R 4476 0 R 4477 0 R 4478 0 R 4479 0 R 4480 0 R 4481 0 R 4482 0 R 4483 0 R 4484 0 R 4485 0 R 4486 0 R 4487 0 R 4488 0 R 4489 0 R 4490 0 R 4491 0 R 4492 0 R 4493 0 R 4494 0 R 4495 0 R 4496 0 R 4497 0 R 4498 0 R 4499 0 R 4500 0 R 4501 0 R 4502 0 R 4503 0 R 4504 0 R 4505 0 R 4506 0 R 4507 0 R 4508 0 R 4509 0 R 4510 0 R 4511 0 R 4512 0 R 4513 0 R 4514 0 R 4515 0 R 4516 0 R 4517 0 R 4518 0 R 4519 0 R 4520 0 R 4521 0 R 4522 0 R 4523 0 R]
+/Annots [4449 0 R 4450 0 R 4451 0 R 4452 0 R 4453 0 R 4454 0 R 4455 0 R 4456 0 R 4457 0 R 4458 0 R 4459 0 R 4460 0 R 4461 0 R 4462 0 R 4463 0 R 4464 0 R 4465 0 R 4466 0 R 4467 0 R 4468 0 R 4469 0 R 4470 0 R 4471 0 R 4472 0 R 4473 0 R 4474 0 R 4475 0 R 4476 0 R 4477 0 R 4478 0 R 4479 0 R 4480 0 R 4481 0 R 4482 0 R 4483 0 R 4484 0 R 4485 0 R 4486 0 R 4487 0 R 4488 0 R 4489 0 R 4490 0 R 4491 0 R 4492 0 R 4493 0 R 4494 0 R 4495 0 R 4496 0 R 4497 0 R 4498 0 R 4499 0 R 4500 0 R 4501 0 R 4502 0 R 4503 0 R 4504 0 R 4505 0 R 4506 0 R 4507 0 R 4508 0 R 4509 0 R 4510 0 R 4511 0 R 4512 0 R 4513 0 R 4514 0 R 4515 0 R 4516 0 R 4517 0 R 4518 0 R 4519 0 R 4520 0 R 4521 0 R 4522 0 R 4523 0 R 4524 0 R]
>>
endobj
13 0 obj
@@ -3417,7 +3417,7 @@ endobj
/Font << /F1.0 10 0 R
>>
>>
-/Annots [4524 0 R 4525 0 R 4526 0 R 4527 0 R 4528 0 R 4529 0 R 4530 0 R 4531 0 R 4532 0 R 4533 0 R 4534 0 R 4535 0 R 4536 0 R 4537 0 R 4538 0 R 4539 0 R 4540 0 R 4541 0 R 4542 0 R 4543 0 R 4544 0 R 4545 0 R 4546 0 R 4547 0 R 4548 0 R 4549 0 R 4550 0 R 4551 0 R 4552 0 R 4553 0 R 4554 0 R 4555 0 R 4556 0 R 4557 0 R 4558 0 R 4559 0 R 4560 0 R 4561 0 R 4562 0 R 4563 0 R 4564 0 R 4565 0 R 4566 0 R 4567 0 R 4568 0 R 4569 0 R 4570 0 R 4571 0 R 4572 0 R 4573 0 R 4574 0 R 4575 0 R 4576 0 R 4577 0 R 4578 0 R 4579 0 R 4580 0 R 4581 0 R 4582 0 R 4583 0 R 4584 0 R 4585 0 R 4586 0 R 4587 0 R 4588 0 R 4589 0 R 4590 0 R 4591 0 R 4592 0 R 4593 0 R 4594 0 R 4595 0 R 4596 0 R 4597 0 R 4598 0 R 4599 0 R 4600 0 R 4601 0 R 4602 0 R 4603 0 R 4604 0 R 4605 0 R]
+/Annots [4525 0 R 4526 0 R 4527 0 R 4528 0 R 4529 0 R 4530 0 R 4531 0 R 4532 0 R 4533 0 R 4534 0 R 4535 0 R 4536 0 R 4537 0 R 4538 0 R 4539 0 R 4540 0 R 4541 0 R 4542 0 R 4543 0 R 4544 0 R 4545 0 R 4546 0 R 4547 0 R 4548 0 R 4549 0 R 4550 0 R 4551 0 R 4552 0 R 4553 0 R 4554 0 R 4555 0 R 4556 0 R 4557 0 R 4558 0 R 4559 0 R 4560 0 R 4561 0 R 4562 0 R 4563 0 R 4564 0 R 4565 0 R 4566 0 R 4567 0 R 4568 0 R 4569 0 R 4570 0 R 4571 0 R 4572 0 R 4573 0 R 4574 0 R 4575 0 R 4576 0 R 4577 0 R 4578 0 R 4579 0 R 4580 0 R 4581 0 R 4582 0 R 4583 0 R 4584 0 R 4585 0 R 4586 0 R 4587 0 R 4588 0 R 4589 0 R 4590 0 R 4591 0 R 4592 0 R 4593 0 R 4594 0 R 4595 0 R 4596 0 R 4597 0 R 4598 0 R 4599 0 R 4600 0 R 4601 0 R 4602 0 R 4603 0 R 4604 0 R 4605 0 R 4606 0 R]
>>
endobj
15 0 obj
@@ -5084,7 +5084,7 @@ endobj
/Font << /F1.0 10 0 R
>>
>>
-/Annots [4606 0 R 4607 0 R 4608 0 R 4609 0 R 4610 0 R 4611 0 R 4612 0 R 4613 0 R 4614 0 R 4615 0 R 4616 0 R 4617 0 R 4618 0 R 4619 0 R 4620 0 R 4621 0 R 4622 0 R 4623 0 R 4624 0 R 4625 0 R 4626 0 R 4627 0 R 4628 0 R 4629 0 R 4630 0 R 4631 0 R 4632 0 R 4633 0 R 4634 0 R 4635 0 R 4636 0 R 4637 0 R 4638 0 R 4639 0 R 4640 0 R 4641 0 R 4642 0 R 4643 0 R 4644 0 R 4645 0 R 4646 0 R 4647 0 R 4648 0 R 4649 0 R 4650 0 R 4651 0 R 4652 0 R 4653 0 R 4654 0 R 4655 0 R 4656 0 R 4657 0 R 4658 0 R 4659 0 R 4660 0 R 4661 0 R 4662 0 R 4663 0 R 4664 0 R 4665 0 R 4666 0 R 4667 0 R 4668 0 R 4669 0 R 4670 0 R 4671 0 R 4672 0 R 4673 0 R 4674 0 R 4675 0 R 4676 0 R 4677 0 R 4678 0 R 4679 0 R 4680 0 R 4681 0 R 4682 0 R 4683 0 R 4684 0 R 4685 0 R 4686 0 R 4687 0 R]
+/Annots [4607 0 R 4608 0 R 4609 0 R 4610 0 R 4611 0 R 4612 0 R 4613 0 R 4614 0 R 4615 0 R 4616 0 R 4617 0 R 4618 0 R 4619 0 R 4620 0 R 4621 0 R 4622 0 R 4623 0 R 4624 0 R 4625 0 R 4626 0 R 4627 0 R 4628 0 R 4629 0 R 4630 0 R 4631 0 R 4632 0 R 4633 0 R 4634 0 R 4635 0 R 4636 0 R 4637 0 R 4638 0 R 4639 0 R 4640 0 R 4641 0 R 4642 0 R 4643 0 R 4644 0 R 4645 0 R 4646 0 R 4647 0 R 4648 0 R 4649 0 R 4650 0 R 4651 0 R 4652 0 R 4653 0 R 4654 0 R 4655 0 R 4656 0 R 4657 0 R 4658 0 R 4659 0 R 4660 0 R 4661 0 R 4662 0 R 4663 0 R 4664 0 R 4665 0 R 4666 0 R 4667 0 R 4668 0 R 4669 0 R 4670 0 R 4671 0 R 4672 0 R 4673 0 R 4674 0 R 4675 0 R 4676 0 R 4677 0 R 4678 0 R 4679 0 R 4680 0 R 4681 0 R 4682 0 R 4683 0 R 4684 0 R 4685 0 R 4686 0 R 4687 0 R 4688 0 R]
>>
endobj
17 0 obj
@@ -6751,7 +6751,7 @@ endobj
/Font << /F1.0 10 0 R
>>
>>
-/Annots [4688 0 R 4689 0 R 4690 0 R 4691 0 R 4692 0 R 4693 0 R 4694 0 R 4695 0 R 4696 0 R 4697 0 R 4698 0 R 4699 0 R 4700 0 R 4701 0 R 4702 0 R 4703 0 R 4704 0 R 4705 0 R 4706 0 R 4707 0 R 4708 0 R 4709 0 R 4710 0 R 4711 0 R 4712 0 R 4713 0 R 4714 0 R 4715 0 R 4716 0 R 4717 0 R 4718 0 R 4719 0 R 4720 0 R 4721 0 R 4722 0 R 4723 0 R 4724 0 R 4725 0 R 4726 0 R 4727 0 R 4728 0 R 4729 0 R 4730 0 R 4731 0 R 4732 0 R 4733 0 R 4734 0 R 4735 0 R 4736 0 R 4737 0 R 4738 0 R 4739 0 R 4740 0 R 4741 0 R 4742 0 R 4743 0 R 4744 0 R 4745 0 R 4746 0 R 4747 0 R 4748 0 R 4749 0 R 4750 0 R 4751 0 R 4752 0 R 4753 0 R 4754 0 R 4755 0 R 4756 0 R 4757 0 R 4758 0 R 4759 0 R 4760 0 R 4761 0 R 4762 0 R 4763 0 R 4764 0 R 4765 0 R 4766 0 R 4767 0 R 4768 0 R 4769 0 R]
+/Annots [4689 0 R 4690 0 R 4691 0 R 4692 0 R 4693 0 R 4694 0 R 4695 0 R 4696 0 R 4697 0 R 4698 0 R 4699 0 R 4700 0 R 4701 0 R 4702 0 R 4703 0 R 4704 0 R 4705 0 R 4706 0 R 4707 0 R 4708 0 R 4709 0 R 4710 0 R 4711 0 R 4712 0 R 4713 0 R 4714 0 R 4715 0 R 4716 0 R 4717 0 R 4718 0 R 4719 0 R 4720 0 R 4721 0 R 4722 0 R 4723 0 R 4724 0 R 4725 0 R 4726 0 R 4727 0 R 4728 0 R 4729 0 R 4730 0 R 4731 0 R 4732 0 R 4733 0 R 4734 0 R 4735 0 R 4736 0 R 4737 0 R 4738 0 R 4739 0 R 4740 0 R 4741 0 R 4742 0 R 4743 0 R 4744 0 R 4745 0 R 4746 0 R 4747 0 R 4748 0 R 4749 0 R 4750 0 R 4751 0 R 4752 0 R 4753 0 R 4754 0 R 4755 0 R 4756 0 R 4757 0 R 4758 0 R 4759 0 R 4760 0 R 4761 0 R 4762 0 R 4763 0 R 4764 0 R 4765 0 R 4766 0 R 4767 0 R 4768 0 R 4769 0 R 4770 0 R]
>>
endobj
19 0 obj
@@ -8429,7 +8429,7 @@ endobj
/Font << /F1.0 10 0 R
>>
>>
-/Annots [4770 0 R 4771 0 R 4772 0 R 4773 0 R 4774 0 R 4775 0 R 4776 0 R 4777 0 R 4778 0 R 4779 0 R 4780 0 R 4781 0 R 4782 0 R 4783 0 R 4784 0 R 4785 0 R 4786 0 R 4787 0 R 4788 0 R 4789 0 R 4790 0 R 4791 0 R 4792 0 R 4793 0 R 4794 0 R 4795 0 R 4796 0 R 4797 0 R 4798 0 R 4799 0 R 4800 0 R 4801 0 R 4802 0 R 4803 0 R 4804 0 R 4805 0 R 4806 0 R 4807 0 R 4808 0 R 4809 0 R 4810 0 R 4811 0 R 4812 0 R 4813 0 R 4814 0 R 4815 0 R 4816 0 R 4817 0 R 4818 0 R 4819 0 R 4820 0 R 4821 0 R 4822 0 R 4823 0 R 4824 0 R 4825 0 R 4826 0 R 4827 0 R 4828 0 R 4829 0 R 4830 0 R 4831 0 R 4832 0 R 4833 0 R 4834 0 R 4835 0 R 4836 0 R 4837 0 R 4838 0 R 4839 0 R 4840 0 R 4841 0 R 4842 0 R 4843 0 R 4844 0 R 4845 0 R 4846 0 R 4847 0 R 4848 0 R 4849 0 R 4850 0 R 4851 0 R 4852 0 R 4853 0 R]
+/Annots [4771 0 R 4772 0 R 4773 0 R 4774 0 R 4775 0 R 4776 0 R 4777 0 R 4778 0 R 4779 0 R 4780 0 R 4781 0 R 4782 0 R 4783 0 R 4784 0 R 4785 0 R 4786 0 R 4787 0 R 4788 0 R 4789 0 R 4790 0 R 4791 0 R 4792 0 R 4793 0 R 4794 0 R 4795 0 R 4796 0 R 4797 0 R 4798 0 R 4799 0 R 4800 0 R 4801 0 R 4802 0 R 4803 0 R 4804 0 R 4805 0 R 4806 0 R 4807 0 R 4808 0 R 4809 0 R 4810 0 R 4811 0 R 4812 0 R 4813 0 R 4814 0 R 4815 0 R 4816 0 R 4817 0 R 4818 0 R 4819 0 R 4820 0 R 4821 0 R 4822 0 R 4823 0 R 4824 0 R 4825 0 R 4826 0 R 4827 0 R 4828 0 R 4829 0 R 4830 0 R 4831 0 R 4832 0 R 4833 0 R 4834 0 R 4835 0 R 4836 0 R 4837 0 R 4838 0 R 4839 0 R 4840 0 R 4841 0 R 4842 0 R 4843 0 R 4844 0 R 4845 0 R 4846 0 R 4847 0 R 4848 0 R 4849 0 R 4850 0 R 4851 0 R 4852 0 R 4853 0 R 4854 0 R]
>>
endobj
21 0 obj
@@ -10107,7 +10107,7 @@ endobj
/Font << /F1.0 10 0 R
>>
>>
-/Annots [4854 0 R 4855 0 R 4856 0 R 4857 0 R 4858 0 R 4859 0 R 4860 0 R 4861 0 R 4862 0 R 4863 0 R 4864 0 R 4865 0 R 4866 0 R 4867 0 R 4868 0 R 4869 0 R 4870 0 R 4871 0 R 4872 0 R 4873 0 R 4874 0 R 4875 0 R 4876 0 R 4877 0 R 4878 0 R 4879 0 R 4880 0 R 4881 0 R 4882 0 R 4883 0 R 4884 0 R 4885 0 R 4886 0 R 4887 0 R 4888 0 R 4889 0 R 4890 0 R 4891 0 R 4892 0 R 4893 0 R 4894 0 R 4895 0 R 4896 0 R 4897 0 R 4898 0 R 4899 0 R 4900 0 R 4901 0 R 4902 0 R 4903 0 R 4904 0 R 4905 0 R 4906 0 R 4907 0 R 4908 0 R 4909 0 R 4910 0 R 4911 0 R 4912 0 R 4913 0 R 4914 0 R 4915 0 R 4916 0 R 4917 0 R 4918 0 R 4919 0 R 4920 0 R 4921 0 R 4922 0 R 4923 0 R 4924 0 R 4925 0 R 4926 0 R 4927 0 R 4928 0 R 4929 0 R 4930 0 R 4931 0 R 4932 0 R 4933 0 R 4934 0 R 4935 0 R 4936 0 R 4937 0 R]
+/Annots [4855 0 R 4856 0 R 4857 0 R 4858 0 R 4859 0 R 4860 0 R 4861 0 R 4862 0 R 4863 0 R 4864 0 R 4865 0 R 4866 0 R 4867 0 R 4868 0 R 4869 0 R 4870 0 R 4871 0 R 4872 0 R 4873 0 R 4874 0 R 4875 0 R 4876 0 R 4877 0 R 4878 0 R 4879 0 R 4880 0 R 4881 0 R 4882 0 R 4883 0 R 4884 0 R 4885 0 R 4886 0 R 4887 0 R 4888 0 R 4889 0 R 4890 0 R 4891 0 R 4892 0 R 4893 0 R 4894 0 R 4895 0 R 4896 0 R 4897 0 R 4898 0 R 4899 0 R 4900 0 R 4901 0 R 4902 0 R 4903 0 R 4904 0 R 4905 0 R 4906 0 R 4907 0 R 4908 0 R 4909 0 R 4910 0 R 4911 0 R 4912 0 R 4913 0 R 4914 0 R 4915 0 R 4916 0 R 4917 0 R 4918 0 R 4919 0 R 4920 0 R 4921 0 R 4922 0 R 4923 0 R 4924 0 R 4925 0 R 4926 0 R 4927 0 R 4928 0 R 4929 0 R 4930 0 R 4931 0 R 4932 0 R 4933 0 R 4934 0 R 4935 0 R 4936 0 R 4937 0 R 4938 0 R]
>>
endobj
23 0 obj
@@ -10334,7 +10334,7 @@ endobj
/Font << /F1.0 10 0 R
>>
>>
-/Annots [4938 0 R 4939 0 R 4940 0 R 4941 0 R 4942 0 R 4943 0 R 4944 0 R 4945 0 R 4946 0 R 4947 0 R]
+/Annots [4939 0 R 4940 0 R 4941 0 R 4942 0 R 4943 0 R 4944 0 R 4945 0 R 4946 0 R 4947 0 R 4948 0 R]
>>
endobj
25 0 obj
@@ -11146,7 +11146,7 @@ endobj
/F4.0 37 0 R
/F1.1 40 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [32 0 R 33 0 R 34 0 R 36 0 R 38 0 R 39 0 R 41 0 R 42 0 R 43 0 R]
@@ -11161,7 +11161,7 @@ endobj
>>
endobj
29 0 obj
-<< /Kids [645 0 R 3695 0 R 1946 0 R 646 0 R 4148 0 R 1176 0 R 2577 0 R 3921 0 R]
+<< /Kids [645 0 R 3696 0 R 1947 0 R 646 0 R 4149 0 R 1176 0 R 2578 0 R 3922 0 R]
>>
endobj
30 0 obj
@@ -11171,11 +11171,11 @@ endobj
<< /Type /Font
/BaseFont /309344+NotoSerif-Bold
/Subtype /TrueType
-/FontDescriptor 5207 0 R
+/FontDescriptor 5208 0 R
/FirstChar 32
/LastChar 255
-/Widths 5209 0 R
-/ToUnicode 5208 0 R
+/Widths 5210 0 R
+/ToUnicode 5209 0 R
>>
endobj
32 0 obj
@@ -11215,11 +11215,11 @@ endobj
<< /Type /Font
/BaseFont /fbe45d+NotoSerif-Italic
/Subtype /TrueType
-/FontDescriptor 5211 0 R
+/FontDescriptor 5212 0 R
/FirstChar 32
/LastChar 255
-/Widths 5213 0 R
-/ToUnicode 5212 0 R
+/Widths 5214 0 R
+/ToUnicode 5213 0 R
>>
endobj
36 0 obj
@@ -11237,11 +11237,11 @@ endobj
<< /Type /Font
/BaseFont /c7d210+mplus1mn-regular
/Subtype /TrueType
-/FontDescriptor 5215 0 R
+/FontDescriptor 5216 0 R
/FirstChar 32
/LastChar 255
-/Widths 5217 0 R
-/ToUnicode 5216 0 R
+/Widths 5218 0 R
+/ToUnicode 5217 0 R
>>
endobj
38 0 obj
@@ -11267,11 +11267,11 @@ endobj
<< /Type /Font
/BaseFont /6bc580+NotoSerif
/Subtype /TrueType
-/FontDescriptor 5219 0 R
+/FontDescriptor 5220 0 R
/FirstChar 32
/LastChar 255
-/Widths 5221 0 R
-/ToUnicode 5220 0 R
+/Widths 5222 0 R
+/ToUnicode 5221 0 R
>>
endobj
41 0 obj
@@ -11705,7 +11705,7 @@ endobj
/F5.1 47 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -11714,11 +11714,11 @@ endobj
<< /Type /Font
/BaseFont /26ec65+FontAwesome
/Subtype /TrueType
-/FontDescriptor 5223 0 R
+/FontDescriptor 5224 0 R
/FirstChar 32
/LastChar 255
-/Widths 5225 0 R
-/ToUnicode 5224 0 R
+/Widths 5226 0 R
+/ToUnicode 5225 0 R
>>
endobj
48 0 obj
@@ -11776,7 +11776,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -11861,7 +11861,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [54 0 R]
@@ -13434,7 +13434,7 @@ endobj
/F1.1 40 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [59 0 R 61 0 R]
@@ -14554,7 +14554,7 @@ endobj
/F1.0 10 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -15433,7 +15433,7 @@ endobj
/F3.0 35 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [66 0 R]
@@ -16223,7 +16223,7 @@ endobj
/Font << /F4.0 37 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -16942,7 +16942,7 @@ endobj
/Font << /F4.0 37 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -17818,7 +17818,7 @@ endobj
/F2.0 31 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [75 0 R 76 0 R 77 0 R 78 0 R]
@@ -18808,7 +18808,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [81 0 R]
@@ -19731,7 +19731,7 @@ endobj
/F4.0 37 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -21242,7 +21242,7 @@ endobj
/F4.0 37 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [86 0 R 88 0 R]
@@ -22590,7 +22590,7 @@ endobj
/F4.0 37 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [92 0 R]
@@ -23664,7 +23664,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -24387,7 +24387,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -25026,7 +25026,7 @@ endobj
/F4.0 37 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [99 0 R 100 0 R 101 0 R 103 0 R]
@@ -25270,7 +25270,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [107 0 R 108 0 R 109 0 R 110 0 R]
@@ -26142,7 +26142,7 @@ endobj
/F4.0 37 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [114 0 R 115 0 R]
@@ -26422,7 +26422,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -27902,7 +27902,7 @@ endobj
/F5.1 47 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [122 0 R 123 0 R 124 0 R 125 0 R 126 0 R 127 0 R 128 0 R 130 0 R 131 0 R 132 0 R 133 0 R]
@@ -28942,7 +28942,7 @@ endobj
/F2.0 31 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [136 0 R 138 0 R]
@@ -29695,7 +29695,7 @@ endobj
/F2.0 31 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [141 0 R 143 0 R 144 0 R 145 0 R 146 0 R]
@@ -33197,7 +33197,7 @@ endobj
/F2.0 31 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [149 0 R 150 0 R 151 0 R 152 0 R 153 0 R 154 0 R 155 0 R]
@@ -33998,7 +33998,7 @@ endobj
/F2.0 31 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [161 0 R 162 0 R]
@@ -34009,12 +34009,12 @@ endobj
endobj
159 0 obj
<< /Limits [(__anchor-top) (adding.new.node)]
-/Names [(__anchor-top) 27 0 R (__indexterm-2002) 3592 0 R (__indexterm-2004) 3594 0 R (__indexterm-2006) 3596 0 R (__indexterm-2008) 3599 0 R (accesscontrolclient-changes) 4445 0 R (acid) 949 0 R (acl) 3397 0 R (add-metric-name-and-function-to-hadoop-compat-interface) 3693 0 R (add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3696 0 R (add.metrics) 3691 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 4024 0 R (adding.new.node) 3138 0 R]
+/Names [(__anchor-top) 27 0 R (__indexterm-2002) 3593 0 R (__indexterm-2004) 3595 0 R (__indexterm-2006) 3597 0 R (__indexterm-2008) 3600 0 R (accesscontrolclient-changes) 4446 0 R (acid) 949 0 R (acl) 3398 0 R (add-metric-name-and-function-to-hadoop-compat-interface) 3694 0 R (add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3697 0 R (add.metrics) 3692 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 4025 0 R (adding.new.node) 3139 0 R]
>>
endobj
160 0 obj
<< /Limits [(io.storefile.bloom.block.size) (jdk-version-requirements)]
-/Names [(io.storefile.bloom.block.size) 360 0 R (ipc) 4352 0 R (irbrc) 812 0 R (irc) 3428 0 R (isolate-system-tables) 3391 0 R (java) 121 0 R (java-2) 1949 0 R (java-3) 1954 0 R (java.client.config) 518 0 R (jdk-issues) 2946 0 R (jdk-version-requirements) 58 0 R]
+/Names [(io.storefile.bloom.block.size) 360 0 R (ipc) 4353 0 R (irbrc) 812 0 R (irc) 3429 0 R (isolate-system-tables) 3392 0 R (java) 121 0 R (java-2) 1950 0 R (java-3) 1955 0 R (java.client.config) 518 0 R (jdk-issues) 2947 0 R (jdk-version-requirements) 58 0 R]
>>
endobj
161 0 obj
@@ -35153,7 +35153,7 @@ endobj
/F4.0 37 0 R
/F1.1 40 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [167 0 R 168 0 R 170 0 R]
@@ -35953,7 +35953,7 @@ endobj
/F5.1 47 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [175 0 R 176 0 R 177 0 R 179 0 R 180 0 R 182 0 R 183 0 R]
@@ -37425,7 +37425,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [186 0 R 187 0 R]
@@ -37850,7 +37850,7 @@ endobj
/F4.0 37 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -38506,7 +38506,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [193 0 R]
@@ -39273,7 +39273,7 @@ endobj
/F4.0 37 0 R
/F1.1 40 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [198 0 R]
@@ -39804,7 +39804,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -39820,7 +39820,7 @@ endobj
endobj
208 0 obj
<< /Limits [(getshortmidpointkey-an-optimization-for-data-index-block) (handling-of-errors-during-log-splitting)]
-/Names [(getshortmidpointkey-an-optimization-for-data-index-block) 4204 0 R (getting.involved) 3417 0 R (getting_started) 50 0 R (git.best.practices) 3697 0 R (git.patch.flow) 3750 0 R (goals) 4297 0 R (guide-for-hbase-committers) 3724 0 R (guidelines-for-deploying-a-coprocessor) 2415 0 R (guidelines-for-reporting-effective-issues) 3435 0 R (hadoop) 142 0 R (hadoop.native.lib) 4121 0 R (hadoop.policy.file) 385 0 R (handling-of-errors-during-log-splitting) 1691 0 R]
+/Names [(getshortmidpointkey-an-optimization-for-data-index-block) 4205 0 R (getting.involved) 3418 0 R (getting_started) 50 0 R (git.best.practices) 3698 0 R (git.patch.flow) 3751 0 R (goals) 4298 0 R (guide-for-hbase-committers) 3725 0 R (guidelines-for-deploying-a-coprocessor) 2416 0 R (guidelines-for-reporting-effective-issues) 3436 0 R (hadoop) 142 0 R (hadoop.native.lib) 4122 0 R (hadoop.policy.file) 385 0 R (handling-of-errors-during-log-splitting) 1691 0 R]
>>
endobj
209 0 obj
@@ -40350,7 +40350,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -40872,7 +40872,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -41507,7 +41507,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -42016,7 +42016,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -42547,7 +42547,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -43126,7 +43126,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [254 0 R 255 0 R]
@@ -43693,7 +43693,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [263 0 R 264 0 R 266 0 R 267 0 R]
@@ -43757,7 +43757,7 @@ endobj
endobj
270 0 obj
<< /Limits [(hbase.table.lock.enable) (hbase.tmp.dir)]
-/Names [(hbase.table.lock.enable) 410 0 R (hbase.table.max.rowsize) 413 0 R (hbase.tags) 1368 0 R (hbase.tests) 3575 0 R (hbase.tests.categories) 3619 0 R (hbase.tests.cluster) 3621 0 R (hbase.tests.example.code) 3622 0 R (hbase.tests.rules) 3615 0 R (hbase.tests.sleeps) 3620 0 R (hbase.tests.writing) 3614 0 R (hbase.thrift.maxQueuedRequests) 417 0 R (hbase.thrift.maxWorkerThreads) 416 0 R (hbase.thrift.minWorkerThreads) 415 0 R (hbase.tmp.dir) 200 0 R]
+/Names [(hbase.table.lock.enable) 410 0 R (hbase.table.max.rowsize) 413 0 R (hbase.tags) 1368 0 R (hbase.tests) 3576 0 R (hbase.tests.categories) 3620 0 R (hbase.tests.cluster) 3622 0 R (hbase.tests.example.code) 3623 0 R (hbase.tests.rules) 3616 0 R (hbase.tests.sleeps) 3621 0 R (hbase.tests.writing) 3615 0 R (hbase.thrift.maxQueuedRequests) 417 0 R (hbase.thrift.maxWorkerThreads) 416 0 R (hbase.thrift.minWorkerThreads) 415 0 R (hbase.tmp.dir) 200 0 R]
>>
endobj
271 0 obj
@@ -44313,7 +44313,7 @@ endobj
/F1.0 10 0 R
/F1.1 40 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -44908,7 +44908,7 @@ endobj
/F4.0 37 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [287 0 R 288 0 R]
@@ -44928,7 +44928,7 @@ endobj
endobj
286 0 obj
<< /Limits [(hbase.cluster.distributed) (hbase.data.umask.enable)]
-/Names [(hbase.cluster.distributed) 202 0 R (hbase.column.max.version) 436 0 R (hbase.commit.msg.format) 3967 0 R (hbase.coordinated.state.manager.class) 479 0 R (hbase.coprocessor.abortonerror) 401 0 R (hbase.coprocessor.enabled) 394 0 R (hbase.coprocessor.master.classes) 400 0 R (hbase.coprocessor.region.classes) 399 0 R (hbase.coprocessor.user.enabled) 398 0 R (hbase.data.umask) 427 0 R (hbase.data.umask.enable) 426 0 R]
+/Names [(hbase.cluster.distributed) 202 0 R (hbase.column.max.version) 436 0 R (hbase.commit.msg.format) 3968 0 R (hbase.coordinated.state.manager.class) 479 0 R (hbase.coprocessor.abortonerror) 401 0 R (hbase.coprocessor.enabled) 394 0 R (hbase.coprocessor.master.classes) 400 0 R (hbase.coprocessor.region.classes) 399 0 R (hbase.coprocessor.user.enabled) 398 0 R (hbase.data.umask) 427 0 R (hbase.data.umask.enable) 426 0 R]
>>
endobj
287 0 obj
@@ -45474,7 +45474,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -45965,7 +45965,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -46537,7 +46537,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -47098,7 +47098,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -47695,7 +47695,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -48299,7 +48299,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -48842,7 +48842,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -49350,7 +49350,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -49925,7 +49925,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [352 0 R 356 0 R]
@@ -50494,7 +50494,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -50504,7 +50504,7 @@ endobj
endobj
361 0 obj
<< /Limits [(quota) (regions.arch)]
-/Names [(quota) 3251 0 R (read-api-and-usage) 1950 0 R (read-hbase-shell-commands-from-a-command-file) 798 0 R (reading-filtering-and-sending-edits) 3231 0 R (reading_cells_with_labels) 1422 0 R (recommended.configurations.hdfs) 548 0 R (recommended_configurations) 543 0 R (recommended_configurations.zk) 544 0 R (references) 3855 0 R (region-overlap-repairs) 4079 0 R (region-replication-for-meta-table-s-region) 1927 0 R (region-scanner-changes) 4424 0 R (region-transition-rpc-and-rs-heartbeat-can-arrive-at-same-time-on-master) 3888 0 R (regioncoprocessorenvironment-getregion-abstract-hregion) 4349 0 R (regioncoprocessorhost-postappend-append-append-result-result-void) 4350 0 R (regioncoprocessorhost-prestorefilereaderopen-filesystem-fs-path-p-fsdatainputstreamwrapper-in-long-size-cacheconfig-cacheconf-reference-r-storefile-reader) 4351 0 R (regionobserver) 4336 0 R (regions.arch) 1723 0 R]
+/Names [(quota) 3252 0 R (read-api-and-usage) 1951 0 R (read-hbase-shell-commands-from-a-command-file) 798 0 R (reading-filtering-and-sending-edits) 3232 0 R (reading_cells_with_labels) 1422 0 R (recommended.configurations.hdfs) 548 0 R (recommended_configurations) 543 0 R (recommended_configurations.zk) 544 0 R (references) 3856 0 R (region-overlap-repairs) 4080 0 R (region-replication-for-meta-table-s-region) 1928 0 R (region-scanner-changes) 4425 0 R (region-transition-rpc-and-rs-heartbeat-can-arrive-at-same-time-on-master) 3889 0 R (regioncoprocessorenvironment-getregion-abstract-hregion) 4350 0 R (regioncoprocessorhost-postappend-append-append-result-result-void) 4351 0 R (regioncoprocessorhost-prestorefilereaderopen-filesystem-fs-path-p-fsdatainputstreamwrapper-in-long-size-cacheconfig-cacheconf-reference-r-storefile-reader) 4352 0 R (regionobserver) 4337 0 R (regions.arch) 1723 0 R]
>>
endobj
362 0 obj
@@ -51105,7 +51105,7 @@ endobj
/F4.0 37 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [372 0 R 373 0 R 375 0 R 377 0 R 378 0 R]
@@ -51116,7 +51116,7 @@ endobj
endobj
370 0 obj
<< /Limits [(hbase.regionserver.thrift.compact) (hbase.rootdir.perms)]
-/Names [(hbase.regionserver.thrift.compact) 422 0 R (hbase.regionserver.thrift.framed) 418 0 R (hbase.regionserver.thrift.framed.max_frame_size_in_mb) 419 0 R (hbase.release.announcement) 3555 0 R (hbase.replication.management) 3201 0 R (hbase.replication.rpc.codec) 488 0 R (hbase.replication.source.maxthreads) 489 0 R (hbase.rest-csrf.browser-useragents-regex) 472 0 R (hbase.rest.csrf.enabled) 471 0 R (hbase.rest.filter.classes) 460 0 R (hbase.rest.port) 402 0 R (hbase.rest.readonly) 405 0 R (hbase.rest.support.proxyuser) 408 0 R (hbase.rest.threads.max) 406 0 R (hbase.rest.threads.min) 407 0 R (hbase.rolling.restart) 637 0 R (hbase.rolling.upgrade) 633 0 R (hbase.rootdir) 201 0 R (hbase.rootdir.perms) 423 0 R]
+/Names [(hbase.regionserver.thrift.compact) 422 0 R (hbase.regionserver.thrift.framed) 418 0 R (hbase.regionserver.thrift.framed.max_frame_size_in_mb) 419 0 R (hbase.release.announcement) 3556 0 R (hbase.replication.management) 3202 0 R (hbase.replication.rpc.codec) 488 0 R (hbase.replication.source.maxthreads) 489 0 R (hbase.rest-csrf.browser-useragents-regex) 472 0 R (hbase.rest.csrf.enabled) 471 0 R (hbase.rest.filter.classes) 460 0 R (hbase.rest.port) 402 0 R (hbase.rest.readonly) 405 0 R (hbase.rest.support.proxyuser) 408 0 R (hbase.rest.threads.max) 406 0 R (hbase.rest.threads.min) 407 0 R (hbase.rolling.restart) 637 0 R (hbase.rolling.upgrade) 633 0 R (hbase.rootdir) 201 0 R (hbase.rootdir.perms) 423 0 R]
>>
endobj
371 0 obj
@@ -51696,7 +51696,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -52238,7 +52238,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -52789,7 +52789,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -53308,7 +53308,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -53826,7 +53826,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -53836,7 +53836,7 @@ endobj
endobj
414 0 obj
<< /Limits [(hbase.zookeeper.property.maxClientCnxns) (hbase_supported_tested_definitions)]
-/Names [(hbase.zookeeper.property.maxClientCnxns) 275 0 R (hbase.zookeeper.property.syncLimit) 269 0 R (hbase.zookeeper.quorum) 205 0 R (hbase_apis) 2169 0 R (hbase_default_configurations) 199 0 R (hbase_env) 532 0 R (hbase_metrics) 3143 0 R (hbase_mob) 1964 0 R (hbase_site) 528 0 R (hbase_supported_tested_definitions) 44 0 R]
+/Names [(hbase.zookeeper.property.maxClientCnxns) 275 0 R (hbase.zookeeper.property.syncLimit) 269 0 R (hbase.zookeeper.quorum) 205 0 R (hbase_apis) 2170 0 R (hbase_default_configurations) 199 0 R (hbase_env) 532 0 R (hbase_metrics) 3144 0 R (hbase_mob) 1965 0 R (hbase_site) 528 0 R (hbase_supported_tested_definitions) 44 0 R]
>>
endobj
415 0 obj
@@ -54322,7 +54322,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -54335,7 +54335,7 @@ endobj
endobj
424 0 obj
<< /Limits [(hbase.rpc) (hbase.secure.spnego.ui)]
-/Names [(hbase.rpc) 4290 0 R (hbase.rpc.rows.warning.threshold) 511 0 R (hbase.rpc.shortoperation.timeout) 369 0 R (hbase.rpc.timeout) 363 0 R (hbase.rs.cacheblocksonwrite) 362 0 R (hbase.secure.bulkload) 1448 0 R (hbase.secure.configuration) 1288 0 R (hbase.secure.enable) 1452 0 R (hbase.secure.simpleconfiguration) 1330 0 R (hbase.secure.spnego.ui) 1283 0 R]
+/Names [(hbase.rpc) 4291 0 R (hbase.rpc.rows.warning.threshold) 511 0 R (hbase.rpc.shortoperation.timeout) 369 0 R (hbase.rpc.timeout) 363 0 R (hbase.rs.cacheblocksonwrite) 362 0 R (hbase.secure.bulkload) 1448 0 R (hbase.secure.configuration) 1288 0 R (hbase.secure.enable) 1452 0 R (hbase.secure.simpleconfiguration) 1330 0 R (hbase.secure.spnego.ui) 1283 0 R]
>>
endobj
425 0 obj
@@ -54856,7 +54856,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -55424,7 +55424,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -55941,7 +55941,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -56484,7 +56484,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [463 0 R 464 0 R]
@@ -57131,7 +57131,7 @@ endobj
/F4.0 37 0 R
/F6.0 473 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [469 0 R 470 0 R]
@@ -57172,11 +57172,11 @@ endobj
<< /Type /Font
/BaseFont /066905+mplus1mn-bold
/Subtype /TrueType
-/FontDescriptor 5227 0 R
+/FontDescriptor 5228 0 R
/FirstChar 32
/LastChar 255
-/Widths 5229 0 R
-/ToUnicode 5228 0 R
+/Widths 5230 0 R
+/ToUnicode 5229 0 R
>>
endobj
474 0 obj
@@ -57742,7 +57742,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -57755,7 +57755,7 @@ endobj
endobj
480 0 obj
<< /Limits [(hbase.defaults.for.version.skip) (hbase.hregion.percolumnfamilyflush.size.lower.bound.min)]
-/Names [(hbase.defaults.for.version.skip) 409 0 R (hbase.dfs.client.read.shortcircuit.buffer.size) 441 0 R (hbase.display.keys) 393 0 R (hbase.dynamic.jars.dir) 458 0 R (hbase.encryption.server) 1435 0 R (hbase.env.sh) 513 0 R (hbase.fix.version.in.jira) 3955 0 R (hbase.history) 4250 0 R (hbase.hregion.majorcompaction) 316 0 R (hbase.hregion.majorcompaction.jitter) 317 0 R (hbase.hregion.max.filesize) 315 0 R (hbase.hregion.memstore.block.multiplier) 311 0 R (hbase.hregion.memstore.flush.size) 308 0 R (hbase.hregion.memstore.mslab.enabled) 312 0 R (hbase.hregion.percolumnfamilyflush.size.lower.bound.min) 309 0 R]
+/Names [(hbase.defaults.for.version.skip) 409 0 R (hbase.dfs.client.read.shortcircuit.buffer.size) 441 0 R (hbase.display.keys) 393 0 R (hbase.dynamic.jars.dir) 458 0 R (hbase.encryption.server) 1435 0 R (hbase.env.sh) 513 0 R (hbase.fix.version.in.jira) 3956 0 R (hbase.history) 4251 0 R (hbase.hregion.majorcompaction) 316 0 R (hbase.hregion.majorcompaction.jitter) 317 0 R (hbase.hregion.max.filesize) 315 0 R (hbase.hregion.memstore.block.multiplier) 311 0 R (hbase.hregion.memstore.flush.size) 308 0 R (hbase.hregion.memstore.mslab.enabled) 312 0 R (hbase.hregion.percolumnfamilyflush.size.lower.bound.min) 309 0 R]
>>
endobj
481 0 obj
@@ -58294,7 +58294,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -58809,7 +58809,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -59320,7 +59320,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -59336,7 +59336,7 @@ endobj
endobj
503 0 obj
<< /Limits [(hbase.mob.file.cache.size) (hbase.org.site.contributing)]
-/Names [(hbase.mob.file.cache.size) 494 0 R (hbase.moduletest.run) 3584 0 R (hbase.moduletest.shell) 3579 0 R (hbase.moduletests) 3577 0 R (hbase.normalizer.min.region.count) 302 0 R (hbase.normalizer.period) 301 0 R (hbase.offpeak.end.hour) 337 0 R (hbase.offpeak.start.hour) 336 0 R (hbase.org) 3566 0 R (hbase.org.site.contributing) 3568 0 R]
+/Names [(hbase.mob.file.cache.size) 494 0 R (hbase.moduletest.run) 3585 0 R (hbase.moduletest.shell) 3580 0 R (hbase.moduletests) 3578 0 R (hbase.normalizer.min.region.count) 302 0 R (hbase.normalizer.period) 301 0 R (hbase.offpeak.end.hour) 337 0 R (hbase.offpeak.start.hour) 336 0 R (hbase.org) 3567 0 R (hbase.org.site.contributing) 3569 0 R]
>>
endobj
504 0 obj
@@ -59851,7 +59851,7 @@ endobj
/F1.0 10 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -60962,7 +60962,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [519 0 R]
@@ -61810,7 +61810,7 @@ endobj
/F4.0 37 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [522 0 R]
@@ -63267,7 +63267,7 @@ endobj
/F3.0 35 0 R
/F1.1 40 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -63791,7 +63791,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -64444,7 +64444,7 @@ endobj
/F4.0 37 0 R
/F1.1 40 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [537 0 R 538 0 R 540 0 R 541 0 R 542 0 R 547 0 R]
@@ -65199,7 +65199,7 @@ endobj
/F2.0 31 0 R
/F1.1 40 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [553 0 R 556 0 R 559 0 R]
@@ -65238,7 +65238,7 @@ endobj
endobj
558 0 obj
<< /Limits [(configuration) (coprocessor-implementation-overview)]
-/Names [(configuration) 106 0 R (configuration-2) 3172 0 R (configuration-3) 4042 0 R (configuration-files) 113 0 R (configuration-from-scratch) 3940 0 R (configuration-properties) 1932 0 R (configure-mob-compaction-mergeable-threshold) 1973 0 R (configure-mob-compaction-policy) 1972 0 R (configuring-columns-for-mob) 1969 0 R (configuring-server-wide-behavior-of-bloom-filters) 2539 0 R (configuring-the-rest-server-and-client) 2188 0 R (confirm) 192 0 R (connection-setup) 4302 0 R (constraints) 1087 0 R (contributing-to-documentation-or-other-strings) 3978 0 R (coprocessor-api-changes) 4326 0 R (coprocessor-implementation-overview) 2344 0 R]
+/Names [(configuration) 106 0 R (configuration-2) 3173 0 R (configuration-3) 4043 0 R (configuration-files) 113 0 R (configuration-from-scratch) 3941 0 R (configuration-properties) 1933 0 R (configure-mob-compaction-mergeable-threshold) 1974 0 R (configure-mob-compaction-policy) 1973 0 R (configuring-columns-for-mob) 1970 0 R (configuring-server-wide-behavior-of-bloom-filters) 2540 0 R (configuring-the-rest-server-and-client) 2189 0 R (confirm) 192 0 R (connection-setup) 4303 0 R (constraints) 1087 0 R (contributing-to-documentation-or-other-strings) 3979 0 R (coprocessor-api-changes) 4327 0 R (coprocessor-implementation-overview) 2345 0 R]
>>
endobj
559 0 obj
@@ -66100,7 +66100,7 @@ endobj
/F4.0 37 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [563 0 R]
@@ -66914,7 +66914,7 @@ endobj
/F5.1 47 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [567 0 R 568 0 R 569 0 R 573 0 R 576 0 R 577 0 R 578 0 R]
@@ -67656,7 +67656,7 @@ endobj
/F1.1 40 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [582 0 R 583 0 R]
@@ -69088,7 +69088,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [587 0 R 588 0 R]
@@ -69865,7 +69865,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -70566,7 +70566,7 @@ endobj
/F3.0 35 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -71897,7 +71897,7 @@ endobj
/F4.0 37 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -73392,7 +73392,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -73558,7 +73558,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -73756,7 +73756,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [603 0 R 604 0 R 605 0 R 606 0 R 607 0 R]
@@ -74510,7 +74510,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [612 0 R]
@@ -75427,7 +75427,7 @@ endobj
/F3.0 35 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [616 0 R]
@@ -77742,7 +77742,7 @@ endobj
/F4.0 37 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [619 0 R 620 0 R]
@@ -78775,7 +78775,7 @@ endobj
/F1.1 40 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [624 0 R 625 0 R 626 0 R]
@@ -79439,7 +79439,7 @@ endobj
/F2.0 31 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [634 0 R 635 0 R 636 0 R 638 0 R 639 0 R 640 0 R]
@@ -80234,7 +80234,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [648 0 R]
@@ -80245,17 +80245,17 @@ endobj
endobj
644 0 obj
<< /Limits [(standalone.over.hdfs) (storefile-refresher)]
-/Names [(standalone.over.hdfs) 171 0 R (standalone_dist) 166 0 R (starting-and-stopping-the-rest-server) 2187 0 R (statemachineprocedure) 3851 0 R (static-loading) 2378 0 R (static-unloading) 2381 0 R (store) 1774 0 R (store-file-ttl) 1926 0 R (store.file.dir) 1789 0 R (store.memstore) 1775 0 R (storefile-changes) 4426 0 R (storefile-refresher) 1922 0 R]
+/Names [(standalone.over.hdfs) 171 0 R (standalone_dist) 166 0 R (starting-and-stopping-the-rest-server) 2188 0 R (statemachineprocedure) 3852 0 R (static-loading) 2379 0 R (static-unloading) 2382 0 R (store) 1774 0 R (store-file-ttl) 1927 0 R (store.file.dir) 1789 0 R (store.memstore) 1775 0 R (storefile-changes) 4427 0 R (storefile-refresher) 1923 0 R]
>>
endobj
645 0 obj
<< /Limits [(__anchor-top) (build.thrift)]
-/Kids [159 0 R 3694 0 R 4386 0 R 1891 0 R 1472 0 R 3647 0 R 1635 0 R 4199 0 R 2121 0 R 2079 0 R 2036 0 R 2070 0 R]
+/Kids [159 0 R 3695 0 R 4387 0 R 1891 0 R 1472 0 R 3648 0 R 1635 0 R 4200 0 R 2122 0 R 2080 0 R 2037 0 R 2071 0 R]
>>
endobj
646 0 obj
<< /Limits [(hbase.mob.file.cache.size) (hbase.zookeeper.property.initLimit)]
-/Kids [503 0 R 4147 0 R 443 0 R 241 0 R 370 0 R 424 0 R 4291 0 R 457 0 R 270 0 R 3616 0 R 3587 0 R]
+/Kids [503 0 R 4148 0 R 443 0 R 241 0 R 370 0 R 424 0 R 4292 0 R 457 0 R 270 0 R 3617 0 R 3588 0 R]
>>
endobj
647 0 obj
@@ -80919,7 +80919,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -81634,7 +81634,7 @@ endobj
/F1.0 10 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [656 0 R]
@@ -82101,7 +82101,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -82821,7 +82821,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [665 0 R 668 0 R]
@@ -84087,7 +84087,7 @@ endobj
/F3.0 35 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R 678 0 R 681 0 R 682 0 R 683 0 R]
@@ -85023,7 +85023,7 @@ endobj
/Font << /F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [686 0 R 687 0 R 690 0 R]
@@ -85922,7 +85922,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [695 0 R 696 0 R 698 0 R 700 0 R 701 0 R]
@@ -86741,7 +86741,7 @@ endobj
/Font << /F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [704 0 R 707 0 R 710 0 R 711 0 R]
@@ -87745,7 +87745,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [716 0 R 718 0 R 720 0 R]
@@ -88565,7 +88565,7 @@ endobj
/F3.0 35 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [725 0 R 731 0 R 732 0 R 733 0 R]
@@ -89602,7 +89602,7 @@ endobj
/F2.0 31 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [739 0 R 740 0 R 741 0 R 743 0 R 744 0 R 745 0 R 746 0 R 747 0 R 748 0 R 749 0 R 750 0 R 751 0 R 752 0 R 753 0 R 754 0 R]
@@ -90658,7 +90658,7 @@ endobj
/F4.0 37 0 R
/F1.1 40 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [757 0 R 758 0 R 760 0 R 761 0 R 762 0 R 763 0 R 764 0 R]
@@ -91410,7 +91410,7 @@ endobj
/F2.0 31 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [767 0 R]
@@ -91658,7 +91658,7 @@ endobj
/Font << /F1.0 10 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -92012,7 +92012,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [779 0 R 780 0 R 781 0 R]
@@ -92213,7 +92213,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -92451,7 +92451,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [788 0 R]
@@ -93047,7 +93047,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [792 0 R]
@@ -93584,7 +93584,7 @@ endobj
/F4.0 37 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -93834,7 +93834,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -94318,7 +94318,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -94593,7 +94593,7 @@ endobj
/F4.0 37 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -95030,7 +95030,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -95593,7 +95593,7 @@ endobj
/Font << /F4.0 37 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -96204,7 +96204,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -97374,7 +97374,7 @@ endobj
/F2.0 31 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [816 0 R]
@@ -97396,7 +97396,7 @@ endobj
endobj
818 0 obj
<< /Limits [(multiple-typed-queues) (new-system)]
-/Names [(multiple-typed-queues) 3264 0 R (multiwal) 1683 0 R (nagles) 575 0 R (namespace) 846 0 R (namespace_creation) 850 0 R (namespace_quotas) 3260 0 R (namespace_special) 851 0 R (network-saturation-the-winner) 2976 0 R (new-committers) 3725 0 R (new-configs) 3892 0 R (new-system) 3871 0 R]
+/Names [(multiple-typed-queues) 3265 0 R (multiwal) 1683 0 R (nagles) 575 0 R (namespace) 846 0 R (namespace_creation) 850 0 R (namespace_quotas) 3261 0 R (namespace_special) 851 0 R (network-saturation-the-winner) 2977 0 R (new-committers) 3726 0 R (new-configs) 3893 0 R (new-system) 3872 0 R]
>>
endobj
819 0 obj
@@ -102660,7 +102660,7 @@ endobj
/F2.0 31 0 R
/F1.1 40 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -103036,7 +103036,7 @@ endobj
/F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -103651,7 +103651,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -106192,7 +106192,7 @@ endobj
/F5.1 47 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [835 0 R 836 0 R 837 0 R]
@@ -109211,7 +109211,7 @@ endobj
/Font << /F4.0 37 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -110645,7 +110645,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [843 0 R]
@@ -111429,7 +111429,7 @@ endobj
/F4.0 37 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [847 0 R 848 0 R 849 0 R]
@@ -111631,7 +111631,7 @@ endobj
/F4.0 37 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -111702,7 +111702,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -111806,7 +111806,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -112223,7 +112223,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -112343,7 +112343,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -114530,7 +114530,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [869 0 R 871 0 R 872 0 R 874 0 R 875 0 R 876 0 R 878 0 R 879 0 R]
@@ -114859,7 +114859,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [884 0 R 885 0 R 886 0 R 887 0 R]
@@ -114870,7 +114870,7 @@ endobj
endobj
883 0 obj
<< /Limits [(dfs.datanode.failed.volumes.tolerated) (dm.column.metadata)]
-/Names [(dfs.datanode.failed.volumes.tolerated) 551 0 R (dfs.datanode.max.transfer.threads) 158 0 R (dfs.domain.socket.path) 440 0 R (dialog) 3758 0 R (direct.memory) 1640 0 R (disable-nagle-for-rpc) 1149 0 R (disable.splitting) 562 0 R (disabling-metrics) 3150 0 R (disabling.blockcache) 574 0 R (discovering.available.metrics) 3151 0 R (distributed) 172 0 R (distributed.log.replay.failure.reasons) 1711 0 R (distributed.log.splitting) 1699 0 R (dm.column.metadata) 942 0 R]
+/Names [(dfs.datanode.failed.volumes.tolerated) 551 0 R (dfs.datanode.max.transfer.threads) 158 0 R (dfs.domain.socket.path) 440 0 R (dialog) 3759 0 R (direct.memory) 1640 0 R (disable-nagle-for-rpc) 1149 0 R (disable.splitting) 562 0 R (disabling-metrics) 3151 0 R (disabling.blockcache) 574 0 R (discovering.available.metrics) 3152 0 R (distributed) 172 0 R (distributed.log.replay.failure.reasons) 1711 0 R (distributed.log.splitting) 1699 0 R (dm.column.metadata) 942 0 R]
>>
endobj
884 0 obj
@@ -115879,7 +115879,7 @@ endobj
/F7.0 897 0 R
/F7.1 898 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [892 0 R 893 0 R 896 0 R]
@@ -115890,7 +115890,7 @@ endobj
endobj
891 0 obj
<< /Limits [(upgrade2.0.ui.splitmerge.by.row) (using-the-java-api)]
-/Names [(upgrade2.0.ui.splitmerge.by.row) 714 0 R (upgrade2.0.zkconfig) 705 0 R (upgrading) 602 0 R (upgrading-2) 4037 0 R (use-cases-for-observer-coprocessors) 2356 0 R (user-interface) 1943 0 R (using-existing-zookeeper-ensemble) 3912 0 R (using-hbase-shell) 2394 0 R (using-rest-endpoints) 2191 0 R (using-secure-http-https-for-the-web-ui) 1279 0 R (using-the-code-rolling-restart-sh-code-script) 3129 0 R (using-the-java-api) 2395 0 R]
+/Names [(upgrade2.0.ui.splitmerge.by.row) 714 0 R (upgrade2.0.zkconfig) 705 0 R (upgrading) 602 0 R (upgrading-2) 4038 0 R (use-cases-for-observer-coprocessors) 2357 0 R (user-interface) 1944 0 R (using-existing-zookeeper-ensemble) 3913 0 R (using-hbase-shell) 2395 0 R (using-rest-endpoints) 2192 0 R (using-secure-http-https-for-the-web-ui) 1279 0 R (using-the-code-rolling-restart-sh-code-script) 3130 0 R (using-the-java-api) 2396 0 R]
>>
endobj
892 0 obj
@@ -115920,7 +115920,7 @@ endobj
endobj
895 0 obj
<< /Limits [(rowcounter) (save-the-dataframe)]
-/Names [(rowcounter) 3080 0 R (rowcounter-example) 1224 0 R (rowkey.design) 984 0 R (rowkey.regionsplits) 1026 0 R (rowkey.scope) 1023 0 R (rpc) 4299 0 R (rpc.configs) 4318 0 R (rpc.logging) 2705 0 R (rpcscheduler-dispatch-callrunner-p1-abstract-void-1) 4357 0 R (rs.failover.details) 3233 0 R (rs_metrics) 3159 0 R (rsgroup) 3383 0 R (run-canary-test-as-daemon-mode) 3018 0 R (run.insitu) 3688 0 R (running-canary-in-a-kerberos-enabled-cluster) 3024 0 R (running-hbck-to-identify-inconsistencies) 4072 0 R (running-multiple-workloads-on-a-single-cluster) 3247 0 R (running-the-shell-in-non-interactive-mode) 787 0 R (save-the-dataframe) 2314 0 R]
+/Names [(rowcounter) 3081 0 R (rowcounter-example) 1224 0 R (rowkey.design) 984 0 R (rowkey.regionsplits) 1026 0 R (rowkey.scope) 1023 0 R (rpc) 4300 0 R (rpc.configs) 4319 0 R (rpc.logging) 2706 0 R (rpcscheduler-dispatch-callrunner-p1-abstract-void-1) 4358 0 R (rs.failover.details) 3234 0 R (rs_metrics) 3160 0 R (rsgroup) 3384 0 R (run-canary-test-as-daemon-mode) 3019 0 R (run.insitu) 3689 0 R (running-canary-in-a-kerberos-enabled-cluster) 3025 0 R (running-hbck-to-identify-inconsistencies) 4073 0 R (running-multiple-workloads-on-a-single-cluster) 3248 0 R (running-the-shell-in-non-interactive-mode) 787 0 R (save-the-dataframe) 2315 0 R]
>>
endobj
896 0 obj
@@ -115938,22 +115938,22 @@ endobj
<< /Type /Font
/BaseFont /0c7a4a+mplus-1p-regular
/Subtype /TrueType
-/FontDescriptor 5231 0 R
+/FontDescriptor 5232 0 R
/FirstChar 32
/LastChar 255
-/Widths 5233 0 R
-/ToUnicode 5232 0 R
+/Widths 5234 0 R
+/ToUnicode 5233 0 R
>>
endobj
898 0 obj
<< /Type /Font
/BaseFont /a99fc7+mplus-1p-regular
/Subtype /TrueType
-/FontDescriptor 5235 0 R
+/FontDescriptor 5236 0 R
/FirstChar 32
/LastChar 255
-/Widths 5237 0 R
-/ToUnicode 5236 0 R
+/Widths 5238 0 R
+/ToUnicode 5237 0 R
>>
endobj
899 0 obj
@@ -117821,7 +117821,7 @@ endobj
/F7.1 898 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [901 0 R 902 0 R 905 0 R 906 0 R 907 0 R 908 0 R]
@@ -121757,7 +121757,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -122739,7 +122739,7 @@ endobj
/F1.1 40 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [919 0 R 920 0 R 921 0 R 922 0 R 923 0 R 924 0 R]
@@ -123631,7 +123631,7 @@ endobj
/F2.0 31 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [928 0 R 929 0 R 931 0 R 932 0 R 934 0 R 936 0 R]
@@ -123796,7 +123796,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -123963,7 +123963,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [943 0 R]
@@ -124192,7 +124192,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -124310,7 +124310,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [950 0 R 951 0 R]
@@ -124723,7 +124723,7 @@ endobj
/F1.0 10 0 R
/F1.1 40 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [955 0 R 956 0 R 957 0 R 958 0 R 959 0 R 960 0 R]
@@ -126198,7 +126198,7 @@ endobj
/F4.0 37 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [964 0 R 965 0 R 966 0 R 968 0 R]
@@ -126718,7 +126718,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [972 0 R]
@@ -126935,7 +126935,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [976 0 R]
@@ -127252,7 +127252,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [980 0 R]
@@ -127668,7 +127668,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -128397,7 +128397,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -129330,7 +129330,7 @@ endobj
/F4.0 37 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [990 0 R 991 0 R 992 0 R 993 0 R 996 0 R 997 0 R 998 0 R 999 0 R 1000 0 R 1002 0 R 1003 0 R]
@@ -129960,7 +129960,7 @@ endobj
/F2.0 31 0 R
/F1.1 40 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1006 0 R 1007 0 R 1008 0 R 1010 0 R 1012 0 R]
@@ -133541,7 +133541,7 @@ endobj
/F5.1 47 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1018 0 R 1019 0 R]
@@ -134259,7 +134259,7 @@ endobj
/F2.0 31 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1022 0 R]
@@ -134281,7 +134281,7 @@ endobj
endobj
1025 0 obj
<< /Limits [(cf.in.memory) (class-coprocessorrpcchannel-1)]
-/Names [(cf.in.memory) 2545 0 R (cf.keep.deleted) 1058 0 R (changes-of-note) 663 0 R (changing.compression) 4149 0 R (changing.rowkeys) 1024 0 R (chaos.monkey.properties) 3648 0 R (checking-for-success-or-failure-in-scripts) 795 0 R (choosing-region-servers-to-replicate-to) 3226 0 R (class-class-locktimeoutexception-1) 4405 0 R (class-coprocessorhost-e) 4331 0 R (class-coprocessorrpcchannel-1) 4328 0 R]
+/Names [(cf.in.memory) 2546 0 R (cf.keep.deleted) 1058 0 R (changes-of-note) 663 0 R (changing.compression) 4150 0 R (changing.rowkeys) 1024 0 R (chaos.monkey.properties) 3649 0 R (checking-for-success-or-failure-in-scripts) 795 0 R (choosing-region-servers-to-replicate-to) 3227 0 R (class-class-locktimeoutexception-1) 4406 0 R (class-coprocessorhost-e) 4332 0 R (class-coprocessorrpcchannel-1) 4329 0 R]
>>
endobj
1026 0 obj
@@ -138036,7 +138036,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1029 0 R]
@@ -138509,7 +138509,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1034 0 R 1035 0 R 1037 0 R]
@@ -138889,7 +138889,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1041 0 R 1042 0 R 1043 0 R 1045 0 R]
@@ -139030,7 +139030,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1050 0 R]
@@ -139041,7 +139041,7 @@ endobj
endobj
1049 0 obj
<< /Limits [(schema.versions) (sect.zookeeper.session.timeout)]
-/Names [(schema.versions) 1032 0 R (schema.versions.max) 1033 0 R (scopes) 4089 0 R (scripting) 784 0 R (secondary-replica-failover) 1931 0 R (secondary.indexes) 1069 0 R (secondary.indexes.coproc) 1083 0 R (secondary.indexes.dualwrite) 1079 0 R (secondary.indexes.filter) 1073 0 R (secondary.indexes.periodic) 1075 0 R (secondary.indexes.summary) 1081 0 R (sect.zookeeper.session.timeout) 545 0 R]
+/Names [(schema.versions) 1032 0 R (schema.versions.max) 1033 0 R (scopes) 4090 0 R (scripting) 784 0 R (secondary-replica-failover) 1932 0 R (secondary.indexes) 1069 0 R (secondary.indexes.coproc) 1083 0 R (secondary.indexes.dualwrite) 1079 0 R (secondary.indexes.filter) 1073 0 R (secondary.indexes.periodic) 1075 0 R (secondary.indexes.summary) 1081 0 R (sect.zookeeper.session.timeout) 545 0 R]
>>
endobj
1050 0 obj
@@ -139467,7 +139467,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1054 0 R 1055 0 R]
@@ -140158,7 +140158,7 @@ endobj
/F7.0 897 0 R
/F7.1 898 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1059 0 R 1060 0 R]
@@ -145873,7 +145873,7 @@ endobj
/Font << /F4.0 37 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -151819,7 +151819,7 @@ endobj
/Font << /F4.0 37 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -152905,7 +152905,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -153591,7 +153591,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1070 0 R 1071 0 R 1072 0 R 1074 0 R 1076 0 R]
@@ -153896,7 +153896,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1080 0 R 1082 0 R 1084 0 R]
@@ -154104,7 +154104,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1088 0 R]
@@ -154900,7 +154900,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1092 0 R 1095 0 R]
@@ -155878,7 +155878,7 @@ endobj
/F5.1 47 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1100 0 R 1101 0 R]
@@ -156558,7 +156558,7 @@ endobj
/F4.0 37 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1105 0 R 1107 0 R 1108 0 R 1109 0 R]
@@ -157311,7 +157311,7 @@ endobj
/F3.0 35 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1113 0 R]
@@ -157947,7 +157947,7 @@ endobj
/F2.0 31 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1120 0 R]
@@ -157961,7 +157961,7 @@ endobj
endobj
1119 0 obj
<< /Limits [(schema.casestudies.custorder.obj.rectype) (schema.updates)]
-/Names [(schema.casestudies.custorder.obj.rectype) 1123 0 R (schema.casestudies.custorder.obj.singleobj) 1128 0 R (schema.casestudies.custorder.tables) 1114 0 R (schema.casestudies.log_steroids) 1106 0 R (schema.casestudies.log_timeseries) 1093 0 R (schema.casestudies.log_timeseries.hostlead) 1098 0 R (schema.casestudies.log_timeseries.revts) 1099 0 R (schema.casestudies.log_timeseries.tslead) 1094 0 R (schema.casestudies.log_timeseries.varkeys) 1102 0 R (schema.cf.blocksize) 2542 0 R (schema.creation) 963 0 R (schema.joins) 1048 0 R (schema.minversions) 1036 0 R (schema.ops) 1147 0 R (schema.regionsize) 2524 0 R (schema.smackdown) 1130 0 R (schema.smackdown.rowsascols) 1133 0 R (schema.smackdown.rowscols) 1132 0 R (schema.smackdown.rowsversions) 1131 0 R (schema.updates) 967 0 R]
+/Names [(schema.casestudies.custorder.obj.rectype) 1123 0 R (schema.casestudies.custorder.obj.singleobj) 1128 0 R (schema.casestudies.custorder.tables) 1114 0 R (schema.casestudies.log_steroids) 1106 0 R (schema.casestudies.log_timeseries) 1093 0 R (schema.casestudies.log_timeseries.hostlead) 1098 0 R (schema.casestudies.log_timeseries.revts) 1099 0 R (schema.casestudies.log_timeseries.tslead) 1094 0 R (schema.casestudies.log_timeseries.varkeys) 1102 0 R (schema.cf.blocksize) 2543 0 R (schema.creation) 963 0 R (schema.joins) 1048 0 R (schema.minversions) 1036 0 R (schema.ops) 1147 0 R (schema.regionsize) 2525 0 R (schema.smackdown) 1130 0 R (schema.smackdown.rowsascols) 1133 0 R (schema.smackdown.rowscols) 1132 0 R (schema.smackdown.rowsversions) 1131 0 R (schema.updates) 967 0 R]
>>
endobj
1120 0 obj
@@ -158751,7 +158751,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1124 0 R]
@@ -159314,7 +159314,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1129 0 R]
@@ -160873,7 +160873,7 @@ endobj
/F4.0 37 0 R
/F1.1 40 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1136 0 R]
@@ -161617,7 +161617,7 @@ endobj
/F2.0 31 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1140 0 R 1141 0 R 1142 0 R]
@@ -161785,7 +161785,7 @@ endobj
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -162931,7 +162931,7 @@ endobj
/F4.0 37 0 R
/F1.1 40 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -164209,7 +164209,7 @@ endobj
/F2.0 31 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1154 0 R 1155 0 R 1156 0 R 1157 0 R 1158 0 R]
@@ -164958,7 +164958,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -164974,7 +164974,7 @@ endobj
endobj
1164 0 obj
<< /Limits [(others) (perf.general)]
-/Names [(others) 2322 0 R (output) 3176 0 R (package) 3478 0 R (page-allocation-failure) 2941 0 R (passing-vm-options-to-the-shell) 803 0 R (passwordless.ssh.quickstart) 89 0 R (perf.99th.percentile) 2480 0 R (perf.batch.loading) 2563 0 R (perf.casestudy) 2683 0 R (perf.compactions.and.splits) 2481 0 R (perf.compression) 2548 0 R (perf.compression.however) 2551 0 R (perf.configurations) 2478 0 R (perf.deleting) 2642 0 R (perf.deleting.queue) 2643 0 R (perf.deleting.rpc) 2647 0 R (perf.ec2) 2675 0 R (perf.general) 2558 0 R]
+/Names [(others) 2323 0 R (output) 3177 0 R (package) 3479 0 R (page-allocation-failure) 2942 0 R (passing-vm-options-to-the-shell) 803 0 R (passwordless.ssh.quickstart) 89 0 R (perf.99th.percentile) 2481 0 R (perf.batch.loading) 2564 0 R (perf.casestudy) 2684 0 R (perf.compactions.and.splits) 2482 0 R (perf.compression) 2549 0 R (perf.compression.however) 2552 0 R (perf.configurations) 2479 0 R (perf.deleting) 2643 0 R (perf.deleting.queue) 2644 0 R (perf.deleting.rpc) 2648 0 R (perf.ec2) 2676 0 R (perf.general) 2559 0 R]
>>
endobj
1165 0 obj
@@ -165809,7 +165809,7 @@ endobj
/F1.1 40 0 R
/F7.0 897 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1171 0 R]
@@ -166357,7 +166357,7 @@ endobj
/F4.0 37 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1177 0 R 1178 0 R 1179 0 R 1180 0 R 1181 0 R 1182 0 R]
@@ -166368,12 +166368,12 @@ endobj
endobj
1175 0 obj
<< /Limits [(keysize.cf) (load-the-dataframe)]
-/Names [(keysize.cf) 1009 0 R (keysize.patterns) 1014 0 R (keysize.row) 1013 0 R (keyvalue) 1795 0 R (keyvalue.example) 1796 0 R (known-incompatibilities-among-hbase-versions) 4321 0 R (language-integrated-query) 2320 0 R (lb) 3120 0 R (life-of-a-wal-edit) 3216 0 R (limit-server-failure-impact) 1150 0 R (list-of-major-changes-for-hbase-2-0) 4325 0 R (load-the-dataframe) 2317 0 R]
+/Names [(keysize.cf) 1009 0 R (keysize.patterns) 1014 0 R (keysize.row) 1013 0 R (keyvalue) 1795 0 R (keyvalue.example) 1796 0 R (known-incompatibilities-among-hbase-versions) 4322 0 R (language-integrated-query) 2321 0 R (lb) 3121 0 R (life-of-a-wal-edit) 3217 0 R (limit-server-failure-impact) 1150 0 R (list-of-major-changes-for-hbase-2-0) 4326 0 R (load-the-dataframe) 2318 0 R]
>>
endobj
1176 0 obj
<< /Limits [(multiple-typed-queues) (schema.updates)]
-/Kids [818 0 R 3872 0 R 1869 0 R 3346 0 R 3284 0 R 2996 0 R 1164 0 R 2576 0 R 2612 0 R 2482 0 R 2589 0 R 2441 0 R 361 0 R 3252 0 R 1598 0 R 2980 0 R 3718 0 R 895 0 R 3081 0 R 1119 0 R]
+/Kids [818 0 R 3873 0 R 1869 0 R 3347 0 R 3285 0 R 2997 0 R 1164 0 R 2577 0 R 2613 0 R 2483 0 R 2590 0 R 2442 0 R 361 0 R 3253 0 R 1598 0 R 2981 0 R 3719 0 R 895 0 R 3082 0 R 1119 0 R]
>>
endobj
1177 0 obj
@@ -167447,7 +167447,7 @@ endobj
/F3.0 35 0 R
/F1.1 40 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1186 0 R]
@@ -168074,7 +168074,7 @@ endobj
/Font << /F4.0 37 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -168404,7 +168404,7 @@ endobj
/F4.0 37 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -169157,7 +169157,7 @@ endobj
/Font << /F4.0 37 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1193 0 R 1194 0 R]
@@ -169595,7 +169595,7 @@ endobj
/Font << /F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1197 0 R]
@@ -170123,7 +170123,7 @@ endobj
/F4.0 37 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1201 0 R 1202 0 R]
@@ -170437,7 +170437,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -171189,7 +171189,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1209 0 R 1210 0 R 1211 0 R 1212 0 R 1213 0 R 1214 0 R 1215 0 R 1216 0 R 1217 0 R]
@@ -171426,7 +171426,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1221 0 R]
@@ -171735,7 +171735,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1225 0 R 1226 0 R 1227 0 R]
@@ -171987,7 +171987,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1233 0 R 1235 0 R]
@@ -172001,7 +172001,7 @@ endobj
endobj
1232 0 obj
<< /Limits [(secure-a-full-backup-image-first) (security.gateway.thrift.doas)]
-/Names [(secure-a-full-backup-image-first) 2104 0 R (securing-access-to-hdfs-and-zookeeper) 1350 0 R (securing-access-to-your-data) 1361 0 R (securing-file-system-hdfs-data) 1355 0 R (securing-zookeeper-data) 1351 0 R (security) 1274 0 R (security.client.thrift) 1298 0 R (security.data.basic.server.side) 1363 0 R (security.example.config) 1456 0 R (security.gateway.thrift) 1303 0 R (security.gateway.thrift.doas) 1313 0 R]
+/Names [(secure-a-full-backup-image-first) 2105 0 R (securing-access-to-hdfs-and-zookeeper) 1350 0 R (securing-access-to-your-data) 1361 0 R (securing-file-system-hdfs-data) 1355 0 R (securing-zookeeper-data) 1351 0 R (security) 1274 0 R (security.client.thrift) 1298 0 R (security.data.basic.server.side) 1363 0 R (security.example.config) 1456 0 R (security.gateway.thrift) 1303 0 R (security.gateway.thrift.doas) 1313 0 R]
>>
endobj
1233 0 obj
@@ -174543,7 +174543,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1240 0 R]
@@ -176800,7 +176800,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1244 0 R]
@@ -178756,7 +178756,7 @@ endobj
/F1.0 10 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -182757,7 +182757,7 @@ endobj
/Font << /F4.0 37 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -185016,7 +185016,7 @@ endobj
/F4.0 37 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -188471,7 +188471,7 @@ endobj
/F1.0 10 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -190078,7 +190078,7 @@ endobj
/F4.0 37 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -191242,7 +191242,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -191399,7 +191399,7 @@ endobj
/Font << /F2.0 31 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1267 0 R]
@@ -194857,7 +194857,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1271 0 R]
@@ -195212,7 +195212,7 @@ endobj
/F3.0 35 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1275 0 R 1276 0 R]
@@ -195831,7 +195831,7 @@ endobj
/F3.0 35 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1280 0 R]
@@ -196421,7 +196421,7 @@ endobj
/F4.0 37 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -197217,7 +197217,7 @@ endobj
/Font << /F4.0 37 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -198065,7 +198065,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1289 0 R 1290 0 R 1293 0 R 1295 0 R]
@@ -199770,7 +199770,7 @@ endobj
/F4.0 37 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -200905,7 +200905,7 @@ endobj
/F2.0 31 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1302 0 R 1304 0 R 1305 0 R 1306 0 R]
@@ -200915,11 +200915,11 @@ endobj
<< /Type /Font
/BaseFont /294f18+mplus1mn-italic
/Subtype /TrueType
-/FontDescriptor 5239 0 R
+/FontDescriptor 5240 0 R
/FirstChar 32
/LastChar 255
-/Widths 5241 0 R
-/ToUnicode 5240 0 R
+/Widths 5242 0 R
+/ToUnicode 5241 0 R
>>
endobj
1302 0 obj
@@ -202130,7 +202130,7 @@ endobj
/F2.0 31 0 R
/F6.0 473 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1309 0 R 1310 0 R 1311 0 R 1312 0 R 1314 0 R 1315 0 R]
@@ -203361,7 +203361,7 @@ endobj
/F3.0 35 0 R
/F8.0 1301 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1318 0 R 1320 0 R 1321 0 R]
@@ -204387,7 +204387,7 @@ endobj
/F3.0 35 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1324 0 R]
@@ -205312,7 +205312,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -205673,7 +205673,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1331 0 R 1332 0 R 1334 0 R 1335 0 R]
@@ -205731,7 +205731,7 @@ endobj
endobj
1338 0 obj
<< /Limits [(shell-tricks) (space-quotas)]
-/Names [(shell-tricks) 806 0 R (shell_exercises) 67 0 R (shortcircuit.reads) 1153 0 R (simple-versus-secure-access) 1333 0 R (slack) 3424 0 R (slowness-due-to-high-processor-usage) 2975 0 R (snappy.compression.installation) 4140 0 R (snapshot-errors-due-to-reverse-dns) 2874 0 R (snapshots_azure) 3319 0 R (snapshots_s3) 3312 0 R (space-quotas) 3267 0 R]
+/Names [(shell-tricks) 806 0 R (shell_exercises) 67 0 R (shortcircuit.reads) 1153 0 R (simple-versus-secure-access) 1333 0 R (slack) 3425 0 R (slowness-due-to-high-processor-usage) 2976 0 R (snappy.compression.installation) 4141 0 R (snapshot-errors-due-to-reverse-dns) 2875 0 R (snapshots_azure) 3320 0 R (snapshots_s3) 3313 0 R (space-quotas) 3268 0 R]
>>
endobj
1339 0 obj
@@ -206829,7 +206829,7 @@ endobj
/F1.0 10 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -207851,7 +207851,7 @@ endobj
/F1.0 10 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1345 0 R 1347 0 R]
@@ -208618,7 +208618,7 @@ endobj
/F1.0 10 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1352 0 R 1353 0 R 1354 0 R]
@@ -208956,7 +208956,7 @@ endobj
/F4.0 37 0 R
/F7.0 897 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1358 0 R]
@@ -209819,7 +209819,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1362 0 R 1364 0 R 1365 0 R]
@@ -210543,7 +210543,7 @@ endobj
/F4.0 37 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
/Annots [1370 0 R]
@@ -211744,7 +211744,7 @@ endobj
/F3.0 35 0 R
/F4.0 37 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -213347,7 +213347,7 @@ endobj
/F4.0 37 0 R
/F2.0 31 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -214491,7 +214491,7 @@ endobj
/F3.0 35 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
/Annots [1380 0 R 1382 0 R 1384 0 R 1385 0 R 1386 0 R]
@@ -215335,7 +215335,7 @@ endobj
/F1.0 10 0 R
/F3.0 35 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject << /Stamp2 4950 0 R
>>
>>
>>
@@ -216530,7 +216530,7 @@ endobj
/Font << /F4.0 37 0 R
/F1.0 10 0 R
>>
-/XObject << /Stamp1 4948 0 R
+/XObject << /Stamp1 4949 0 R
>>
>>
>>
@@ -217567,7 +217567,7 @@ endobj
/F2.0 31 0 R
/F5.1 47 0 R
>>
-/XObject << /Stamp2 4949 0 R
+/XObject
<TRUNCATED>