You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafodion.apache.org by "Suresh Subbiah (JIRA)" <ji...@apache.org> on 2015/10/08 01:16:27 UTC
[jira] [Assigned] (TRAFODION-1257) LP Bug: 1461155 - CPU
consumption increases dramatically for larger transaction
[ https://issues.apache.org/jira/browse/TRAFODION-1257?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Suresh Subbiah reassigned TRAFODION-1257:
-----------------------------------------
Assignee: Sean Broeder
Please close with an appropriate comment if that is the best option
> LP Bug: 1461155 - CPU consumption increases dramatically for larger transaction
> -------------------------------------------------------------------------------
>
> Key: TRAFODION-1257
> URL: https://issues.apache.org/jira/browse/TRAFODION-1257
> Project: Apache Trafodion
> Issue Type: Bug
> Components: dtm
> Reporter: Hans Zeller
> Assignee: Sean Broeder
> Priority: Critical
>
> What I am seeing is the region server 100% busy when we have larger transactions, with thousands of rows. It seems that the CPU cycles are almost all spent in org.apache.hadoop.hbase.client.Mutation.getFamilyMap(Mutation.java:276). I found this by doing several jstack calls on the region server.
> Here is the full stack trace:
> at org.apache.hadoop.hbase.client.Mutation.getFamilyMap(Mutation.java:276)
> at org.apache.hadoop.hbase.regionserver.transactional.TrxTransactionState$WriteAction.getKeyValues(TrxTransactionState.java:910)
> - locked <0x00000000dd583978> (a org.apache.hadoop.hbase.regionserver.transactional.TrxTransactionState$WriteAction)
> at org.apache.hadoop.hbase.regionserver.transactional.TrxTransactionState.getAllKVs(TrxTransactionState.java:551)
> - locked <0x00000000d55751b8> (a org.apache.hadoop.hbase.regionserver.transactional.TrxTransactionState)
> at org.apache.hadoop.hbase.regionserver.transactional.TrxTransactionState.access$100(TrxTransactionState.java:66)
> at org.apache.hadoop.hbase.regionserver.transactional.TrxTransactionState$TransactionScanner.<init>(TrxTransactionState.java:616)
> at org.apache.hadoop.hbase.regionserver.transactional.TrxTransactionState.getScanner(TrxTransactionState.java:494)
> at org.apache.hadoop.hbase.coprocessor.transactional.TrxRegionEndpoint.getScanner(TrxRegionEndpoint.java:3847)
> at org.apache.hadoop.hbase.coprocessor.transactional.TrxRegionEndpoint.get(TrxRegionEndpoint.java:3813)
> at org.apache.hadoop.hbase.coprocessor.transactional.TrxRegionEndpoint.checkAndPut(TrxRegionEndpoint.java:3749)
> at org.apache.hadoop.hbase.coprocessor.transactional.TrxRegionEndpoint.checkAndPut(TrxRegionEndpoint.java:1163)
> at org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos$TrxRegionService.callMethod(TrxRegionProtos.java:28462)
> at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:5685)
> at org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3421)
> at org.apache.hadoop.hbase.regionserver.HRegionServer.execService(HRegionServer.java:3403)
> at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:29929)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2031)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108)
> at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:116)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:96)
> at java.lang.Thread.run(Thread.java:745)
> Some performance measurements:
> Number of rows time without time with
> inserted transaction transaction
> -------------- ------------ -----------
> 10,000 9 sec 33 sec
> 100,000 45 sec 3612 sec
> Testcase:
> cqd attempt_esp_parallelism 'off';
> drop table txninsert;
> create table txninsert(id int not null,
> ts int not null,
> a int,
> b int,
> c char(500),
> primary key (id, ts));
> -- use this to enable/disable DTM transactions
> -- cqd TRAF_NO_DTM_XN 'on';
> -- cqd TRAF_NO_DTM_XN reset;
> prepare s1 from
> insert
> into txninsert
> select num/10, mod(num,10), num, 1, cast(num as char(10))
> from (select 10000*e4 +
> 1000*e3 + 100*e2 + 10*e1 + e0
> from (values (0)) seed(s)
> transpose 0,1,2,3,4,5,6,7,8,9 as e0
> transpose 0,1,2,3,4,5,6,7,8,9 as e1
> transpose 0,1,2,3,4,5,6,7,8,9 as e2
> transpose 0,1,2,3,4,5,6,7,8,9 as e3
> transpose 0,1,2,3,4,5,6,7,8,9 as e4
> ) t(num);
> explain options 'f' s1;
> execute s1;
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)