You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafodion.apache.org by "Alice Chen (JIRA)" <ji...@apache.org> on 2015/07/22 20:20:35 UTC
[jira] [Created] (TRAFODION-1257) LP Bug: 1461155 - CPU consumption
increases dramatically for larger transaction
Alice Chen created TRAFODION-1257:
-------------------------------------
Summary: 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
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)