You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "david_hudavy (JIRA)" <ji...@apache.org> on 2016/05/31 09:46:12 UTC
[jira] [Comment Edited] (DRILL-4696) select four table inner join
result.Waiting for a long time after drill report error
java.lang.OutOfMemoryError: Java heap space
[ https://issues.apache.org/jira/browse/DRILL-4696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15303307#comment-15303307 ]
david_hudavy edited comment on DRILL-4696 at 5/31/16 9:45 AM:
--------------------------------------------------------------
Add four table definitions schema:
Each table has 30 million rows.
Table structure:
CREATE TABLE `a` (
`a_1` tinyint(4) unsigned NOT NULL,
`a_2` bigint(20) unsigned NOT NULL,
`a_3` varchar(255) NOT NULL,
`a_4` varchar(255) DEFAULT NULL,
`a_5` varchar(255) DEFAULT NULL,
`a_6` varbinary(18) DEFAULT NULL,
`a_7` varbinary(8) DEFAULT NULL,
`a_8` varchar(255) DEFAULT NULL,
`a_9` varchar(255) DEFAULT NULL,
`a_10` varchar(5) DEFAULT NULL,
`a_11` int(11) DEFAULT NULL,
`a_12` varchar(255) DEFAULT NULL,
PRIMARY KEY (`a_1`,`a_2`),
KEY `a_3` (`a_3`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `b` (
`b_1` tinyint(4) unsigned NOT NULL,
`b_2` bigint(20) unsigned NOT NULL,
`b_3` varchar(32) NOT NULL,
`b_4` varchar(255) DEFAULT NULL,
KEY `b_1` (`b_1`,`b_2`),
KEY `b_3` (`b_3`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `c` (
`c_1` tinyint(4) unsigned NOT NULL,
`c_2` bigint(20) unsigned NOT NULL,
`c_3` varchar(32) NOT NULL,
`c_4` varchar(15) DEFAULT NULL,
`c_5` varchar(15) DEFAULT NULL,
PRIMARY KEY (`c_1`,`c_2`),
KEY `c_3` (`c_3`),
KEY `c_4` (`c_4`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `d` (
`d_1` tinyint(4) unsigned NOT NULL,
`d_2` bigint(20) unsigned NOT NULL,
`d_3` varchar(32) NOT NULL,
`d_4` int(11) DEFAULT NULL,
`d_5` bigint(20) DEFAULT NULL,
`d_6` int(11) DEFAULT NULL,
`d_7` varchar(255) DEFAULT NULL,
`d_8` varchar(5) DEFAULT NULL,
PRIMARY KEY (`d_1`,`d_1`),
KEY `mscId` (`d_3`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
was (Author: david_hudavy):
Add four table definitions schema:
Each table has 30 million rows.
Table structure:
CREATE TABLE `Eps` (
`DSG` tinyint(4) unsigned NOT NULL,
`ENTRY_KEY` bigint(20) unsigned NOT NULL,
`mscId` varchar(255) NOT NULL,
`EpsMmeAddr` varchar(255) DEFAULT NULL,
`EpsMmeRealm` varchar(255) DEFAULT NULL,
`EpsLastInsertSent` varbinary(18) DEFAULT NULL,
`EpsMobilityNotifInfo` varbinary(8) DEFAULT NULL,
`EpsAaaAddr` varchar(255) DEFAULT NULL,
`EpsAaaRealm` varchar(255) DEFAULT NULL,
`EpsMmeRegServ` varchar(5) DEFAULT NULL,
`EpsHomoImsVoip` int(11) DEFAULT NULL,
`EpsUeSrVccCap` varchar(255) DEFAULT NULL,
PRIMARY KEY (`DSG`,`ENTRY_KEY`),
KEY `mscId` (`mscId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `Eps_EpsImei` (
`DSG` tinyint(4) unsigned NOT NULL,
`ENTRY_KEY` bigint(20) unsigned NOT NULL,
`mscId` varchar(32) NOT NULL,
`EpsImeiSv` varchar(255) DEFAULT NULL,
KEY `DSG` (`DSG`,`ENTRY_KEY`),
KEY `mscId` (`mscId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `EpsStatic` (
`DSG` tinyint(4) unsigned NOT NULL,
`ENTRY_KEY` bigint(20) unsigned NOT NULL,
`mscId` varchar(32) NOT NULL,
`EpsAccessRestriction` int(11) DEFAULT NULL,
`EpsIndDefContextId` bigint(20) DEFAULT NULL,
`EpsOdb` int(11) DEFAULT NULL,
`EpsProfileId` varchar(255) DEFAULT NULL,
`EpsRoamAllow` varchar(5) DEFAULT NULL,
PRIMARY KEY (`DSG`,`ENTRY_KEY`),
KEY `mscId` (`mscId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `mscIden` (
`DSG` tinyint(4) unsigned NOT NULL,
`ENTRY_KEY` bigint(20) unsigned NOT NULL,
`mscId` varchar(32) NOT NULL,
`IMSI` varchar(15) DEFAULT NULL,
`MSISDN` varchar(15) DEFAULT NULL,
PRIMARY KEY (`DSG`,`ENTRY_KEY`),
KEY `mscId` (`mscId`),
KEY `MSISDN` (`MSISDN`),
KEY `IMSI` (`IMSI`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
> select four table inner join result.Waiting for a long time after drill report error java.lang.OutOfMemoryError: Java heap space
> --------------------------------------------------------------------------------------------------------------------------------
>
> Key: DRILL-4696
> URL: https://issues.apache.org/jira/browse/DRILL-4696
> Project: Apache Drill
> Issue Type: Bug
> Components: Functions - Drill
> Affects Versions: 1.6.0
> Environment: Test Environment:
> SUSE Linux Enterprise Server 11 SP3 (x86_64) cluster
> MySQL 5.7.11 Enterprise Server - Advanced Edition
> Drill cluster
> Reporter: david_hudavy
>
> Test Environment:
> cluster 10-3
> MySQL 5.7.11 Enterprise Server - Advanced Edition
> Drill cluster
> Test Scope:
> select performance of huge table(30M records).
> MySQL table: a b c d inner join (Four table each have 30M records)
> -- four table inner join: (take time Drill Crash)
> 0: jdbc:drill:zk=SC-1:6181,SC-2:6181,PL-3:618> select
> . . . . . . . . . . . . . . . . . . . . . . .> d.d_5,
> . . . . . . . . . . . . . . . . . . . . . . .> c.c_3,
> . . . . . . . . . . . . . . . . . . . . . . .> a.a_4,
> . . . . . . . . . . . . . . . . . . . . . . .> a.a_5,
> . . . . . . . . . . . . . . . . . . . . . . .> a.a_6,
> . . . . . . . . . . . . . . . . . . . . . . .> a.a_7,
> . . . . . . . . . . . . . . . . . . . . . . .> a.a_8 ,
> . . . . . . . . . . . . . . . . . . . . . . .> a.a_9 ,
> . . . . . . . . . . . . . . . . . . . . . . .> a.a_10,
> . . . . . . . . . . . . . . . . . . . . . . .> a.a_11 ,
> . . . . . . . . . . . . . . . . . . . . . . .> a.a_12,
> . . . . . . . . . . . . . . . . . . . . . . .> b.b_4
> . . . . . . . . . . . . . . . . . . . . . . .> from mysql.user_data.a,mysql.user_data.b,mysql.user_data.c,mysql.user_data.d
> . . . . . . . . . . . . . . . . . . . . . . .> where c.c_3=a.a_3 and a.a_3 =b.b_3 and b.b_3=d.d_3
> . . . . . . . . . . . . . . . . . . . . . . .> and c.c_3='0';
> Drill Crash
> 2016-05-13 09:52:35,131 [28cacd19-0f04-cbb1-b418-73a76dcd6ebe:frag:0:0] ERROR o.a.drill.common.CatastrophicFailure - Catastrophic Failure Occurred, exiting. Information message: Unable to handle out of memory condition in FragmentExecutor.
> java.lang.OutOfMemoryError: Java heap space
> at com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:2157) ~[mysql-connector-java-5.1.38-bin.jar:5.1.38]
> at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1964) ~[mysql-connector-java-5.1.38-bin.jar:5.1.38]
> at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:3316) ~[mysql-connector-java-5.1.38-bin.jar:5.1.38]
> at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:463) ~[mysql-connector-java-5.1.38-bin.jar:5.1.38]
> at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:3040) ~[mysql-connector-java-5.1.38-bin.jar:5.1.38]
> at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:2288) ~[mysql-connector-java-5.1.38-bin.jar:5.1.38]
> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2681) ~[mysql-connector-java-5.1.38-bin.jar:5.1.38]
> at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2547) ~[mysql-connector-java-5.1.38-bin.jar:5.1.38]
> at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2505) ~[mysql-connector-java-5.1.38-bin.jar:5.1.38]
> at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1370) ~[mysql-connector-java-5.1.38-bin.jar:5.1.38]
> at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208) ~[commons-dbcp-1.4.jar:1.4]
> at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208) ~[commons-dbcp-1.4.jar:1.4]
> at org.apache.drill.exec.store.jdbc.JdbcRecordReader.setup(JdbcRecordReader.java:177) ~[drill-jdbc-storage-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ScanBatch.<init>(ScanBatch.java:108) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ScanBatch.<init>(ScanBatch.java:136) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.store.jdbc.JdbcBatchCreator.getBatch(JdbcBatchCreator.java:40) ~[drill-jdbc-storage-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.store.jdbc.JdbcBatchCreator.getBatch(JdbcBatchCreator.java:33) ~[drill-jdbc-storage-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch(ImplCreator.java:146) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ImplCreator.getChildren(ImplCreator.java:169) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch(ImplCreator.java:126) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ImplCreator.getChildren(ImplCreator.java:169) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch(ImplCreator.java:126) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ImplCreator.getChildren(ImplCreator.java:169) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch(ImplCreator.java:126) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ImplCreator.getChildren(ImplCreator.java:169) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch(ImplCreator.java:126) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ImplCreator.getChildren(ImplCreator.java:169) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch(ImplCreator.java:126) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ImplCreator.getChildren(ImplCreator.java:169) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ImplCreator.getRootExec(ImplCreator.java:100) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.physical.impl.ImplCreator.getExec(ImplCreator.java:78) ~[drill-java-exec-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:231) ~[drill-java-exec-1.6.0.jar:1.6.0]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)