impala-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marcel Kornacker (Code Review)" <>
Subject [Impala-ASF-CR] IMPALA-3567: Part 1: groundwork to make Join build sides DataSinks
Date Mon, 08 Aug 2016 21:13:21 GMT
Marcel Kornacker has posted comments on this change.

Change subject: IMPALA-3567: Part 1: groundwork to make Join build sides DataSinks

Patch Set 1:

File be/src/exec/

Line 195:         &build_side_status));
indent 2 more
File be/src/exec/blocking-join-node.h:

Line 67:   boost::scoped_ptr<RowBatch> build_batch_;
is this only utilized when the join runs in a particular 'mode' (i don't mean the join op)?

given that the pool disappeared and we now have a single batch instead, it sounds like there
was a semantic change or tightening.

Line 122:   /// Set up 'current_probe_row_' to point to the first input row from the left
you mean from probe_batch_? i don't see anything in this function that restricts it to first
probe row.

the description of the behavior is almost as long as the function itself, this might be an
indication that it's not really a good abstraction.

Line 202:   void BuildSideThread(RuntimeState* state, DataSink* build_sink,
find a verb for this? ConstructBuildSide?
File be/src/exec/data-sink.h:

Line 108:   /// Owned by the RuntimeState's object pool.
simply 'not owned' is fine (unless there's some special dependency that this class needs to
be aware of).
File be/src/exec/

Line 631:     PartitionPair* partition_pair;
call this dummy or something to that effect, to signal that it's not needed
File be/src/exec/hdfs-table-sink.h:

Line 194:                   PartitionPair** partition_pair, bool no_more_rows);
odd indentation
File be/src/exec/

Line 31:     MemTracker* mem_tracker) : DataSink(row_desc),
move initializer to new line
File be/src/exec/nested-loop-join-builder.h:

Line 35: /// tuple memory, the non-copying mode is used and row batches are simply accumulated
meaning that you have to call AddBuildBatch and can't call Send?

if so, add a flag to c'tor that indicates mode and then dcheck for correct mode in interface

Line 90:   RowBatchList raw_build_batches_;
the meaning of 'raw' wasn't clear to me until after i read the .cc (we typically use it for
unparsed or unformatted data).

it seems like the distinction is between original (referenced) input and copied.

Line 92:   /// List of build batches that were deep copied and are backed by each row batch's
"deep copied out of raw_build_batches_"
File be/src/exec/

Line 247:   for (const FilterContext& filter: filters_) {
single line if it fits
File be/src/exec/row-batch-cache.h:

Line 70:   /// GetNextBatch() has not been returned yet.
has not yet been called
File be/src/runtime/

Line 65: /// Helper function to log a batch of rows. VLOG_ROW must be enabled.
that seems generally useful. move to RowBatch?
File be/src/runtime/

Line 37: 

To view, visit
To unsubscribe, visit

Gerrit-MessageType: comment
Gerrit-Change-Id: I9d7608181eeacfe706a09c1e153d0a3e1ee9b475
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong <>
Gerrit-Reviewer: Alex Behm <>
Gerrit-Reviewer: Marcel Kornacker <>
Gerrit-Reviewer: Tim Armstrong <>
Gerrit-HasComments: Yes

View raw message