You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Mithun Radhakrishnan (JIRA)" <ji...@apache.org> on 2015/04/08 02:51:13 UTC

[jira] [Created] (HIVE-10250) Optimize AuthorizationPreEventListener to reuse TableWrapper objects

Mithun Radhakrishnan created HIVE-10250:
-------------------------------------------

             Summary: Optimize AuthorizationPreEventListener to reuse TableWrapper objects
                 Key: HIVE-10250
                 URL: https://issues.apache.org/jira/browse/HIVE-10250
             Project: Hive
          Issue Type: Bug
          Components: Authorization
            Reporter: Mithun Radhakrishnan


Here's the {{PartitionWrapper}} class in {{AuthorizationPreEventListener}}:
{code:java|title=AuthorizationPreEventListener.java}
 public static class PartitionWrapper extends org.apache.hadoop.hive.ql.metadata.Partition {
...
    public PartitionWrapper(org.apache.hadoop.hive.metastore.api.Partition mapiPart, PreEventContext context) throws ... {
 Partition wrapperApiPart   = mapiPart.deepCopy();
 Table t = context.getHandler().get_table_core(
             mapiPart.getDbName(), 
             mapiPart.getTableName());
...
}
{code}

{{PreAddPartitionEvent}} (and soon, {{PreDropPartitionEvent}}) correspond not just to a single partition, but an entire set of partitions added atomically. When the event is authorized, {{HMSHandler.get_table_core()}} will be called once for every partition in the Event instance.

Since we already make the assumption that the partition-sets correspond to a single table, we might as well make a single call.

I'll have a patch for this, shortly.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)