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.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---