[ https://issues.apache.org/jira/browse/HBASE-15991?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15323275#comment-15323275 ]
Eshcar Hillel commented on HBASE-15991: --------------------------------------- [~anoop.hbase], [~ram_krish], can you give some background on this issue: Does changing the queue solves the comparable problem? Do you see this issue also when running other operations or just batch mutate? We ran quit a lot of experiments with the code in HBASE-14920 (but not batch operations) and never had this issue > CompactingMemstore#InMemoryFlushRunnable should implement > Comparable/Comparator > ------------------------------------------------------------------------------- > > Key: HBASE-15991 > URL: https://issues.apache.org/jira/browse/HBASE-15991 > Project: HBase > Issue Type: Bug > Affects Versions: 2.0.0 > Reporter: ramkrishna.s.vasudevan > Assignee: ramkrishna.s.vasudevan > Priority: Critical > Fix For: 2.0.0 > > Attachments: HBASE-15991.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)