yifan-c commented on a change in pull request #891:
URL: https://github.com/apache/cassandra/pull/891#discussion_r573475975



##########
File path: src/java/org/apache/cassandra/db/filter/ColumnFilter.java
##########
@@ -505,8 +505,8 @@ public ColumnFilter deserialize(DataInputPlus in, int 
version, CFMetaData metada
                 }
             }
 
-            // See CASSANDRA-15833
-            if (version <= MessagingService.VERSION_3014 && isFetchAll)
+            // See CASSANDRA-15833, CASSANDRA-16415
+            if (isFetchAll && Gossiper.instance.isAnyNodeOn30())

Review comment:
       Please correct me if wrong. 
   `Gossiper.instance.isAnyNodeOn30()` is probably not the best approach. Even 
there is only one node on 30, with messaging version either VERSION_30 or 
VERSION_3014, makes the entire cluster to discard the recorded `queried` set. 
   The condition can be 
   ```suggestion
               if (isFetchAll && version < MessagingService.VERSION_3014)
   ```
   With the condition, 
   1. If the coordinator runs on `VERSION_30`, so `version == VERSION_30`. The 
replicas set `queried` to null when deserializing. 
   2. If the coordinator runs on `VERSION_3014+`, and some of the replicas run 
in `VERSION_30`. The serialization code should take care of it. 
   
   




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to