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)