hycdong commented on issue #840:
URL: 
https://github.com/apache/incubator-pegasus/issues/840#issuecomment-998428752


   That's a good idea to use `feature_map` rather than a version to do client 
negotiation~
   
   In current implmenetaion, client will firstly create connection with meta 
server, and get partition address map, then send read/write requests to replica 
server directly. I notice that the `negotiate_feature_flag` is added in 
rrdb.thrift according to 
https://github.com/cauchy1988/incubator-pegasus/pull/1/files, which means 
client should firstly connect to meta server, then send negotiate request to 
replica server, if the negotitate failed, client should do lots of thems such 
as downgrade batchget3 into batchget2 and other consistent-related error 
handling. 
   
   It seems that the negotiation is designed especially for the batchget3 
interface or user request. It can't handle any server request negotiation. In 
my view, a general negotitation plan should handle user request and server ddl 
request. For example, client sends negotiation request to meta server, if the 
operation is not supported, it will reject the connection of this client. Then 
client could choose to downgrade or do operation. I wonder if you have any plan 
about to implement a more general negotitation plan?
   
   Besides, I have the following compatible questions:
   1. old client -> new server, will have any compatible problem?
   2. new client -> old server, how old server handle `BATCH_GET` code? will 
have any compatible problem?
   3. old server upgrade to new server, will it have any compatible problem?
   
   At the end, I DO think your issue is a good idea to solve user request 
version problems, and expecting your anwser and discussion~


-- 
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: [email protected]

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