hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HBASE-1460) Concurrent LRU Block Cache
Date Mon, 01 Jun 2009 00:19:07 GMT

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

stack commented on HBASE-1460:
------------------------------

CachedBlock needs a class comment as does CachedBlockQueue (Looks like the constructor comment
here could serve as the class comment)... and ConcurrentLRUBlockCache

Why this in CachedBlock?

+  public void setBuffer(ByteBuffer buf) {^M
+    this.buf = buf;^M
+  }^M

Can it not be done in constructor?

That align method looks good, like it should be in the bytes or heapsize classes?

When would this be used?

+  public CachedBlock [] get() {^M

Should we remove LRUBlockCache and just rename this ConcurrentLRUBlockCache as LRUBlockCache?
 I don't see any point in our keeping up two caches.

Remove the below rather than comment out I'd say:

{code}
+^M
+///**^M
+//* Constructor.^M
+//* @param maxBytes maximum bytes this cache can hold^M
+//* @param conf hbase configuration^M
+//*/^M
{code}

You added a test!!!!  Two of them!!

Patch looks great.

Here are comments carried over from 1192 that were ignored (smile):

+ Can we make block cache size be percentage of heap rather than hard number?  I suppose it
means cache needs to be able to grow as heap grows.

> Concurrent LRU Block Cache
> --------------------------
>
>                 Key: HBASE-1460
>                 URL: https://issues.apache.org/jira/browse/HBASE-1460
>             Project: Hadoop HBase
>          Issue Type: Improvement
>          Components: io
>            Reporter: Jonathan Gray
>            Assignee: Jonathan Gray
>             Fix For: 0.20.0
>
>         Attachments: HBASE-1460-v1.patch
>
>
> The LRU-based block cache that will be committed in HBASE-1192 is thread-safe but contains
a big lock on the hash map.  Under high load, the block cache will be hit very heavily from
a number of threads, so it needs to be built to handle massive concurrency.
> This issue aims to implement a new block cache with LRU eviction, but backed by a ConcurrentHashMap
and a separate eviction thread.  Influence will be drawn from Solr's ConcurrentLRUCache, however
there are major differences because solr treats all cached elements as equal size whereas
we are dependent on our HeapSize interface with realistic (though approximate) heap usage.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message