Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-2390

regression: MergeJoinBatch size exceeds 64k limit

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.8.0
    • 0.8.0
    • Functions - Drill
    • None

    Description

      #Wed Mar 04 01:23:42 EST 2015
      git.commit.id.abbrev=71b6bfe

      Enable merge join, following query hits the batch size limit issue.

      0: jdbc:drill:schema=dfs.drillTestDirComplexJ> alter session set `planner.enable_mergejoin` = true;
      +------------+------------+
      |     ok     |  summary   |
      +------------+------------+
      | true       | planner.enable_mergejoin updated. |
      +------------+------------+
      1 row selected (0.03 seconds)
      0: jdbc:drill:schema=dfs.drillTestDirComplexJ> alter session set `planner.enable_hashjoin` = false;
      +------------+------------+
      |     ok     |  summary   |
      +------------+------------+
      | true       | planner.enable_hashjoin updated. |
      +------------+------------+
      1 row selected (0.025 seconds)
      0: jdbc:drill:schema=dfs.drillTestDirComplexJ> select count(a.id) from `complex100k.json` a inner join `complex100k.json` b on a.gbyi=b.gbyi;
      +------------+
      |   EXPR$0   |
      +------------+
      Query failed: RemoteRpcException: Failure while running fragment., Incoming batch of org.apache.drill.exec.physical.impl.join.MergeJoinBatch has size 3276800, which is beyond the limit of 65536 [ e26545df-a8c3-4cd6-b02a-1872db4ac41f on qa-node120.qa.lab:31010 ]
      [ e26545df-a8c3-4cd6-b02a-1872db4ac41f on qa-node120.qa.lab:31010 ]
      
      
      java.lang.RuntimeException: java.sql.SQLException: Failure while executing query.
      	at sqlline.SqlLine$IncrementalRows.hasNext(SqlLine.java:2514)
      	at sqlline.SqlLine$TableOutputFormat.print(SqlLine.java:2148)
      	at sqlline.SqlLine.print(SqlLine.java:1809)
      	at sqlline.SqlLine$Commands.execute(SqlLine.java:3766)
      	at sqlline.SqlLine$Commands.sql(SqlLine.java:3663)
      	at sqlline.SqlLine.dispatch(SqlLine.java:889)
      	at sqlline.SqlLine.begin(SqlLine.java:763)
      	at sqlline.SqlLine.start(SqlLine.java:498)
      	at sqlline.SqlLine.main(SqlLine.java:460)
      

      This worked before.

      Attachments

        Activity

          People

            cchang@maprtech.com Chun Chang
            cchang@maprtech.com Chun Chang
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: