ChenSammi commented on PR #5293: URL: https://github.com/apache/ozone/pull/5293#issuecomment-1721019952
> > This is done to ensure rocksdb transaction gets deleted only after all the required nodes has committed the transaction. > > But that is the bug - when you send to 2 nodes, you expect 2 responses not 3. The check of 3 responses here is we want to make sure it can safely delete the transaction from the rocksdb table. If there are only 2 responses are received, then the delete transaction cannot be deleted from the rocksdb. It will be kept in rocksdb, and also in memory map transactionToDNsCommitMap and transactionToRetryCountMap. Both the rocksdb and memory map will remove this transaction's record until the 3rd replica is reported, and the block deletion executed on this 3rd replica and acked to SCM. If the 3rd replica disappears for a long time, and there are many such containers, then these two in memory map will hold objects which cannot be released for a long time. This task aims to improve this situation. Adding a timeout to the delete command is a good idea. But it's not related with this issue. We can support it in a new JIRA. -- 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]
