szetszwo commented on PR #1321: URL: https://github.com/apache/ratis/pull/1321#issuecomment-3666418480
> The class is already public so it is part of the API. ... For servers, only the class in ratis-server-api are public APIs. Public classes in ratis-server are not. > ... The tool is to replace the message contents of one raft log entry with a different type of message/content which is specific to Ozone. An implementation in Ratis that takes a byte string to replace the log entry with could be used for this. If the tool is in Ratis, it could let the applications such as Ozone pass a function for doing the replacement. > ... I don't see how adding a low level mutator to the public API is less harmful than two read-only methods in an already public class. Note that if the tool is in Ratis, it can access the private API in the its implementation. It is easier to define a public tool API than a public server API. In this case, if LogSegmentStartEnd is a public API, it means that we have to support such segment files forever. Then, it will limit the flexibility of the underlying implementation (e.g. RATIS-2370 SegmentedRaftLog v2). -- 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]
