[ https://issues.apache.org/jira/browse/HBASE-21645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16736219#comment-16736219 ]
Nihal Jain commented on HBASE-21645: ------------------------------------ {quote}What will happed if replica config to 0? {quote} No, it would create a table with 1 region, as we have the following check in {{RegionReplicaUtil.addReplicas()}}, which is used during {{CreateTableProcedure.addTableToMeta(), which ensures we only return replica regions, if replica count > 1.}} {code:java} public static List<RegionInfo> addReplicas(final TableDescriptor tableDescriptor, final List<RegionInfo> regions, int oldReplicaCount, int newReplicaCount) { if ((newReplicaCount - 1) <= 0) { return regions; } List<RegionInfo> hRegionInfos = new ArrayList<>((newReplicaCount) * regions.size()); for (RegionInfo ri : regions) { if (RegionReplicaUtil.isDefaultReplica(ri) && (!ri.isOffline() || (!ri.isSplit() && !ri.isSplitParent()))) { // region level replica index starts from 0. So if oldReplicaCount was 2 then the max replicaId for // the existing regions would be 1 for (int j = oldReplicaCount; j < newReplicaCount; j++) { hRegionInfos.add(RegionReplicaUtil.getRegionInfoForReplica(ri, j)); } } } hRegionInfos.addAll(regions); return hRegionInfos; } {code} {quote} And please add the table name to the message. {quote} Since sanity check is called during create table, do we really need to mention table name? Also, none of the other exceptions are logging tablename. Should I address this? What do you think? {quote}Why not use warnOrThrowExceptionForFailure to keep same pattern with other checks? {quote} We can definitely do that, it would also ensure same behaviour as previous versions, but I saw that for replication scope sanity check (See [HBASE-16419|https://issues.apache.org/jira/browse/HBASE-16419] ) we are purposely not following {{warnOrThrowExceptionForFailure}} pattern. Anyways, I am willing to do otherwise. What do you propose? > Perform sanity check and disallow table creation/modification with region > replication < 1 > ----------------------------------------------------------------------------------------- > > Key: HBASE-21645 > URL: https://issues.apache.org/jira/browse/HBASE-21645 > Project: HBase > Issue Type: Improvement > Affects Versions: 3.0.0, 1.5.0, 2.1.1, 2.1.2 > Reporter: Nihal Jain > Assignee: Nihal Jain > Priority: Minor > Attachments: HBASE-21645.master.001.patch, > HBASE-21645.master.001.patch > > > We should perform sanity check and disallow table creation with region > replication < 1 or modification of an existing table with new region > replication value < 1. -- This message was sent by Atlassian JIRA (v7.6.3#76005)