You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ra...@apache.org on 2018/12/18 06:33:55 UTC

carbondata git commit: [HOTFIX] Fixed Query performance issue

Repository: carbondata
Updated Branches:
  refs/heads/master a437425a0 -> ad2c0e972


[HOTFIX] Fixed Query performance issue

Problem
When some pages is giving 0 rows, then also BlockletScanResult is uncompressing all the pages. When compression is high and one blocklet contains more number of pages in this case page uncompression is taking more time and impacting query performance.

Solution
Added check if number of record after filtering is 0 then no need to uncompress that page

This closes #2985


Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/ad2c0e97
Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/ad2c0e97
Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/ad2c0e97

Branch: refs/heads/master
Commit: ad2c0e972bd60f5f658816d2ab41641ce7e81358
Parents: a437425
Author: kumarvishal09 <ku...@gmail.com>
Authored: Thu Dec 13 11:40:18 2018 +0530
Committer: ravipesala <ra...@gmail.com>
Committed: Tue Dec 18 12:03:39 2018 +0530

----------------------------------------------------------------------
 .../carbondata/core/scan/result/BlockletScannedResult.java     | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/carbondata/blob/ad2c0e97/core/src/main/java/org/apache/carbondata/core/scan/result/BlockletScannedResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/result/BlockletScannedResult.java b/core/src/main/java/org/apache/carbondata/core/scan/result/BlockletScannedResult.java
index c04df52..4ec7b38 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/result/BlockletScannedResult.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/result/BlockletScannedResult.java
@@ -663,6 +663,12 @@ public abstract class BlockletScannedResult {
       return true;
     } else if (pageCounter < pageFilteredRowCount.length) {
       pageCounter++;
+      if (pageCounter >= pageFilteredRowCount.length) {
+        return false;
+      }
+      if (this.pageFilteredRowCount[pageCounter] == 0) {
+        return hasNext();
+      }
       fillDataChunks();
       rowCounter = 0;
       currentRow = -1;