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?
---