[ 
https://issues.apache.org/jira/browse/HIVE-5263?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13764631#comment-13764631
 ] 

Mohammad Kamrul Islam commented on HIVE-5263:
---------------------------------------------

Very good work Brock.

I did some work on this. Let me share with you.

For clonePlan(), I first planned to use kayo.copy(). there is an improvement 
that Leo mentioned in my question at kryo-user:
https://groups.google.com/forum/#!topic/kryo-users/vB5sHGCogKQ

I think copy would be better than serialized and deserilized. There is a 
related Hive jira:
https://issues.apache.org/jira/browse/HIVE-4396

I then tried with serialization and deserialization approach.
I created a new kryo object just to mask the non-transient field for normal 
processing. Some code snippets:

 private static ThreadLocal<Kryo> modifuedKryo = new ThreadLocal<Kryo>() {

   @Override
   protected synchronized Kryo initialValue() {
     Kryo kryo = new Kryo();
     kryo.setClassLoader(Thread.currentThread().getContextClassLoader());
     kryo.register(java.sql.Date.class, new SqlDateSerializer());
     removeField(kryo, ColumnInfo.class, "objectInspector");
     removeField(kryo, Operator.class, "colExprMap");
     removeField(kryo, MapWork.class, "opParseCtxMap");
     removeField(kryo, MapWork.class, "joinTree");
     return kryo;
   };

   protected void removeField(Kryo kryo, Class type, String fieldName) {
     FieldSerializer fld = new FieldSerializer(kryo, type);
     fld.removeField(fieldName);
     kryo.register(type, fld);
   }
 };
There are some discussion in kayo-user:
https://groups.google.com/forum/#!topic/kryo-users/BDIBMqaAIyY



 


                
> Query Plan  cloning time could be improved by using Kryo
> --------------------------------------------------------
>
>                 Key: HIVE-5263
>                 URL: https://issues.apache.org/jira/browse/HIVE-5263
>             Project: Hive
>          Issue Type: Improvement
>            Reporter: Brock Noland
>            Assignee: Brock Noland
>         Attachments: HIVE-5263.patch, HIVE-5263.patch
>
>
> In HIVE-1511 we implemented Kryo for serialization but did not use for query 
> plan cloning. As was discussed there it's a possible speed improvement. In 
> addition the current XML serialization method does not work with Java 7 so 
> using Kryo is a workaround for this issue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to