egalpin commented on code in PR #13742:
URL: https://github.com/apache/pinot/pull/13742#discussion_r1796222438


##########
pinot-core/src/main/java/org/apache/pinot/core/transport/QueryResponse.java:
##########
@@ -49,12 +50,12 @@ enum Status {
   /**
    * Returns the current server responses without blocking.
    */
-  Map<ServerRoutingInstance, ServerResponse> getCurrentResponses();
+  Map<ServerRoutingInstance, List<ServerResponse>> getCurrentResponses();

Review Comment:
   @jackjlli I believe I've found a way to maintain compatibility such that 
brokers with this version could roll out and communicate with servers on a 
prior version, while still gathering the information required.  This is done 
through borrow a single digit of the request ID (the least significant digit, 
such that it does not increase the probability of a broker ID hash collision) 
in order to use that bit to identify if a query pertained to a REALTIME or 
OFFLINE table.
   
   Because in this version servers will only receive 1 or 2 queries, always 
targeting the same table "base" (i.e. foo of foo_OFFLINE), we can infer from 
the table type REALTIME or OFFLINE which request the server response pertains 
to. This system will not work in the future when a server will return responses 
for many different tables, but as soon as we have server versions deployed 
which always return the table name in the dataTable metadata, we can fully 
dismantle this requestId hijacking. Using the request ID to convey table type 
only needs to exist for the moments (or hours, depending on size of cluster) 
where brokers are expecting table name in dataTable metadata, but servers are 
not yet running the version which does so.
   
   I feel like this provides a good bridge to be able to move forward with 
subsequent Logical Table implementation.



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

To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to