[
https://issues.apache.org/jira/browse/HBASE-20188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16423279#comment-16423279
]
huaxiang sun commented on HBASE-20188:
--------------------------------------
Hi [~stack], I was looking at tree.txt. The following concerned me, it seems
that getMin() was taking lots of cpu time. 9.1/81.8 = 11 percent of cpu. It
makes me wondering the fix I did for HBASE-12148 is causing trouble for write
performance. Let me prepare a patch for undoing the change in HBASE-12148 and
we can rerun to see if this improves, thanks.
{code:java}
(t 81.8,s 0.0)
org.apache.hadoop.hbase.regionserver.RSRpcServices::doNonAtomicRegionMutation(org.apache.hadoop.hbase.regionserver.HRegion,org.apache.hadoop.hbase.quotas.OperationQuota,org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$RegionAction,org.apache.hadoop.hbase.CellScanner,org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$RegionActionResult$Builder,java.util.List,long,org.apache.hadoop.hbase.regionserver.RSRpcServices$RegionScannersCloseCallBack,org.apache.hadoop.hbase.ipc.RpcCallContext,org.apache.hadoop.hbase.quotas.ActivePolicyEnforcement)
(t 81.8,s 0.0)
org.apache.hadoop.hbase.regionserver.RSRpcServices::doNonAtomicBatchOp(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$RegionActionResult$Builder,org.apache.hadoop.hbase.regionserver.HRegion,org.apache.hadoop.hbase.quotas.OperationQuota,java.util.List,org.apache.hadoop.hbase.CellScanner,org.apache.hadoop.hbase.quotas.ActivePolicyEnforcement)
(t 81.8,s 0.0)
org.apache.hadoop.hbase.regionserver.RSRpcServices::doBatchOp(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$RegionActionResult$Builder,org.apache.hadoop.hbase.regionserver.HRegion,org.apache.hadoop.hbase.quotas.OperationQuota,java.util.List,org.apache.hadoop.hbase.CellScanner,org.apache.hadoop.hbase.quotas.ActivePolicyEnforcement,boolean)
(t 81.8,s 0.0)
org.apache.hadoop.hbase.regionserver.HRegion::batchMutate(org.apache.hadoop.hbase.client.Mutation[],boolean,long,long)
(t 81.8,s 0.0)
org.apache.hadoop.hbase.regionserver.HRegion::batchMutate(org.apache.hadoop.hbase.regionserver.HRegion$BatchOperation)
(t 81.8,s 0.0)
org.apache.hadoop.hbase.regionserver.HRegion::doMiniBatchMutate(org.apache.hadoop.hbase.regionserver.HRegion$BatchOperation)
(t 81.8,s 0.0)
org.apache.hadoop.hbase.regionserver.HRegion$MutationBatchOperation::writeMiniBatchOperationsToMemStore(org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress,org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl$WriteEntry)
(t 81.8,s 0.0)
org.apache.hadoop.hbase.regionserver.HRegion$BatchOperation::writeMiniBatchOperationsToMemStore(org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress,long)
(t 81.8,s 0.0)
org.apache.hadoop.hbase.regionserver.HRegion$BatchOperation::visitBatchOperations(boolean,int,org.apache.hadoop.hbase.regionserver.HRegion$BatchOperation$Visitor)
(t 81.8,s 0.0)
org.apache.hadoop.hbase.regionserver.HRegion$BatchOperation$$Lambda$247.826973093::visit(int)
(t 81.8,s 0.0)
org.apache.hadoop.hbase.regionserver.HRegion$BatchOperation::lambda$writeMiniBatchOperationsToMemStore$0(long,org.apache.hadoop.hbase.regionserver.MemStoreSizing,int)
(t 81.8,s 9.1)
org.apache.hadoop.hbase.regionserver.HRegion$BatchOperation::applyFamilyMapToMemStore(java.util.Map,org.apache.hadoop.hbase.regionserver.MemStoreSizing)
(t 72.7,s 0.0)
org.apache.hadoop.hbase.regionserver.HRegion::access$600(org.apache.hadoop.hbase.regionserver.HRegion,org.apache.hadoop.hbase.regionserver.HStore,java.util.List,boolean,org.apache.hadoop.hbase.regionserver.MemStoreSizing)
(t 72.7,s 0.0)
org.apache.hadoop.hbase.regionserver.HRegion::applyToMemStore(org.apache.hadoop.hbase.regionserver.HStore,java.util.List,boolean,org.apache.hadoop.hbase.regionserver.MemStoreSizing)
(t 72.7,s 0.0)
org.apache.hadoop.hbase.regionserver.HStore::add(java.lang.Iterable,org.apache.hadoop.hbase.regionserver.MemStoreSizing)
(t 72.7,s 0.0)
org.apache.hadoop.hbase.regionserver.AbstractMemStore::add(java.lang.Iterable,org.apache.hadoop.hbase.regionserver.MemStoreSizing)
(t 72.7,s 0.0)
org.apache.hadoop.hbase.regionserver.AbstractMemStore::add(org.apache.hadoop.hbase.Cell,org.apache.hadoop.hbase.regionserver.MemStoreSizing)
(t 72.7,s 0.0)
org.apache.hadoop.hbase.regionserver.AbstractMemStore::internalAdd(org.apache.hadoop.hbase.Cell,boolean,org.apache.hadoop.hbase.regionserver.MemStoreSizing)
(t 72.7,s 0.0)
org.apache.hadoop.hbase.regionserver.MutableSegment::add(org.apache.hadoop.hbase.Cell,boolean,org.apache.hadoop.hbase.regionserver.MemStoreSizing)
(t 72.7,s 0.0)
org.apache.hadoop.hbase.regionserver.Segment::internalAdd(org.apache.hadoop.hbase.Cell,boolean,org.apache.hadoop.hbase.regionserver.MemStoreSizing)
(t 63.6,s 0.0)
org.apache.hadoop.hbase.regionserver.CellSet::add(org.apache.hadoop.hbase.Cell)
(t 63.6,s 0.0)
java.util.concurrent.ConcurrentSkipListMap::put(java.lang.Object,java.lang.Object)
(t 63.6,s 0.0)
java.util.concurrent.ConcurrentSkipListMap::doPut(java.lang.Object,java.lang.Object,boolean)
(t 36.4,s 0.0)
java.util.concurrent.ConcurrentSkipListMap::findPredecessor(java.lang.Object,java.util.Comparator)
(t 36.4,s 0.0)
java.util.concurrent.ConcurrentSkipListMap::cpr(java.util.Comparator,java.lang.Object,java.lang.Object)
(t 36.4,s 0.0)
org.apache.hadoop.hbase.CellComparatorImpl::compare(java.lang.Object,java.lang.Object)
(t 36.4,s 0.0)
org.apache.hadoop.hbase.CellComparatorImpl::compare(org.apache.hadoop.hbase.Cell,org.apache.hadoop.hbase.Cell)
(t 36.4,s 0.0)
org.apache.hadoop.hbase.CellComparatorImpl::compare(org.apache.hadoop.hbase.Cell,org.apache.hadoop.hbase.Cell,boolean)
(t 36.4,s 36.4)
org.apache.hadoop.hbase.CellComparatorImpl::compareRows(org.apache.hadoop.hbase.Cell,org.apache.hadoop.hbase.Cell)
(t 27.3,s 0.0)
java.util.concurrent.ConcurrentSkipListMap::cpr(java.util.Comparator,java.lang.Object,java.lang.Object)
(t 27.3,s 0.0)
org.apache.hadoop.hbase.CellComparatorImpl::compare(java.lang.Object,java.lang.Object)
(t 27.3,s 0.0)
org.apache.hadoop.hbase.CellComparatorImpl::compare(org.apache.hadoop.hbase.Cell,org.apache.hadoop.hbase.Cell)
(t 27.3,s 0.0)
org.apache.hadoop.hbase.CellComparatorImpl::compare(org.apache.hadoop.hbase.Cell,org.apache.hadoop.hbase.Cell,boolean)
(t 27.3,s 0.0)
org.apache.hadoop.hbase.CellComparatorImpl::compareRows(org.apache.hadoop.hbase.Cell,org.apache.hadoop.hbase.Cell)
(t 18.2,s 18.2)
org.apache.hadoop.hbase.util.ByteBufferUtils::compareTo(java.nio.ByteBuffer,int,int,java.nio.ByteBuffer,int,int)
(t 9.1,s 0.0)
org.apache.hadoop.hbase.ByteBufferKeyValue::getRowLength()
(t 9.1,s 0.0)
org.apache.hadoop.hbase.ByteBufferKeyValue::getRowLen()
(t 9.1,s 0.0)
org.apache.hadoop.hbase.util.ByteBufferUtils::toShort(java.nio.ByteBuffer,int)
(t 9.1,s 0.0)
org.apache.hadoop.hbase.util.UnsafeAccess::toShort(java.nio.ByteBuffer,int)
(t 9.1,s 9.1)
org.apache.hadoop.hbase.util.UnsafeAccess::getAsShort(java.nio.ByteBuffer,int)
(t 9.1,s 0.0)
org.apache.hadoop.hbase.regionserver.Segment::updateMetaInfo(org.apache.hadoop.hbase.Cell,boolean,boolean,org.apache.hadoop.hbase.regionserver.MemStoreSizing)
(t 9.1,s 0.0)
org.apache.hadoop.hbase.regionserver.TimeRangeTracker::includeTimestamp(org.apache.hadoop.hbase.Cell)
(t 9.1,s 0.0)
org.apache.hadoop.hbase.regionserver.TimeRangeTracker::includeTimestamp(long)
(t 9.1,s 9.1)
org.apache.hadoop.hbase.regionserver.TimeRangeTracker$SyncTimeRangeTracker::getMin(){code}
> [TESTING] Performance
> ---------------------
>
> Key: HBASE-20188
> URL: https://issues.apache.org/jira/browse/HBASE-20188
> Project: HBase
> Issue Type: Umbrella
> Components: Performance
> Reporter: stack
> Assignee: stack
> Priority: Blocker
> Fix For: 2.0.0
>
> Attachments: CAM-CONFIG-V01.patch, ITBLL2.5B_1.2.7vs2.0.0_cpu.png,
> ITBLL2.5B_1.2.7vs2.0.0_gctime.png, ITBLL2.5B_1.2.7vs2.0.0_iops.png,
> ITBLL2.5B_1.2.7vs2.0.0_load.png, ITBLL2.5B_1.2.7vs2.0.0_memheap.png,
> ITBLL2.5B_1.2.7vs2.0.0_memstore.png, ITBLL2.5B_1.2.7vs2.0.0_ops.png,
> ITBLL2.5B_1.2.7vs2.0.0_ops_NOT_summing_regions.png, YCSB_CPU.png,
> YCSB_GC_TIME.png, YCSB_IN_MEMORY_COMPACTION=NONE.ops.png, YCSB_MEMSTORE.png,
> YCSB_OPs.png, YCSB_in-memory-compaction=NONE.ops.png, YCSB_load.png,
> flamegraph-1072.1.svg, flamegraph-1072.2.svg, tree.txt
>
>
> How does 2.0.0 compare to old versions? Is it faster, slower? There is rumor
> that it is much slower, that the problem is the asyncwal writing. Does
> in-memory compaction slow us down or speed us up? What happens when you
> enable offheaping?
> Keep notes here in this umbrella issue. Need to be able to say something
> about perf when 2.0.0 ships.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)