Uploaded image for project: 'Tajo'
  1. Tajo
  2. TAJO-1343

Improve the memory usage of physical executors

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.11.0
    • Component/s: Physical Operator
    • Labels:
      None

      Description

      Introduction
      Basically, the tuple instance is maintained as a singleton in physical operators. However, there are some memory-based operator types which need to keep multiple tuples in the memory. In these operators, multiple instances must be created for each tuple.

      Problem
      Currently, there are some temporal routines to avoid unexpected problems due to the singleton instance of tuple. However, the methodology is inconsistent and complex, which causes unexpected bugs.

      Solution
      A consistent methodology is needed to handle this problem. Only the operators that keep multiple tuples in memory must maintain those tuples with separate instances.

      1. 1343-memory.png
        161 kB
        Jihoon Son
      2. master-memory.png
        161 kB
        Jihoon Son

        Activity

        Hide
        jihoonson Jihoon Son added a comment -

        Here is my idea.

        • The producer operators (i.e., scan, aggregation, join, expr eval, and sort) basically maintain the singleton instance for output tuples.
        • The store operator is the consumer, and doesn't require the output tuple.
        • Every other operators don't have to maintain any instances for output tuples.
        • Some operators (e.g., hash join, hash aggregation, etc) use the memory space to keep multiple instances of the tuple. They must copy the tuple read from their child operators when storing tuples in memory.
        Show
        jihoonson Jihoon Son added a comment - Here is my idea. The producer operators (i.e., scan, aggregation, join, expr eval, and sort) basically maintain the singleton instance for output tuples. The store operator is the consumer, and doesn't require the output tuple. Every other operators don't have to maintain any instances for output tuples. Some operators (e.g., hash join, hash aggregation, etc) use the memory space to keep multiple instances of the tuple. They must copy the tuple read from their child operators when storing tuples in memory.
        Hide
        hyunsik Hyunsik Choi added a comment -

        Is this a blocker of 0.10 release? Otherwise, I'd like to reschedule this issue to 0.11.

        Show
        hyunsik Hyunsik Choi added a comment - Is this a blocker of 0.10 release? Otherwise, I'd like to reschedule this issue to 0.11.
        Hide
        hyunsik Hyunsik Choi added a comment -

        You do not seem to start this issue. I just rescheduled this issue to 0.11. If you want to resolve this issue in 0.10, please let me know.

        Show
        hyunsik Hyunsik Choi added a comment - You do not seem to start this issue. I just rescheduled this issue to 0.11. If you want to resolve this issue in 0.10, please let me know.
        Hide
        jihoonson Jihoon Son added a comment -

        Hyunsik Choi thanks for rescheduling.
        I didn't start yet, and will finish until the next release.

        Show
        jihoonson Jihoon Son added a comment - Hyunsik Choi thanks for rescheduling. I didn't start yet, and will finish until the next release.
        Hide
        githubbot ASF GitHub Bot added a comment -

        GitHub user jihoonson opened a pull request:

        https://github.com/apache/tajo/pull/634

        TAJO-1343: Improve the memory usage of physical executors

        Here are some highlights.

        • Cleanup duplicated tuple creation.
        • To maintain tuple creation easily, I've added three new data structures, called TupleMap, TupleList, and TupleSet. They automatically clone tuples whenever a new item is added.
        • Fix a bug in WindowAggregation and two wrong tests.
        • Fix a bug in timezone.

        I will conduct some tests and share the results.

        You can merge this pull request into a Git repository by running:

        $ git pull https://github.com/jihoonson/tajo-2 TAJO-1343_2

        Alternatively you can review and apply these changes as the patch at:

        https://github.com/apache/tajo/pull/634.patch

        To close this pull request, make a commit to your master/trunk branch
        with (at least) the following in the commit message:

        This closes #634


        commit 6b8ccc2f36712bd6c8d4d5610cbfdac70d1afba0
        Author: Jihoon Son <jihoonson@apache.org>
        Date: 2015-07-13T06:56:49Z

        TAJO-1343_2

        commit b9bec79372d010f8645067237c9656cc4c0e60d4
        Author: Jihoon Son <jihoonson@apache.org>
        Date: 2015-07-13T07:42:08Z

        TAJO-1343_2

        commit e9a40da63ee7376cd60ba537d1f5ab06f636bca6
        Author: Jihoon Son <jihoonson@apache.org>
        Date: 2015-07-13T08:49:23Z

        TAJO-1343_2

        commit 877c20250d196954edf49ccfb70fd20a520b2985
        Author: Jihoon Son <jihoonson@apache.org>
        Date: 2015-07-14T01:34:57Z

        Fix a bug in window function

        commit f5fa81d82901304833ae7b65c7f3c82044c40acb
        Author: Jihoon Son <jihoonson@apache.org>
        Date: 2015-07-14T13:55:44Z

        Remaining OOM

        commit f6193e6881eb15d1e2be8d7594206e2ea2071f9c
        Author: Jihoon Son <jihoonson@apache.org>
        Date: 2015-07-15T10:10:13Z

        Fix OOM

        commit dd91fdd31ec0c7ca561f29f2debf402d8dcf2be3
        Author: Jihoon Son <jihoonson@apache.org>
        Date: 2015-07-15T13:18:14Z

        Fix test failures

        commit 482072fd9eaa4eccc40c12c9f32c0c822d67d3a8
        Author: Jihoon Son <jihoonson@apache.org>
        Date: 2015-07-16T08:07:35Z

        Fixed RangeShuffleWriteExec bug

        commit d3793e4c5bb8234bf31bd99c55590b7065d27386
        Author: Jihoon Son <jihoonson@apache.org>
        Date: 2015-07-16T16:46:54Z

        Passed all tests

        commit 230d57033791dd3dd78e560f7db36a9bbc0451d5
        Author: Jihoon Son <jihoonson@apache.org>
        Date: 2015-07-17T09:53:58Z

        Fix every test failure and add comments

        commit 5ebe05dc9f7464af040050e0ec17bf2ca0cf4fdc
        Author: Jihoon Son <jihoonson@apache.org>
        Date: 2015-07-17T09:55:11Z

        Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TAJO-1343_2

        Conflicts:
        tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java


        Show
        githubbot ASF GitHub Bot added a comment - GitHub user jihoonson opened a pull request: https://github.com/apache/tajo/pull/634 TAJO-1343 : Improve the memory usage of physical executors Here are some highlights. Cleanup duplicated tuple creation. To maintain tuple creation easily, I've added three new data structures, called TupleMap, TupleList, and TupleSet. They automatically clone tuples whenever a new item is added. Fix a bug in WindowAggregation and two wrong tests. Fix a bug in timezone. I will conduct some tests and share the results. You can merge this pull request into a Git repository by running: $ git pull https://github.com/jihoonson/tajo-2 TAJO-1343 _2 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/tajo/pull/634.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #634 commit 6b8ccc2f36712bd6c8d4d5610cbfdac70d1afba0 Author: Jihoon Son <jihoonson@apache.org> Date: 2015-07-13T06:56:49Z TAJO-1343 _2 commit b9bec79372d010f8645067237c9656cc4c0e60d4 Author: Jihoon Son <jihoonson@apache.org> Date: 2015-07-13T07:42:08Z TAJO-1343 _2 commit e9a40da63ee7376cd60ba537d1f5ab06f636bca6 Author: Jihoon Son <jihoonson@apache.org> Date: 2015-07-13T08:49:23Z TAJO-1343 _2 commit 877c20250d196954edf49ccfb70fd20a520b2985 Author: Jihoon Son <jihoonson@apache.org> Date: 2015-07-14T01:34:57Z Fix a bug in window function commit f5fa81d82901304833ae7b65c7f3c82044c40acb Author: Jihoon Son <jihoonson@apache.org> Date: 2015-07-14T13:55:44Z Remaining OOM commit f6193e6881eb15d1e2be8d7594206e2ea2071f9c Author: Jihoon Son <jihoonson@apache.org> Date: 2015-07-15T10:10:13Z Fix OOM commit dd91fdd31ec0c7ca561f29f2debf402d8dcf2be3 Author: Jihoon Son <jihoonson@apache.org> Date: 2015-07-15T13:18:14Z Fix test failures commit 482072fd9eaa4eccc40c12c9f32c0c822d67d3a8 Author: Jihoon Son <jihoonson@apache.org> Date: 2015-07-16T08:07:35Z Fixed RangeShuffleWriteExec bug commit d3793e4c5bb8234bf31bd99c55590b7065d27386 Author: Jihoon Son <jihoonson@apache.org> Date: 2015-07-16T16:46:54Z Passed all tests commit 230d57033791dd3dd78e560f7db36a9bbc0451d5 Author: Jihoon Son <jihoonson@apache.org> Date: 2015-07-17T09:53:58Z Fix every test failure and add comments commit 5ebe05dc9f7464af040050e0ec17bf2ca0cf4fdc Author: Jihoon Son <jihoonson@apache.org> Date: 2015-07-17T09:55:11Z Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TAJO-1343 _2 Conflicts: tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
        Hide
        jihoonson Jihoon Son added a comment -

        Attached profiling results.

        Show
        jihoonson Jihoon Son added a comment - Attached profiling results.
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user jihoonson commented on the pull request:

        https://github.com/apache/tajo/pull/634#issuecomment-122641665

        I've tested this patch on my laptop using YourKit.
        Here are some highlights of the results.

            1. Query and data
              I used the following query on TPC-H data set with the scale factor of 1.
              ```
              default> select count(distinct l_partkey) from lineitem;
              ```
            1. 1. Tuple creation
              The following numbers were randomly captured during executing the second phase of distinct aggregation. So, it would not be the exact comparison, but is valuable I think.
              1. Master
                Class Objects Shallow Size Retained Size
                ------------- :-------------: ------------------: -------------------:
                org.apache.tajo.storage.VTuple 3,899,275 93,582,600 112,627,520
                org.apache.tajo.datum.Datum[] 3,899,275 87,335,008 96,857,392
              1. Tajo-1343
                Class Objects Shallow Size Retained Size
                ------------- :-------------: ------------------: -------------------:
                org.apache.tajo.engine.planner.physical.KeyTuple 2,573,412 82,349,184 95,913,472
                org.apache.tajo.storage.VTuple 398,023 9,552,552 9,552,984
                org.apache.tajo.datum.Datum[] 2,971,439 71,314,440 78,096,672

        As can be seen in the above result, the total size of generated tuples in TAJO-1343 is less than that in master. The difference is 7,161,064.

            1. 2. Memory usage
              The following graphs show the changes of memory usage during query execution.
                1. < Memory usage of with master >
                  ![memory usage of with master](https://issues.apache.org/jira/secure/attachment/12745995/master-memory.png)
                2. < Memory usage of with TAJO-1343 >
                  ![memory usage of with TAJO-1343](https://issues.apache.org/jira/secure/attachment/12745994/1343-memory.png)

        The gray part in each graph represents the change of memory usage during query execution.
        As can be seen in the graphs, memory usage change with TAJO-1343 is more gracefully than that with master.

        The following numbers were captured when the query is finished because it's the time when the numbers become the maximum.

        branch name Allocated all pools Used PS Eden Space Used PS Survivor Space Used PS Old Gen
        1. of GCs
        ------------- ------------- :-------------: ------------------: -------------------: -------------------:
        master 1006 634 22 63 4
        TAJO-1343 1002 518 43 71 3

        The amount of ```allocated all pools``` with TAJO-1343 is similar to that of master. However, ```used PS eden space``` with TAJO-1343 is about 100 MB less than that with master. This means that the less objects are newly created during query execution.

        In this test, the numbers of GCs with both branches are similar, so it is of less significance. However, I think that the difference in number of GCs will be increased with more complex queries, thereby more significantly affecting to the query performance.

        Show
        githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on the pull request: https://github.com/apache/tajo/pull/634#issuecomment-122641665 I've tested this patch on my laptop using YourKit. Here are some highlights of the results. Query and data I used the following query on TPC-H data set with the scale factor of 1. ``` default> select count(distinct l_partkey) from lineitem; ``` 1. Tuple creation The following numbers were randomly captured during executing the second phase of distinct aggregation. So, it would not be the exact comparison, but is valuable I think. Master Class Objects Shallow Size Retained Size ------------- :-------------: ------------------: -------------------: org.apache.tajo.storage.VTuple 3,899,275 93,582,600 112,627,520 org.apache.tajo.datum.Datum[] 3,899,275 87,335,008 96,857,392 Tajo-1343 Class Objects Shallow Size Retained Size ------------- :-------------: ------------------: -------------------: org.apache.tajo.engine.planner.physical.KeyTuple 2,573,412 82,349,184 95,913,472 org.apache.tajo.storage.VTuple 398,023 9,552,552 9,552,984 org.apache.tajo.datum.Datum[] 2,971,439 71,314,440 78,096,672 As can be seen in the above result, the total size of generated tuples in TAJO-1343 is less than that in master. The difference is 7,161,064. 2. Memory usage The following graphs show the changes of memory usage during query execution. < Memory usage of with master > ! [memory usage of with master] ( https://issues.apache.org/jira/secure/attachment/12745995/master-memory.png ) < Memory usage of with TAJO-1343 > ! [memory usage of with TAJO-1343] ( https://issues.apache.org/jira/secure/attachment/12745994/1343-memory.png ) The gray part in each graph represents the change of memory usage during query execution. As can be seen in the graphs, memory usage change with TAJO-1343 is more gracefully than that with master. The following numbers were captured when the query is finished because it's the time when the numbers become the maximum. branch name Allocated all pools Used PS Eden Space Used PS Survivor Space Used PS Old Gen of GCs ------------- ------------- :-------------: ------------------: -------------------: -------------------: master 1006 634 22 63 4 TAJO-1343 1002 518 43 71 3 The amount of ```allocated all pools``` with TAJO-1343 is similar to that of master. However, ```used PS eden space``` with TAJO-1343 is about 100 MB less than that with master. This means that the less objects are newly created during query execution. In this test, the numbers of GCs with both branches are similar, so it is of less significance. However, I think that the difference in number of GCs will be increased with more complex queries, thereby more significantly affecting to the query performance.
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user jihoonson commented on the pull request:

        https://github.com/apache/tajo/pull/634#issuecomment-122748423

        @jinossy thanks for your review.
        I've added ```clear()``` in ```put()``` method because I was considering unexpected errors when the datum array of different length is put.
        As you think, this may accompany large overhead. I will remove it after some test.

        Show
        githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on the pull request: https://github.com/apache/tajo/pull/634#issuecomment-122748423 @jinossy thanks for your review. I've added ```clear()``` in ```put()``` method because I was considering unexpected errors when the datum array of different length is put. As you think, this may accompany large overhead. I will remove it after some test.
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user jihoonson commented on the pull request:

        https://github.com/apache/tajo/pull/634#issuecomment-122884134

        I've added a configuration ```tajo.executor.memory-tuple-slot-num``` to set the memory tuple slot.

        Show
        githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on the pull request: https://github.com/apache/tajo/pull/634#issuecomment-122884134 I've added a configuration ```tajo.executor.memory-tuple-slot-num``` to set the memory tuple slot.
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user jihoonson commented on the pull request:

        https://github.com/apache/tajo/pull/634#issuecomment-122896826

        I've reverted the last changes because it makes unexpected errors.

        Show
        githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on the pull request: https://github.com/apache/tajo/pull/634#issuecomment-122896826 I've reverted the last changes because it makes unexpected errors.
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user jinossy commented on the pull request:

        https://github.com/apache/tajo/pull/634#issuecomment-123561701

        +1 Looks great to me!!

        Show
        githubbot ASF GitHub Bot added a comment - Github user jinossy commented on the pull request: https://github.com/apache/tajo/pull/634#issuecomment-123561701 +1 Looks great to me!!
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user hyunsik commented on a diff in the pull request:

        https://github.com/apache/tajo/pull/634#discussion_r35181083

        — Diff: tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java —
        @@ -82,6 +83,7 @@ public void clear() {
        // Setter
        //////////////////////////////////////////////////////
        public void put(int fieldId, Datum value) {
        + this.offset = -1;
        — End diff –

        Does every put needs the offset initialization?

        Show
        githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on a diff in the pull request: https://github.com/apache/tajo/pull/634#discussion_r35181083 — Diff: tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java — @@ -82,6 +83,7 @@ public void clear() { // Setter ////////////////////////////////////////////////////// public void put(int fieldId, Datum value) { + this.offset = -1; — End diff – Does every put needs the offset initialization?
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user hyunsik commented on the pull request:

        https://github.com/apache/tajo/pull/634#issuecomment-123562379

        +1
        The patch looks good to me. I leaved one trivial issue. It's up to you.

        In addition, you added the removal code in QueryContext.
        https://github.com/apache/tajo/pull/634/files#diff-e0e47538675376e2e0b96ce307a9676bR49

        I think that it would be handled in other places. But, the current workaround looks good to me. I'll solve it in another jira.

        Thanks!

        Show
        githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/634#issuecomment-123562379 +1 The patch looks good to me. I leaved one trivial issue. It's up to you. In addition, you added the removal code in QueryContext. https://github.com/apache/tajo/pull/634/files#diff-e0e47538675376e2e0b96ce307a9676bR49 I think that it would be handled in other places. But, the current workaround looks good to me. I'll solve it in another jira. Thanks!
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user hyunsik commented on the pull request:

        https://github.com/apache/tajo/pull/634#issuecomment-123576450

        +1 ship it!

        Show
        githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/634#issuecomment-123576450 +1 ship it!
        Hide
        jihoonson Jihoon Son added a comment -

        Committed to master

        Show
        jihoonson Jihoon Son added a comment - Committed to master
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user asfgit closed the pull request at:

        https://github.com/apache/tajo/pull/634

        Show
        githubbot ASF GitHub Bot added a comment - Github user asfgit closed the pull request at: https://github.com/apache/tajo/pull/634
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user jihoonson commented on the pull request:

        https://github.com/apache/tajo/pull/634#issuecomment-123630807

        Thanks guys for your review.
        I've just committed to master after removing implicit clear of offset per put() call.

        Show
        githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on the pull request: https://github.com/apache/tajo/pull/634#issuecomment-123630807 Thanks guys for your review. I've just committed to master after removing implicit clear of offset per put() call.
        Hide
        hudson Hudson added a comment -

        SUCCESS: Integrated in Tajo-master-build #762 (See https://builds.apache.org/job/Tajo-master-build/762/)
        TAJO-1343: Improve the memory usage of physical executors. (jihoon) (jihoonson: rev 4820610f4a2a384372aaecf5212bd486c79a65b2)

        • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/CommonHashJoinExec.java
        • tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithLimit3.result
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashShuffleFileWriteExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleList.java
        • tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithLimit3.sql
        • tajo-core/src/test/resources/results/TestSelectNestedRecord/testNestedFieldAsGroupbyKey1.result
        • tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbySortAggregationExec.java
        • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
        • tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java
        • tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithPythonFunc.result
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/MemSortExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbySecondAggregationExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortAggregateExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/rcfile/RCFile.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/CSVFile.java
        • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleSorter.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbyHashAggregationExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/WindowAggExec.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/avro/AvroScanner.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RightOuterMergeJoinExec.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/DelimitedTextFile.java
        • tajo-client/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbyFirstAggregationExec.java
        • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java
        • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftSemiJoinExec.java
        • tajo-core/src/test/resources/results/TestGroupByQuery/testHavingWithAggFunction.result
        • tajo-core/src/test/resources/results/TestWindowQuery/testWindowWithAggregation6.result
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleMap.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleSet.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/TextLineSerDe.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RowFile.java
        • tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbyThirdAggregationExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/MergeJoinExec.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/index/bst/BSTIndex.java
        • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FrameTuple.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortBasedColPartitionStoreExec.java
        • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/ByteBufLineReader.java
        • tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithJson.result
        • tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithJson.json
        • tajo-core/src/main/java/org/apache/tajo/engine/utils/CacheHolder.java
        • tajo-core/src/test/resources/queries/TestSelectNestedRecord/testNestedFieldAsGroupbyKey1.sql
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/KeyProjector.java
        • tajo-core/src/test/resources/results/TestGroupByQuery/testPythonUdaf3.result
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/AggregationExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ExternalSortExec.java
        • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestTupleSorter.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java
        • tajo-plan/src/main/java/org/apache/tajo/plan/TablePropertyUtil.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/StoreTableExec.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RawFile.java
        • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/UnSafeTuple.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/CommonJoinExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/MergeFullOuterJoinExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/NLJoinExec.java
        • tajo-core/src/test/resources/results/TestWindowQuery/testWindowWithAggregation4.result
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftAntiJoinExec.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/CSVLineSerializer.java
        • CHANGES
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/Projector.java
        • tajo-core/src/main/java/org/apache/tajo/engine/query/QueryContext.java
        • tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithPythonFunc2.result
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ComparableVector.java
        • tajo-common/src/main/java/org/apache/tajo/storage/NullTuple.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BNLJoinExec.java
        • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/HeapTuple.java
        • tajo-common/src/main/java/org/apache/tajo/storage/Tuple.java
        • tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java
        • tajo-core/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java
        • tajo-core/src/main/java/org/apache/tajo/engine/utils/TupleUtil.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlanner.java
        • tajo-jdbc/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/VectorizedSorter.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashAggregateExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ProjectionExec.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/sequencefile/SequenceFileScanner.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/KeyTuple.java
        • tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
        Show
        hudson Hudson added a comment - SUCCESS: Integrated in Tajo-master-build #762 (See https://builds.apache.org/job/Tajo-master-build/762/ ) TAJO-1343 : Improve the memory usage of physical executors. (jihoon) (jihoonson: rev 4820610f4a2a384372aaecf5212bd486c79a65b2) tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/CommonHashJoinExec.java tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithLimit3.result tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashShuffleFileWriteExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleList.java tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithLimit3.sql tajo-core/src/test/resources/results/TestSelectNestedRecord/testNestedFieldAsGroupbyKey1.result tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbySortAggregationExec.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithPythonFunc.result tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/MemSortExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbySecondAggregationExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortAggregateExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/rcfile/RCFile.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/CSVFile.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleSorter.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbyHashAggregationExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/WindowAggExec.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/avro/AvroScanner.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RightOuterMergeJoinExec.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/DelimitedTextFile.java tajo-client/src/main/java/org/apache/tajo/storage/RowStoreUtil.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbyFirstAggregationExec.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftSemiJoinExec.java tajo-core/src/test/resources/results/TestGroupByQuery/testHavingWithAggFunction.result tajo-core/src/test/resources/results/TestWindowQuery/testWindowWithAggregation6.result tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleMap.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleSet.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/TextLineSerDe.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RowFile.java tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbyThirdAggregationExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/MergeJoinExec.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/index/bst/BSTIndex.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FrameTuple.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortBasedColPartitionStoreExec.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/ByteBufLineReader.java tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithJson.result tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithJson.json tajo-core/src/main/java/org/apache/tajo/engine/utils/CacheHolder.java tajo-core/src/test/resources/queries/TestSelectNestedRecord/testNestedFieldAsGroupbyKey1.sql tajo-core/src/main/java/org/apache/tajo/engine/planner/KeyProjector.java tajo-core/src/test/resources/results/TestGroupByQuery/testPythonUdaf3.result tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/AggregationExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ExternalSortExec.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestTupleSorter.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java tajo-plan/src/main/java/org/apache/tajo/plan/TablePropertyUtil.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/StoreTableExec.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RawFile.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/UnSafeTuple.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/CommonJoinExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/MergeFullOuterJoinExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/NLJoinExec.java tajo-core/src/test/resources/results/TestWindowQuery/testWindowWithAggregation4.result tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftAntiJoinExec.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/CSVLineSerializer.java CHANGES tajo-core/src/main/java/org/apache/tajo/engine/planner/Projector.java tajo-core/src/main/java/org/apache/tajo/engine/query/QueryContext.java tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithPythonFunc2.result tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ComparableVector.java tajo-common/src/main/java/org/apache/tajo/storage/NullTuple.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BNLJoinExec.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/HeapTuple.java tajo-common/src/main/java/org/apache/tajo/storage/Tuple.java tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java tajo-core/src/main/java/org/apache/tajo/engine/utils/TupleUtil.java tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlanner.java tajo-jdbc/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/VectorizedSorter.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashAggregateExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ProjectionExec.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/sequencefile/SequenceFileScanner.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/KeyTuple.java tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
        Hide
        hudson Hudson added a comment -

        ABORTED: Integrated in Tajo-master-CODEGEN-build #402 (See https://builds.apache.org/job/Tajo-master-CODEGEN-build/402/)
        TAJO-1343: Improve the memory usage of physical executors. (jihoon) (jihoonson: rev 4820610f4a2a384372aaecf5212bd486c79a65b2)

        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/ByteBufLineReader.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RawFile.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/Projector.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleMap.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbySortAggregationExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ComparableVector.java
        • tajo-core/src/main/java/org/apache/tajo/engine/query/QueryContext.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbyFirstAggregationExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/MemSortExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/MergeFullOuterJoinExec.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/sequencefile/SequenceFileScanner.java
        • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FrameTuple.java
        • tajo-core/src/test/resources/results/TestSelectNestedRecord/testNestedFieldAsGroupbyKey1.result
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/NLJoinExec.java
        • tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbyHashAggregationExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RightOuterMergeJoinExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/WindowAggExec.java
        • CHANGES
        • tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithJson.result
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleList.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/DelimitedTextFile.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/TextLineSerDe.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/AggregationExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/KeyProjector.java
        • tajo-core/src/test/resources/results/TestGroupByQuery/testPythonUdaf3.result
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/KeyTuple.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortAggregateExec.java
        • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java
        • tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithPythonFunc.result
        • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/index/bst/BSTIndex.java
        • tajo-jdbc/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java
        • tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithLimit3.sql
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashShuffleFileWriteExec.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/CSVLineSerializer.java
        • tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbyThirdAggregationExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ExternalSortExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/StoreTableExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/utils/CacheHolder.java
        • tajo-core/src/test/resources/queries/TestSelectNestedRecord/testNestedFieldAsGroupbyKey1.sql
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/rcfile/RCFile.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RowFile.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java
        • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java
        • tajo-common/src/main/java/org/apache/tajo/storage/Tuple.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ProjectionExec.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/avro/AvroScanner.java
        • tajo-core/src/test/resources/results/TestWindowQuery/testWindowWithAggregation6.result
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashAggregateExec.java
        • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/HeapTuple.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortBasedColPartitionStoreExec.java
        • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java
        • tajo-core/src/test/resources/results/TestWindowQuery/testWindowWithAggregation4.result
        • tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java
        • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
        • tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BNLJoinExec.java
        • tajo-client/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/CommonHashJoinExec.java
        • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/CSVFile.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/CommonJoinExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java
        • tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithPythonFunc2.result
        • tajo-common/src/main/java/org/apache/tajo/storage/NullTuple.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftSemiJoinExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlanner.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftAntiJoinExec.java
        • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/UnSafeTuple.java
        • tajo-plan/src/main/java/org/apache/tajo/plan/TablePropertyUtil.java
        • tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
        • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java
        • tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithLimit3.result
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/MergeJoinExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java
        • tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithJson.json
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleSet.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleSorter.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/VectorizedSorter.java
        • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestTupleSorter.java
        • tajo-core/src/test/resources/results/TestGroupByQuery/testHavingWithAggFunction.result
        • tajo-core/src/main/java/org/apache/tajo/engine/utils/TupleUtil.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbySecondAggregationExec.java
        • tajo-core/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java
        Show
        hudson Hudson added a comment - ABORTED: Integrated in Tajo-master-CODEGEN-build #402 (See https://builds.apache.org/job/Tajo-master-CODEGEN-build/402/ ) TAJO-1343 : Improve the memory usage of physical executors. (jihoon) (jihoonson: rev 4820610f4a2a384372aaecf5212bd486c79a65b2) tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/ByteBufLineReader.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RawFile.java tajo-core/src/main/java/org/apache/tajo/engine/planner/Projector.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleMap.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbySortAggregationExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ComparableVector.java tajo-core/src/main/java/org/apache/tajo/engine/query/QueryContext.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbyFirstAggregationExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/MemSortExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/MergeFullOuterJoinExec.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/sequencefile/SequenceFileScanner.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FrameTuple.java tajo-core/src/test/resources/results/TestSelectNestedRecord/testNestedFieldAsGroupbyKey1.result tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/NLJoinExec.java tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbyHashAggregationExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RightOuterMergeJoinExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/WindowAggExec.java CHANGES tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithJson.result tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleList.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/DelimitedTextFile.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/TextLineSerDe.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/AggregationExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/KeyProjector.java tajo-core/src/test/resources/results/TestGroupByQuery/testPythonUdaf3.result tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/KeyTuple.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortAggregateExec.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithPythonFunc.result tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/index/bst/BSTIndex.java tajo-jdbc/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithLimit3.sql tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashShuffleFileWriteExec.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/CSVLineSerializer.java tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbyThirdAggregationExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ExternalSortExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/StoreTableExec.java tajo-core/src/main/java/org/apache/tajo/engine/utils/CacheHolder.java tajo-core/src/test/resources/queries/TestSelectNestedRecord/testNestedFieldAsGroupbyKey1.sql tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/rcfile/RCFile.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RowFile.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java tajo-common/src/main/java/org/apache/tajo/storage/Tuple.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ProjectionExec.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/avro/AvroScanner.java tajo-core/src/test/resources/results/TestWindowQuery/testWindowWithAggregation6.result tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashAggregateExec.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/HeapTuple.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortBasedColPartitionStoreExec.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java tajo-core/src/test/resources/results/TestWindowQuery/testWindowWithAggregation4.result tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BNLJoinExec.java tajo-client/src/main/java/org/apache/tajo/storage/RowStoreUtil.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/CommonHashJoinExec.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/CSVFile.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/CommonJoinExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithPythonFunc2.result tajo-common/src/main/java/org/apache/tajo/storage/NullTuple.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftSemiJoinExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlanner.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftAntiJoinExec.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/UnSafeTuple.java tajo-plan/src/main/java/org/apache/tajo/plan/TablePropertyUtil.java tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithLimit3.result tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/MergeJoinExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithJson.json tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleSet.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/TupleSorter.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/VectorizedSorter.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestTupleSorter.java tajo-core/src/test/resources/results/TestGroupByQuery/testHavingWithAggFunction.result tajo-core/src/main/java/org/apache/tajo/engine/utils/TupleUtil.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbySecondAggregationExec.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java

          People

          • Assignee:
            jihoonson Jihoon Son
            Reporter:
            jihoonson Jihoon Son
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development