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)