errose28 commented on PR #7177: URL: https://github.com/apache/ozone/pull/7177#issuecomment-2346802303
> To handle same, > proto validation is used to validate data (basic one) we are planning add audit log to record all changes done in DB itself (diff of changes if exist, new add record, or delete data) - [HDDS-11447](https://issues.apache.org/jira/browse/HDDS-11447) Neither of these address my primary concern: that data is lost in translation of proto objects to or from json. Protos will still be valid if fields are missing or values have drifted unintentionally, and the audit log depends on human readable representations of the data which will not expose any silent bugs in translation to/from human readable format. > But as support, instead of downloading rosckdb ldb tool and using same is having higher risk as done for immediate recovery of environment and may not be possible for certain cases. The difference is that RocksDB's ldb is an external tool to interact with RocksDB directly. If someone is using that, it's clear that they are bypassing Ozone and removing any safety guarantees we provide. Once we add something to our CLI, even if it is under `ozone repair` which comes with it's own warnings, there is more trust by the user that it will work correctly. I don't think we can fulfill that requirement. I think we might be able to safely(ish) add something like this if we depended on protobuf itself to do the json <-> proto translation, but that is not supported until proto 3 ([javadoc](https://javadoc.io/doc/com.google.protobuf/protobuf-java-util/latest/com/google/protobuf/util/JsonFormat.html), [package versions](https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java-util)) -- 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]
