[ 
https://issues.apache.org/jira/browse/HBASE-29706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Duo Zhang resolved HBASE-29706.
-------------------------------
    Fix Version/s: 2.7.0
                   3.0.0-beta-2
                   2.6.5
                   2.5.14
     Hadoop Flags: Reviewed
       Resolution: Fixed

Pushed to all active branches.

Thanks [~mnpoonia] for contributing!

> Modify table with lazy mode should pass if coprocessors have not changed
> ------------------------------------------------------------------------
>
>                 Key: HBASE-29706
>                 URL: https://issues.apache.org/jira/browse/HBASE-29706
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 3.0.0-beta-1, 2.6.4, 2.5.13
>            Reporter: Viraj Jasani
>            Assignee: Aman Poonia
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 2.7.0, 3.0.0-beta-2, 2.6.5, 2.5.14
>
>
> HBASE-25549 provides configuration to not reopen regions when user modifies 
> table descriptor. However, it does not work for table with coprocessors.
> As this feature is quite helpful in general, the proposal of this Jira is to 
> extend the feature to coprocessors and column family descriptor updated as 
> well.
> {code:java}
> /**
>  * The same as {@link #modifyTableAsync(TableDescriptor td)}, except for the 
> reopenRegions
>  * parameter, which controls whether the process of modifying the table 
> should reopen all regions.
>  * @param td            description of the table
>  * @param reopenRegions By default, 'modifyTable' reopens all regions, 
> potentially causing a RIT
>  *                      (Region In Transition) storm in large tables. If set 
> to 'false', regions
>  *                      will remain unaware of the modification until they 
> are individually
>  *                      reopened. Please note that this may temporarily 
> result in configuration
>  *                      inconsistencies among regions.
>  * @return the result of the async modify. You can use Future.get(long, 
> TimeUnit) to wait on the
>  *         operation to complete
>  * @throws IOException if a remote or network exception occurs
>  */
> Future<Void> modifyTableAsync(TableDescriptor td, boolean reopenRegions) 
> throws IOException;
>  {code}
> The user using this feature must be aware of the consequences of temporary 
> inconsistencies of the configurations. We can also provide big warning 
> message with it's usage but coprocs should be allowed to leverage the feature.



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

Reply via email to