[ 
https://issues.apache.org/jira/browse/HIVE-26012?focusedWorklogId=799664&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-799664
 ]

ASF GitHub Bot logged work on HIVE-26012:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 10/Aug/22 09:16
            Start Date: 10/Aug/22 09:16
    Worklog Time Spent: 10m 
      Work Description: DanielZhu58 commented on code in PR #3477:
URL: https://github.com/apache/hive/pull/3477#discussion_r942219606


##########
standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift:
##########
@@ -901,7 +901,9 @@ struct AddPartitionsRequest {
   4: required bool ifNotExists,
   5: optional bool needResult=true,
   6: optional string catName,
-  7: optional string validWriteIdList
+  7: optional string validWriteIdList,
+  // use boolean skipFSWrites to decide whether create directory in file 
system or not
+  8: optional bool skipFSWrites=false

Review Comment:
   Yes, we do. Because that's one of the requirement of this patch. 



##########
standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift:
##########
@@ -2040,7 +2044,10 @@ struct CreateDatabaseRequest {
   9: optional i32 createTime,
   10: optional string managedLocationUri,
   11: optional string type,
-  12: optional string dataConnectorName
+  12: optional string dataConnectorName,
+  // use boolean skipFSWrites to decide whether create directory in file 
system or not
+  13: optional bool skipFSWrites=false,
+  14: optional Database database

Review Comment:
   Yes, we do. Because in the create database function with signature 
CreateDatabaseRequest, we will use getDatabase() function. This will need the 
`optional Database database`.



##########
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java:
##########
@@ -1229,74 +1229,78 @@ private void create_database_core(RawStore ms, final 
Database db)
     Map<String, String> transactionalListenersResponses = 
Collections.emptyMap();
     try {
       firePreEvent(new PreCreateDatabaseEvent(db, this));
-      //reinstate location uri for metastore db.
-      if (skipAuthorization == true){

Review Comment:
   We can leave it the same way this time. Because this change is not highly 
related with the HMS directory skipping. 





Issue Time Tracking
-------------------

    Worklog Id:     (was: 799664)
    Time Spent: 3h 10m  (was: 3h)

> HMS APIs to be enhanced for metadata replication
> ------------------------------------------------
>
>                 Key: HIVE-26012
>                 URL: https://issues.apache.org/jira/browse/HIVE-26012
>             Project: Hive
>          Issue Type: Improvement
>          Components: Metastore
>    Affects Versions: 3.1.0
>            Reporter: Naveen Gangam
>            Assignee: Hongdan Zhu
>            Priority: Major
>              Labels: pull-request-available
>         Attachments: HMS APIs to be enhanced for metadata replication.docx
>
>          Time Spent: 3h 10m
>  Remaining Estimate: 0h
>
> HMS currently has APIs like these that automatically create/delete the 
> directories on the associated DFS. 
> [create/drop]_database
> [create/drop]_table*
> [add/append/drop]_partition*
> This is expected and should be this way when query processors use this APIs. 
> However, when tools that replicate hive metadata use this APIs on the target 
> cluster, creating these dirs on target side which cause the replication of 
> DFS-snapshots to fail.
> So we if provide an option to bypass this creation of dirs, dfs replications 
> will be smoother. In the future we will need to restrict users that can use 
> these APIs. So we will have some sort of an authorization policy.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to