You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ranger.apache.org by "Bhavik Patel (Jira)" <ji...@apache.org> on 2021/11/16 06:36:00 UTC

[jira] [Commented] (RANGER-3504) Create framework to execute DB patch dependent on Java patch.

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

Bhavik Patel commented on RANGER-3504:
--------------------------------------

this will impact Upgrade use-case?

> Create framework to execute DB patch dependent on Java patch.
> -------------------------------------------------------------
>
>                 Key: RANGER-3504
>                 URL: https://issues.apache.org/jira/browse/RANGER-3504
>             Project: Ranger
>          Issue Type: Improvement
>          Components: Ranger
>    Affects Versions: 2.2.0
>            Reporter: Dineshkumar Yadav
>            Assignee: Dineshkumar Yadav
>            Priority: Major
>
> Problem Statement
> Currently we have two sets of patches in Ranger (DB & Java patches).
> During Ranger setup, DB patches get executed first then Java patches get executed in an orderly manner based on their sequence. 
> We don't have any mechanism where we can execute Java Patch first and it's dependent DB patch afterwards. 
>  
> Please find the below approach to handle such scenarios.
> Approach:
>  # While executing DB patches, first check if any pre java patches are present by name starting with {*}PatchPreSql_<DB_version>{*}.
>  # If a Pre Java patch is found then execute that java patch first.
>  # Execute DB patch.
>  # Check again if there are any post java patches present by name starting with {*}PatchPostSql_<DB_version>{*}.
>  # If Post Java patches are found, execute them.
>  # While naming the dependent Java patches we need to follow the below convention.
>  # Currently we follow convention: *Patch<custom_name>_J<5 digit sequence number>.java*
>  # Proposed naming convention for dependent Java Patch. *Patch<Post or Pre>Sql_<dependent DB patch version number>_<custom_name>_J<5 digit sequence number>.java*
> Use Case: 
> Suppose we have a DB patch (050-uniqueindex.sql) and there are two Java patches one needs to execute before and another immediately after DB patch.
> In that scenario we should use the following convention for naming java patches.
> Pre Java Patch : PatchPreSql_050_CleanData_J10050.java 
> Post Java Patch : PatchPostSql_050_UpdateData_J10051.java
> Note: File to be changed : db_setup.py
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)