[
https://issues.apache.org/jira/browse/TAJO-907?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14121315#comment-14121315
]
ASF GitHub Bot commented on TAJO-907:
-------------------------------------
GitHub user hyunsik opened a pull request:
https://github.com/apache/tajo/pull/133
TAJO-907: Implement off-heap tuple block and zero-copy tuple.
Hi folks,
One week ago, I contributed run-time code generation for computation
efficiency and reduction of objection creations. This work has also the similar
purpose.
This patch includes off-heap memory and row block (a list of tuple) using
off-heap memory container. Also, it provides various utility classes for them.
In detail, this patch includes lots of changes.
* OffHeapMemory class
* OffHeapRowBlock class
* ZeroCopyTuple, which just points to actual row record stored in
OffHeapRowBlock.
* RowWriter interface
* RowBlockReader interface and OffHeapBlockReader
* TupleBuilder and BaseTupleBuilder
* HeapTuple, which keeps fields in byte array instead of Datum array.
* HeapTuple internally UnSafe to read and store field values in byte
array
* TupleComparatorCompiler, which is run-time code compiler for
TupleComparator
* It reduces branches even though tuple comparator actually should
consider complex logic with all null-first/last, ascending, and descending
orders.
* Others
Later, I'll replace current VTuple by HeapTuple or ZeroCopyTuple. Also, I'm
planning the improvement to replace current pull-iterator model of execution
engine by the push-based block iterator model. I'll describe it later in
another jira issue.
Thanks,
Hyunsik
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/hyunsik/tajo TAJO-907
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/tajo/pull/133.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 #133
----
commit ded746bc691fa68b06019909c740a9fe945ab0a5
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-23T17:38:27Z
initial work for direct memory tuple.
commit c9414c012fdd388fb51e0a5bd81d2dca31930188
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-24T15:43:34Z
Implemented DirectRowBlock and its unit tests.
commit 943a29df75f9d583455002be4f65696052950b4d
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-24T16:11:52Z
Added benchmark test.
commit b6b3b4ffe39d4b2e5f75fb6749e8868751f51f17
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-24T16:31:22Z
Improved interfaces and refactored class hierarchy.
commit b424269b3c6e4728bea1c1e5248a30af611a6ead
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-24T23:29:58Z
added sort benchmark and add get() method to UnSafeTuple.
commit ef07dc9a93e66650f532e5fdc7753918f7bbf14f
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-25T04:23:59Z
Add timestamp data type support to RowOrientedRowBlock.
commit cb94b74a7f79cb074669f09252f8069fd8933db8
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-25T05:50:18Z
Cleanup unit tests and benchmarks.
commit 8d02ba7a1e2d0f4a8edb1cbc7910abc11e6e386d
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-25T06:29:35Z
Removed duplicated method cleanByteBuffer() from StorageUtil.
commit d783d65e9db97883f793ad24d7daabd36a514e3f
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-25T07:43:09Z
Refactored UnSafeTuple.
commit ab241625982296ed11813f0e9d95147fa4dddf21
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-25T11:25:33Z
Refactored SchemaUtil to tajo-catalog, improved DirectRawFileWriter.
commit 75949fa1455e75347b936bcce31c61a726581942
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-25T16:33:37Z
Implemented zero copy and zero (de)serialization file format.
commit 43d45be517e3a9b3c4d9c363a2e7e05e0def0acd
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-25T17:01:36Z
Implemented legacy addTuple method.
commit 6ed1df9818a79ac71f78bc9beb1083abbc50f02b
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-26T01:20:48Z
Implemented VTuple to UnSafeTuple encoder.
commit 72179ef4083c66ebe251482dd50913ef0ca19107
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-26T02:14:11Z
Improved RowOrientedRowBlock to take exiting Tuple.
commit d78d207455a697ca47c44ed6e4200c6b0b9ad07f
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-26T06:47:59Z
Fixed many bugs of DirectRawFileScanner.
commit 6b8f0d4484f3d546e7cff6dddc28dcc117171b59
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-26T07:43:07Z
External sort works well, but random access causes performance degradation.
commit afda01e3cae8ac88938d1a504c9faca0aca29845
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-27T14:49:08Z
Fixed many bugs and refactored tests.
commit a0859fd47b7e9d8c15e30a80c2d27e7d81eccfb3
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-28T04:07:33Z
Fixed reset bugs and resource leak in PairWiseMerger.
commit df91243afa6710de66a0386291969252bd0702f5
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-29T07:31:30Z
Implemented the basic of tuple comparator generation.
commit 31e418b2fbf2df2f1e192d34df22139f8c0a684f
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-29T14:46:09Z
Implemented TupleComparatorCompiler and UnSafeTupleTextComparator.
commit 738dd06421cd159c6c24390f29da94bb0a400602
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-29T15:07:16Z
Improving Null last and Null first of TupleComparatorCompiler.
commit 2930bd98d6011bcd45d3a2032c672e28594f3515
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-29T15:13:11Z
Renamed UnSafeComparator.
commit 06675b7cb1934563585127c62c5457459254a49b
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-29T15:19:10Z
Fixed a bug of UnSafeTupleTextComparator.
commit 1f0fa60929c2ae9858eb3f0bd116a9f2855f287e
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-29T16:33:46Z
Improved null first and last of comparator.
commit 8ab577460c2d6fa4983014963f574611014f9d51
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-31T06:50:07Z
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into
DirectMemTuple
commit 631dd21b54f9994736a7d7ca97f67717483567fe
Author: Hyunsik Choi <[email protected]>
Date: 2014-08-31T12:53:51Z
Fixed offset mismatch bug.
commit e4e6fa3b7a8c7e818294e8fcaf20baba5f9cd9b5
Author: Hyunsik Choi <[email protected]>
Date: 2014-09-01T01:22:23Z
Passed all unit tests.
commit fcc59d38cb99afd97a2bec03f4c39344e416df00
Author: Hyunsik Choi <[email protected]>
Date: 2014-09-01T06:45:48Z
Improved TupleComparatorCompiler.
commit 6c9084a1f8e88fb22ed226bc81884bcf452b5439
Author: Hyunsik Choi <[email protected]>
Date: 2014-09-01T06:55:08Z
renamed UnSafeComparer.
commit 24200be8d2165eeb8c505d9fe3df305db3cce5b3
Author: Hyunsik Choi <[email protected]>
Date: 2014-09-01T12:01:14Z
Fixed isNull and many bugs related to ordering.
----
> Implement off-heap tuple block and zero-copy tuple
> --------------------------------------------------
>
> Key: TAJO-907
> URL: https://issues.apache.org/jira/browse/TAJO-907
> Project: Tajo
> Issue Type: Sub-task
> Components: storage
> Reporter: Hyunsik Choi
> Assignee: Hyunsik Choi
> Fix For: 0.9.0
>
>
> The main purpose of this issue is to implement new Tuple structure using
> direct memory.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)