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