Joe McDonnell has posted comments on this change.

Change subject: Fix parquet table writer dictionary leak
......................................................................


Patch Set 1:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/6181/1/be/src/exec/hdfs-table-sink.cc
File be/src/exec/hdfs-table-sink.cc:

Line 334:       OutputPartition* deletable_partition = 
current_clustered_partition_->first;
> Why not just delete it here and save the temp variable?
Done


Line 336:       delete(deletable_partition);
> delete deletable_partition; - delete is a keyword instead of a function
Done


Line 579:     OutputPartition* partition = new OutputPartition();
> Could we use a unique_ptr here and in PartitionPair to make the ownership e
The issue is that the OutputPartition is passed down to the table writers, 
which store it and access it later (see HdfsTableWriter.output_). Other smart 
pointer options:

1. PartitionPair has shared_ptr to OutputPartition. HdfsTableWriter has a 
shared_ptr to OutputPartition. When ready to free the OutputPartition, the 
writer needs to release its shared_ptr (or the OutputPartition needs to reset 
its scoped_ptr to the writer), etc. But we have to explicitly break the circle.
2. PartitionPair has a shared_ptr to OutputPartition. HdfsTableWriter has a 
weak_ptr to OutputPartition. The weak_ptr must be upgraded to shared_ptr to 
access the OutputPartition. When ready to free the OutputPartition, the 
HdfsTableWriter is in the weak_ptr state, so the free goes through normally.

I'm new to smart pointers, so there might be something I'm missing.


Line 587:       delete(partition);
> delete partition;
Done


-- 
To view, visit http://gerrit.cloudera.org:8080/6181
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I06e354086ad24071d4fbf823f25f5df23933688f
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Joe McDonnell <[email protected]>
Gerrit-Reviewer: Joe McDonnell <[email protected]>
Gerrit-Reviewer: Lars Volker <[email protected]>
Gerrit-Reviewer: Tim Armstrong <[email protected]>
Gerrit-HasComments: Yes

Reply via email to