Github user ChinmaySKulkarni commented on a diff in the pull request:
https://github.com/apache/phoenix/pull/406#discussion_r236466001
--- Diff:
phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
---
@@ -530,6 +530,10 @@ private static PName newPName(byte[] keyBuffer, int
keyOffset, int keyLength) {
private int maxIndexesPerTable;
private boolean isTablesMappingEnabled;
+ // this flag denotes that we will continue to write parent table
column metadata while creating
+ // a child view and also block metadata changes that were previously
propagated to children
+ // before 4.15, so that we can rollback the upgrade to 4.15 if required
+ private boolean allowSystemCatalogRollback;
--- End diff --
@twdsilva don't we need to have a way to figure out if a rollback is
currently in progress as well? Once the rollback has already happened and the
SYSTEM.CATALOG timestamp is < the min_splittable_SYSCAT timestamp, can we then
acquire locks only when the SYSCAT timestamp is still smaller AND
**allowedSystemCatalogRollback** is true, instead of always acquiring locks
based on just the value of this new flag?
---