-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17726/
-----------------------------------------------------------
Review request for Tajo.
Bugs: TAJO-584
https://issues.apache.org/jira/browse/TAJO-584
Repository: tajo
Description
-------
In Tajo, sort operator is similar to merge sort, but it works in a distributed
manner. The first sort phase sorts each fragment in local machine, the
intermediate data are shuffled in range partition, and then the the second sort
phase in each node sorts the range-partitioned data.
However, the second sort phase reads all shuffled data via one scanner. It
causes performance degrade. This patch improves the second sort phase to merge
directly all already-sorted intermediate data. It significantly reduces the
response time of sort queries.
I carried out some simple benchmark with the following query on TPC-H 100GB
data sets:
{code:sql}
select l_orderkey from lineitem order by l_orderkey;
{code}
The lineitem table occupies 75GB. The query response time are dramatically
reduced from 480 to 260 secs. This patch exploits the design of TAJO-36. So,
this patch requires TAJO-36.
Diffs
-----
CHANGES.txt ac08b75f499c6b62019122643a3f9a1a9c2e4bde
tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSet.java
3977d76e37888defb27715c249b336bb4cc8a5f5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
b8c52c0147bae6e1f29cf3c71d5969709672e410
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java
bd9001c679f7d9b0914760c83ca10891c0ce0fd4
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
cb2ac1536791626ae151dc5ac62e5d293c90813d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/ExternalSortExec.java
a3b37fc6445249c23ec2a99bbac312e4c2d4bbe9
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/UnaryPhysicalExec.java
a8dd877fdd3a230db86aaa13a66d24933db08735
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java
1b72d1398adc097422f2bb8990561ad528ff733c
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java
cf240542552b492bdee9c2df69cfdfab1a238c98
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java
4ac423b8ce8c143217523de149e840773aca0040
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java
ce31851333c2929e4141b8d2b3e327a41d14f90b
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
c97ed00782a395e84ce643e764e4f9ef88fbd17b
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java
d582e2b10b25a0b067ce640af2f8b39b6e35bbca
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java
78e846de731c7fa2739dbb6dcc3bec45d4ba1ab3
tajo-core/tajo-core-backend/src/test/resources/org/apache/tajo/jdbc/TestTajoResultSet.java
PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testOuterJoinAndCaseWhen1.sql
ccb58a58f0303e01a228fc5774e2180d90a20f27
tajo-storage/src/main/java/org/apache/tajo/storage/MergeScanner.java
e4439f318d080f064848543586e538b1e73b3122
tajo-storage/src/main/java/org/apache/tajo/storage/RawFile.java
73b36926144b0797615b88ad728b889a7849c8b2
Diff: https://reviews.apache.org/r/17726/diff/
Testing
-------
Thanks,
Hyunsik Choi