Github user ohadshacham commented on a diff in the pull request: https://github.com/apache/phoenix/pull/291#discussion_r166875958 --- Diff: phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java --- @@ -850,19 +849,12 @@ private void addCoprocessors(byte[] tableName, HTableDescriptor descriptor, PTab && !SchemaUtil.isMetaTable(tableName) && !SchemaUtil.isStatsTable(tableName)) { if (isTransactional) { - if (!descriptor.hasCoprocessor(PhoenixTransactionalIndexer.class.getName())) { - descriptor.addCoprocessor(PhoenixTransactionalIndexer.class.getName(), null, priority, null); - } --- End diff -- Maybe I am missing something, but I don't understand why if we upgrade server and client together, we still need an empty PhoenixTransactionalIndexer. Can't we just remove the addCoprocessor from the code and remove PhoenixTransactionalIndexer? Regarding the case of supporting server upgrade with old clients. Can't we just add a new attribute to each mutation denotes that the index maintenance performed on the client slide and modify PhoenixTransactionalIndexer to ignore mutations (call the super function) for mutations that contains this attribute?
---