You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Carl Steinbach (JIRA)" <ji...@apache.org> on 2012/07/19 23:27:41 UTC

[jira] [Created] (HIVE-3278) Create wrappers around Thrift Metastore objects for improved readability

Carl Steinbach created HIVE-3278:
------------------------------------

             Summary: Create wrappers around Thrift Metastore objects for improved readability
                 Key: HIVE-3278
                 URL: https://issues.apache.org/jira/browse/HIVE-3278
             Project: Hive
          Issue Type: Improvement
          Components: Metastore
            Reporter: Carl Steinbach
            Assignee: Carl Steinbach




--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HIVE-3278) Create wrappers around Thrift Metastore objects for improved readability

Posted by "Travis Crawford (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HIVE-3278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13418733#comment-13418733 ] 

Travis Crawford commented on HIVE-3278:
---------------------------------------

Hey [~cwsteinbach] - can you clarify what you mean by wrappers? There are wrappers already (for example https://github.com/apache/hive/blob/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java) and I'm curious what the distinction will be.

FWIW, having two sets of identically named classes (stuff under metastore.api & ql.metadata) has already caused some confusion. Typically this confusion has been people using the metastore.api versions not realizing ql.metadata adds some business logic.
                
> Create wrappers around Thrift Metastore objects for improved readability
> ------------------------------------------------------------------------
>
>                 Key: HIVE-3278
>                 URL: https://issues.apache.org/jira/browse/HIVE-3278
>             Project: Hive
>          Issue Type: Improvement
>          Components: Metastore
>            Reporter: Carl Steinbach
>            Assignee: Carl Steinbach
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HIVE-3278) Create wrappers around Thrift Metastore objects for improved readability

Posted by "Carl Steinbach (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HIVE-3278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13425382#comment-13425382 ] 

Carl Steinbach commented on HIVE-3278:
--------------------------------------

bq. FWIW, having two sets of identically named classes (stuff under metastore.api & ql.metadata) has already caused some confusion. Typically this confusion has been people using the metastore.api versions not realizing ql.metadata adds some business logic.

This is precisely the problem I'm trying to solve. I'm proposing that we extend each of the Thrift types with a lightweight wrapper where the subclass name is prefixed with a "T", e.g. o.a.h.hive.metastore.api.Table would be extended by o.a.hive.metastore.api.thrift.TTable, etc, and then replace all of the references to o.a.h.hive.metastore.api.* classes with the corresponding o.a.hive.metastore.api.thrift.T* classes. It would have been nice if this had been done originally in the Thrift IDL, but that didn't happen, and we can't change it now without breaking backward compatibility. My goal in doing this is to make the code more readable (e.g. get rid of those awful canonical class name references), as well as to highlight the fact that we have Thrift types polluting the code.

The Hive source should only reference Thrift types immediately above and below the Thrift interface layer. In all other places it should be decoupled from the Thrift interface and types, and should instead use types similar to the ones in ql.metadata.
                
> Create wrappers around Thrift Metastore objects for improved readability
> ------------------------------------------------------------------------
>
>                 Key: HIVE-3278
>                 URL: https://issues.apache.org/jira/browse/HIVE-3278
>             Project: Hive
>          Issue Type: Improvement
>          Components: Metastore
>            Reporter: Carl Steinbach
>            Assignee: Carl Steinbach
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HIVE-3278) Create wrappers around Thrift Metastore objects for improved readability

Posted by "Travis Crawford (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HIVE-3278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13425931#comment-13425931 ] 

Travis Crawford commented on HIVE-3278:
---------------------------------------

SGTM
                
> Create wrappers around Thrift Metastore objects for improved readability
> ------------------------------------------------------------------------
>
>                 Key: HIVE-3278
>                 URL: https://issues.apache.org/jira/browse/HIVE-3278
>             Project: Hive
>          Issue Type: Improvement
>          Components: Metastore
>            Reporter: Carl Steinbach
>            Assignee: Carl Steinbach
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HIVE-3278) Create wrappers around Thrift Metastore objects for improved readability

Posted by "Travis Crawford (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HIVE-3278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13425466#comment-13425466 ] 

Travis Crawford commented on HIVE-3278:
---------------------------------------

Totally agree with the sentiment. What are your thoughts on renaming {{org.apache.hadoop.hive.ql.metadata}} classes something like {{MTable}} (prefixed with M or some other letter) and using them in the code whenever possible. This would distinguish the two sets of classes without adding yet another set.
                
> Create wrappers around Thrift Metastore objects for improved readability
> ------------------------------------------------------------------------
>
>                 Key: HIVE-3278
>                 URL: https://issues.apache.org/jira/browse/HIVE-3278
>             Project: Hive
>          Issue Type: Improvement
>          Components: Metastore
>            Reporter: Carl Steinbach
>            Assignee: Carl Steinbach
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HIVE-3278) Create wrappers around Thrift Metastore objects for improved readability

Posted by "Ashutosh Chauhan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HIVE-3278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13422106#comment-13422106 ] 

Ashutosh Chauhan commented on HIVE-3278:
----------------------------------------

Totally agree with Travis. We already have metastore objects represented via 2 different ways in: {{org.apache.hadoop.hive.ql.metadata}} and {{org.apache.hadoop.hive.metastore.api}} with logic spread across both the layers. Adding another set of wrapper objects will only increase the confusion.
                
> Create wrappers around Thrift Metastore objects for improved readability
> ------------------------------------------------------------------------
>
>                 Key: HIVE-3278
>                 URL: https://issues.apache.org/jira/browse/HIVE-3278
>             Project: Hive
>          Issue Type: Improvement
>          Components: Metastore
>            Reporter: Carl Steinbach
>            Assignee: Carl Steinbach
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HIVE-3278) Create wrappers around Thrift Metastore objects for improved readability

Posted by "Carl Steinbach (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HIVE-3278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13425476#comment-13425476 ] 

Carl Steinbach commented on HIVE-3278:
--------------------------------------

The 'M' prefix is is already spoken for. We use it as the prefix for the Modeled objects that Datanucleus persists to the metastore, e.g. o.a.h.hive.metastore.model.MTable. I suppose we could prefix the stuff in ql.metadata with an 'H', but before we do that I'd first like to move that code over to the metastore package and do some other cleanup work. Also, we should eventually wrap the HiveMetaStoreClient library with an improved version that uses the H* types instead of the raw Thrift types.
                
> Create wrappers around Thrift Metastore objects for improved readability
> ------------------------------------------------------------------------
>
>                 Key: HIVE-3278
>                 URL: https://issues.apache.org/jira/browse/HIVE-3278
>             Project: Hive
>          Issue Type: Improvement
>          Components: Metastore
>            Reporter: Carl Steinbach
>            Assignee: Carl Steinbach
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira