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

[email protected] commented on HBASE-4027:
------------------------------------------------------



bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > CHANGES.txt, line 197
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31762#file31762line197>
bq.  >
bq.  >     your diff appears to revert this change. perhaps you need to rebase 
on trunk before you take diff against it.

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/CacheStats.java, lines 
24-26
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31766#file31766line24>
bq.  >
bq.  >     style:
bq.  >     /**
bq.  >      * ...
bq.  >      */
bq.  >     public class CacheStates {
bq.  >     
bq.  >     (comment formatting and space before '{')

Fixed


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/DoubleBlockCache.java, 
line 58
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31767#file31767line58>
bq.  >
bq.  >     hrm, is this constructor ever meant to be used? If the off-heap 
cache isn't configured, then it should just instantiate LruBlockCache directly, 
no?

This is currently taken care of in StoreFile.java, but, good idea, I'll change 
that.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/DoubleBlockCache.java, 
line 64
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31767#file31767line64>
bq.  >
bq.  >     does it ever make sense to have offHeapSize < onHeapSize? Perhaps we 
should have a Preconditions check here?

Its useful for testing, I guess? And 8gb heap with 2gb of offheap > 8gb heap 
without 2gb of offheap.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/DoubleBlockCache.java, 
line 65
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31767#file31767line65>
bq.  >
bq.  >     hyphenate 'on-heap' and 'off-heap' for clarity

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/DoubleBlockCache.java, 
line 67
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31767#file31767line67>
bq.  >
bq.  >     missing space - " bytes ..."

The string would end up being: "Creating off-heap cache of size 1.9G bytes. 
Should it be different?


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/DoubleBlockCache.java, 
line 137
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31767#file31767line137>
bq.  >
bq.  >     we should add in the heap size used by the accounting and hashmaps 
in the off-heap cache as well.

Will take care of next revision.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > 
src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SingleSizeCache.java, lines 
118-119
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31771#file31771line118>
bq.  >
bq.  >     I think there's a bug here if you have multiple users hammering the 
same contentBlock -- two people can get to "rewind()" at the same time. You 
probably need synchronized(contentBlock) around these two lines. See if you can 
add a unit test which puts just one block in the cache and starts several 
threads which hammer it - I bet you eventually one of the blocks comes back 
returned as all 0x0000

changed it to     returnBlock.put(contentBlock.duplicate()) instead.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
176
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line176>
bq.  >
bq.  >     this is a little gross, since the APIs imply that you can cache 
anything, but the implementation only supports HFileBlock.
bq.  >     
bq.  >     In the HFile code review I'd suggested adding a new interface like 
CacheableBlock that would expose any APIs you need. We should consider doing 
that now?

Definitely. Will do. At that point, might also change DoubleBlockCache to not 
cache things that aren't CacheableBlocks.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > 
src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SingleSizeCache.java, line 
190
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31771#file31771line190>
bq.  >
bq.  >     maybe rename to getOccupiedSize?

Done.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > 
src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SingleSizeCache.java, line 
148
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31771#file31771line148>
bq.  >
bq.  >     this.size() is in units of bytes, not blocks

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > 
src/test/java/org/apache/hadoop/hbase/io/hfile/SingleSizeCacheTestUtils.java, 
line 45
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31780#file31780line45>
bq.  >
bq.  >     hrm, this is identical to the other method?

Ones for SingleSizeCache, which takes ByteBuffers, the other is for a 
BlockCache, which (hypothetically) takes anything with HeapSize.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > 
src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SingleSizeCache.java, lines 
60-67
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31771#file31771line60>
bq.  >
bq.  >     vertically collapse this - one line per param

80 char limit?.  I don't know why eclipse keeps doing this. Will fix!


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > 
src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SingleSizeCache.java, lines 
101-103
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31771#file31771line101>
bq.  >
bq.  >     when you check up front here, you end up doing two lookups in 
backingmap. Since this is just a safety check, you could instead check the 
return value of put() below. Something like:
bq.  >     
bq.  >     ByteBuffer storedBlock = ...allloc
bq.  >     ... fill it in...
bq.  >     ByteBuffer alreadyCached = backingMap.put(blockName, storedBlock);
bq.  >     if (alreadyCached != null) {
bq.  >       // we didn't insert the new one, so free it and throw an exception
bq.  >       backingStore.free(storedBlock);
bq.  >       throw new RuntimeException("already cached xxxxx");
bq.  >     }
bq.  >     
bq.  >     make sense?

Doesn't put overwrite the previous value? I guess in this case, it doesn't 
matter, because you'd just be caching the same thing twice.  According to 
mapmaker: "If the map previously contained a mapping for the key, the old value 
is replaced by the specified value."

Good change, still though, I changed it to free alreadyCached instead.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/Slab.java, line 26
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31772#file31772line26>
bq.  >
bq.  >     wrong Log class - should use org.apache.commons.logging.Log

fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/Slab.java, line 35
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31772#file31772line35>
bq.  >
bq.  >     remove extra whitespace

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/Slab.java, lines 
37-38
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31772#file31772line37>
bq.  >
bq.  >     hm, we have 4 different terms for these: buffers, items, chunks, and 
blocks. Can we have a terminology that's used consistently throughout?

Okay. Will figure out names.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/Slab.java, lines 
90-91
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31772#file31772line90>
bq.  >
bq.  >     LOG.warn("Shutdown failed!", e); is probably what you want. Also 
improve the text of this error message -- eg "Unable to deallocate direct 
memory during shutdown".

done.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/Slab.java, line 104
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31772#file31772line104>
bq.  >
bq.  >     getBlock*s*Remaining, right?

Done


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/Slab.java, line 111
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31772#file31772line111>
bq.  >
bq.  >     incomplete comment here

I have no idea what that comment is supposed to be, removed it.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
88
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line88>
bq.  >
bq.  >     this isn't calling addSlabByConf here, so its javadoc seems out of 
date?

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
93
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line93>
bq.  >
bq.  >     spelling: proportions
bq.  >     
bq.  >     Also make the confs more heirarchical - 
hbase.offheapcache.slab.sizes or something is easier to parse. If we have any 
other configs throughout, they should all share a prefix

Fixed. All prefixes changed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > 
src/test/java/org/apache/hadoop/hbase/io/hfile/SingleSizeCacheTestUtils.java, 
line 43
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31780#file31780line43>
bq.  >
bq.  >     this class looks like mostly dup code

It is, but SingleSizeCache still caches bytebuffers rather than HFileBlocks.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > 
src/test/java/org/apache/hadoop/hbase/io/hfile/HFileBlockCacheTestUtils.java, 
line 42
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31779#file31779line42>
bq.  >
bq.  >     rather than changing the implementation of equals() in HFileBlock, I 
think it's better to add a static method like blocksContainSameData() here in 
the tests -- otherwise it might cause problems elsewhere where we were relying 
on identity-equality for HFileBlock.equals

equals was never implemented beforehand. I added it. I think default equals is 
just ==? I don't think anyone was using .equals beforehand.
 


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > 
src/test/java/org/apache/hadoop/hbase/io/hfile/HFileBlockCacheTestUtils.java, 
line 1
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31779#file31779line1>
bq.  >
bq.  >     add license

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/util/FSMapRUtils.java, line 30
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31778#file31778line30>
bq.  >
bq.  >     patch accidentally reverting another recent commit

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > 
src/test/java/org/apache/hadoop/hbase/io/hfile/HFileBlockCacheTestUtils.java, 
line 38
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31779#file31779line38>
bq.  >
bq.  >     I think this amount of output is going to severaly limit the 
throughput at which the threads can pound on the cache. Perhaps below:
bq.  >     long total = totalQueries.incrementAndGet();
bq.  >     if (total % 10000 == 0) {
bq.  >       LOG.debug("Ran " + total + " queries");
bq.  >     }

I just removed the printout - I don't think its needed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > 
src/test/java/org/apache/hadoop/hbase/io/hfile/HFileBlockCacheTestUtils.java, 
line 29
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31779#file31779line29>
bq.  >
bq.  >     long line

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
100
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line100>
bq.  >
bq.  >     "configuration mismatch" is vague for users to understand. Better to 
say something like "hbase.offheapslabproportions specifies proportions for 4 
slab classes, whereas hbase.offheapslabsizes specifies sizes for 5 slab 
classes." so they can see specifically what the issue is.

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
110
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line110>
bq.  >
bq.  >     just to be thorough, check that they aren't negative?

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
114
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line114>
bq.  >
bq.  >     > 0, not == 1 -- the contract of compareTo is just that it returns 
positive, not that it returns exactly 1

http://download.oracle.com/javase/6/docs/api/java/math/BigDecimal.html#compareTo(java.math.BigDecimal)

Returns:
-1, 0, or 1 as this BigDecimal is numerically less than, equal to, or greater 
than val.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
116
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line116>
bq.  >
bq.  >     should include the name of the config here too - "Sum of all 
proportions specified in hbase.blahblah is greater than 1."

Done.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
117
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line117>
bq.  >
bq.  >     should we also check that they sum up to at least 0.99 or something?

added a LOG.warn if it doesn't add up to 0.99


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
121
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line121>
bq.  >
bq.  >     wrap line

Done.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
143
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line143>
bq.  >
bq.  >     you should .trim() the strings so whitespace is ignored

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
159
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line159>
bq.  >
bq.  >     is that true? I thought it threw an RTE

Yes, it does throw a RTE. Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, 
lines 161-164
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line161>
bq.  >
bq.  >     collapse vertical space

Done.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java, lines 
375-376
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31776#file31776line375>
bq.  >
bq.  >     see note about consistency of conf params above

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > 
src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabItemEvictionWatcher.java,
 line 30
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31774#file31774line30>
bq.  >
bq.  >     you don't need abstract inside an interface

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > 
src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabItemEvictionWatcher.java,
 line 23
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31774#file31774line23>
bq.  >
bq.  >     this can be package-private right?

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
231
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line231>
bq.  >
bq.  >     javadoc to indicate where this is called from.
bq.  >     
bq.  >     Since this is only used as the callback for the per-size caches, I 
think it would be better to hide it by making it private, and not having this 
class implement SlabItemEvictionWatcher. Then when you instantiate the 
subclasses, pass them an anonymous class:
bq.  >     new SlabItemEvictionWatcher() {
bq.  >       public void onEviction(String key) {
bq.  >         internalBlockEvicted(key);
bq.  >       }
bq.  >     }
bq.  >     
bq.  >     
bq.  >     that way it doesn't show up as a public API to anyone else

this is now package private.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
60
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line60>
bq.  >
bq.  >     this needs to also make it a daemon thread, right? You could also 
look into org.apache.hadoop.hbase.Chore

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
237
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line237>
bq.  >
bq.  >     I think that the assignedCache's evict() counter is going to be 
double incremented here... call stack like:
bq.  >     
bq.  >     SingleSizeCache.ConcurrentMap.eviction
bq.  >     -> SingleSizeCache's eviction watcher
bq.  >     ---> calls stats.evict()
bq.  >     ---> removes from backingMap
bq.  >     ---> calls SlabCache.onEviction()
bq.  >     -----> calls assignedCache.evict(key)
bq.  >     -------> calls stats.evict() again
bq.  >     -------> removes from map which is always a no-op
bq.  >     
bq.  >     right?

Whoops. Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
245
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line245>
bq.  >
bq.  >     may as well just iterate over sizer.values()

fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java, line 
315
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31773#file31773line315>
bq.  >
bq.  >     again can iterate over values()

fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/util/DirectMemoryUtils.java, line 1
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31777#file31777line1>
bq.  >
bq.  >     Apache license

Fixed.


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/util/DirectMemoryUtils.java, line 
18
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31777#file31777line18>
bq.  >
bq.  >     this is unused?

Not anymore


bq.  On 2011-08-09 22:05:13, Todd Lipcon wrote:
bq.  > src/main/java/org/apache/hadoop/hbase/util/DirectMemoryUtils.java, lines 
59-63
bq.  > <https://reviews.apache.org/r/1214/diff/8/?file=31777#file31777line59>
bq.  >
bq.  >     remove empty javadocs

Done.


- Li


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1214/#review1363
-----------------------------------------------------------


On 2011-08-09 20:39:55, Li Pi wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/1214/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-08-09 20:39:55)
bq.  
bq.  
bq.  Review request for hbase, Todd Lipcon, Ted Yu, Michael Stack, Jonathan 
Gray, and Li Pi.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  Review request - I apparently can't edit tlipcon's earlier posting of my 
diff, so creating a new one.
bq.  
bq.  
bq.  This addresses bug HBase-4027.
bq.      https://issues.apache.org/jira/browse/HBase-4027
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    CHANGES.txt e9c0478 
bq.    conf/hbase-env.sh 2d55d27 
bq.    src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java 
aa09b7d 
bq.    src/main/java/org/apache/hadoop/hbase/io/hfile/BlockCache.java 2d4002c 
bq.    src/main/java/org/apache/hadoop/hbase/io/hfile/CacheStats.java 
PRE-CREATION 
bq.    src/main/java/org/apache/hadoop/hbase/io/hfile/DoubleBlockCache.java 
PRE-CREATION 
bq.    src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlock.java 097dc50 
bq.    src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java 
88aa652 
bq.    src/main/java/org/apache/hadoop/hbase/io/hfile/SimpleBlockCache.java 
886c31d 
bq.    src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SingleSizeCache.java 
PRE-CREATION 
bq.    src/main/java/org/apache/hadoop/hbase/io/hfile/slab/Slab.java 
PRE-CREATION 
bq.    src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabCache.java 
PRE-CREATION 
bq.    
src/main/java/org/apache/hadoop/hbase/io/hfile/slab/SlabItemEvictionWatcher.java
 PRE-CREATION 
bq.    src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java 
86652c0 
bq.    src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java 
94c8bb4 
bq.    src/main/java/org/apache/hadoop/hbase/util/DirectMemoryUtils.java 
PRE-CREATION 
bq.    src/main/java/org/apache/hadoop/hbase/util/FSMapRUtils.java e70b0d4 
bq.    
src/test/java/org/apache/hadoop/hbase/io/hfile/HFileBlockCacheTestUtils.java 
PRE-CREATION 
bq.    
src/test/java/org/apache/hadoop/hbase/io/hfile/SingleSizeCacheTestUtils.java 
PRE-CREATION 
bq.    
src/test/java/org/apache/hadoop/hbase/io/hfile/slab/TestSingleSizeCache.java 
PRE-CREATION 
bq.    src/test/java/org/apache/hadoop/hbase/io/hfile/slab/TestSlab.java 
PRE-CREATION 
bq.    src/test/java/org/apache/hadoop/hbase/io/hfile/slab/TestSlabCache.java 
PRE-CREATION 
bq.    src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFile.java 
4387170 
bq.  
bq.  Diff: https://reviews.apache.org/r/1214/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  Ran benchmarks against it in HBase standalone mode. Wrote test cases for 
all classes, multithreaded test cases exist for the cache.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Li
bq.  
bq.



> Enable direct byte buffers LruBlockCache
> ----------------------------------------
>
>                 Key: HBASE-4027
>                 URL: https://issues.apache.org/jira/browse/HBASE-4027
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Jason Rutherglen
>            Assignee: Li Pi
>            Priority: Minor
>         Attachments: 4027-v5.diff, 4027v7.diff, HBase-4027 (1).pdf, 
> HBase-4027.pdf, HBase4027v8.diff, HBase4027v9.diff, hbase-4027-v10.5.diff, 
> hbase-4027-v10.diff, hbase-4027v10.6.diff, hbase-4027v6.diff, 
> slabcachepatch.diff, slabcachepatchv2.diff, slabcachepatchv3.1.diff, 
> slabcachepatchv3.2.diff, slabcachepatchv3.diff, slabcachepatchv4.5.diff, 
> slabcachepatchv4.diff
>
>
> Java offers the creation of direct byte buffers which are allocated outside 
> of the heap.
> They need to be manually free'd, which can be accomplished using an 
> documented {{clean}} method.
> The feature will be optional.  After implementing, we can benchmark for 
> differences in speed and garbage collection observances.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to