hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eshcar Hillel (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15991) CompactingMemstore#InMemoryFlushRunnable should implement Comparable/Comparator
Date Mon, 13 Jun 2016 11:31:21 GMT

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

Eshcar Hillel commented on HBASE-15991:
---------------------------------------

In that case, among all blocking options ArrayBlockingQueue (bounded size), SynchronousQueue
(no capacity - each insert operation must wait for a corresponding remove operation), PriorityBlockingQueue
(requires comparator), and LinkedTransferQueue (supports synchronous transfer in addition
to put),
LinkedBlockingQueue seems to be the best choice. It is claimed to have higher throughput than
array-based queues but less predictable performance. In the context of a thread pool using
a blocking pool is probably ok.

I guess then 
+1

> CompactingMemstore#InMemoryFlushRunnable should implement Comparable/Comparator
> -------------------------------------------------------------------------------
>
>                 Key: HBASE-15991
>                 URL: https://issues.apache.org/jira/browse/HBASE-15991
>             Project: HBase
>          Issue Type: Sub-task
>    Affects Versions: 2.0.0
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 2.0.0
>
>         Attachments: HBASE-15991.patch, HBASE-15991_test.patch
>
>
> Configuring CompactingMemstore for a table fails due to the following error
> {code}
> 2016-06-08 23:27:03,761 ERROR [B.defaultRpcServer.handler...
> 2016-06-08 23:27:03,761 ERROR [B.defaultRpcServer.handler=38,queue=8,port=16041] ipc.RpcServer:
Unexpected throwable object
> java.lang.ClassCastException: org.apache.hadoop.hbase.regionserver.CompactingMemStore$InMemoryFlushRunnable
cannot be cast to java.lang.Comparable
>         at java.util.concurrent.PriorityBlockingQueue.siftUpComparable(PriorityBlockingQueue.java:357)
>         at java.util.concurrent.PriorityBlockingQueue.offer(PriorityBlockingQueue.java:489)
>         at org.apache.hadoop.hbase.util.StealJobQueue$1.offer(StealJobQueue.java:56)
>         at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1361)
>         at org.apache.hadoop.hbase.regionserver.CompactingMemStore.checkActiveSize(CompactingMemStore.java:258)
>         at org.apache.hadoop.hbase.regionserver.AbstractMemStore.internalAdd(AbstractMemStore.java:403)
>         at org.apache.hadoop.hbase.regionserver.AbstractMemStore.add(AbstractMemStore.java:113)
>         at org.apache.hadoop.hbase.regionserver.HStore.add(HStore.java:630)
>         at org.apache.hadoop.hbase.regionserver.HRegion.applyToMemstore(HRegion.java:3769)
>         at org.apache.hadoop.hbase.regionserver.HRegion.applyFamilyMapToMemstore(HRegion.java:3740)
>         at org.apache.hadoop.hbase.regionserver.HRegion.doMiniBatchMutate(HRegion.java:3222)
>         at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:2954)
>         at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:2896)
>         at org.apache.hadoop.hbase.regionserver.RSRpcServices.doBatchOp(RSRpcServices.java:868)
>         at org.apache.hadoop.hbase.regionserver.RSRpcServices.doNonAtomicRegionMutation(RSRpcServices.java:830)
>         at org.apache.hadoop.hbase.regionserver.RSRpcServices.multi(RSRpcServices.java:2307)
>         at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:34826)

> {code}
> It is a straight forward fix. But If we implement the Comparable the compareTo() should
be based on what attribute?  Should be based on the time?  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message