Viraj Jasani created HBASE-29706:
------------------------------------

             Summary: Make region reopen lazy mode for modifyTable() accessible 
to coprocessors
                 Key: HBASE-29706
                 URL: https://issues.apache.org/jira/browse/HBASE-29706
             Project: HBase
          Issue Type: Improvement
    Affects Versions: 2.5.13, 2.6.4, 3.0.0-beta-1
            Reporter: Viraj Jasani


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