adoroszlai edited a comment on pull request #3155:
URL: https://github.com/apache/ozone/pull/3155#issuecomment-1059533909


   Good points @errose28.
   
   * I also wanted to suggest using the enum type as parameter instead of 
`int`, but we have to consider the "newer than any versions this component is 
aware of (i.e. has enum constants for)" case.  Do we create a 
`FUTURE_VERSIONS(Integer.MAX_VALUE)` enum constant for that case?  At least we 
should have an overloaded version of the methods:
      ```
      foo(int)
      foo(...Version)
      ```
   
   * I have already found a case where the wrong version is being passed 
unintentionally (HDDS-6418).
   
   * Regarding `{Shared,External,Advertised,Broadcasted}DatanodeVersion`: I'm 
not sure why plain `DatanodeVersion` would imply that it is internal.
   
   * `ComponentVersion` might be a good name for the common interface.
   
   * The discussion we had about `CURRENT_VERSION` is mostly 
implementation-specific.  The point is that we should have a constant rather 
than a (very slightly expensive) method.
   
   > Having to pass `ClientVersion.CURRENT_VERSION` when constructing protos on 
the server side is a bit confusing, but it looks like an unfortunate 
consequence of using the same protos for internal processing and client 
communication.
   
   It might also indicate a case where client version is ignored (and could 
result in compatibility problem).


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