-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57353/
-----------------------------------------------------------

(Updated April 21, 2017, 8:26 p.m.)


Review request for hive, Chaozhong Yang, Alan Gates, Rui Li, Prasanth_J, Sergio 
Pena, Sahil Takiar, Vihang Karajgaonkar, and Xuefu Zhang.


Changes
-------

Addressed Sergio's comments.


Bugs: HIVE-16079
    https://issues.apache.org/jira/browse/HIVE-16079


Repository: hive-git


Description
-------

When multiple concurrent Hive queries run, a separate copy of
org.apache.hadoop.hive.ql.metadata.Partition and
ql.plan.PartitionDesc is created for each table partition
per each query instance. So when in my benchmark explained in
HIVE-16079 we have 2000 partitions and 50 concurrent queries running
over them, we end up, in the worst case, with 2000*50=100,000 instances
of Partition and PartitionDesc in memory. These objects themselves
collectively take just ~2% of memory. However, other data structures
that each of them reference, take a lot more. In particular, Properties
objects take more than 20% of memory. When we have 50 concurrent
read-only queries, there are 50 identical copies of Properties per
each partition. That's a huge waste of memory.

This change introduces a new class that extends Properties, called
CopyOnFirstWriteProperties. It utilizes a unique interned copy of
Properties whenever possible. However, when one of the methods that
modify properties is called, a copy is created. When this class is
used, memory consumption by Properties falls from 20% to 5..6%.


Diffs (updated)
-----

  common/src/java/org/apache/hadoop/hive/common/CopyOnFirstWriteProperties.java 
PRE-CREATION 
  ql/src/java/org/apache/hadoop/hive/ql/exec/SerializationUtilities.java 
247d5890ea8131404b9543d22876ca4c052578e0 
  ql/src/java/org/apache/hadoop/hive/ql/plan/PartitionDesc.java 
d05c1c68fdb7296c0346d73967071da1ebe7bb72 


Diff: https://reviews.apache.org/r/57353/diff/2/

Changes: https://reviews.apache.org/r/57353/diff/1-2/


Testing
-------


Thanks,

Misha Dmitriev

Reply via email to