belliottsmith commented on code in PR #213:
URL: https://github.com/apache/cassandra-accord/pull/213#discussion_r2218790145
##########
accord-core/src/main/java/accord/local/SafeCommandStore.java:
##########
@@ -170,6 +170,8 @@ protected SafeCommand maybeCleanup(SafeCommand safeCommand,
@Nonnull StorePartic
{
Command command = safeCommand.current();
StoreParticipants participants =
command.participants().supplementOrMerge(command.saveStatus(), supplemental);
+ if (!commandStore().safeToRespond(command.txnId(), command.route()))
Review Comment:
We should be able to roll this into the internal maybeCleanup call, by just
checking status.any(UNSAFE/LOCALLY_CORRUPT/whatever)
We might want to somehow capture whether this load is to reply to an
external request or process the transaction locally, else we may struggle to
handle partial rebootstraps where a transaction is considered known for one
range but not for another (i.e., the transaction is no doubt known, but the log
is otherwise not safe for one part).
Either that, or we may want to define this as only affecting transactions
that are fully covered by UNSAFE/LOCALLY_CORRUPT, in which case we would only
throw the exception if status.all(UNSAFE/LOCALLY_CORRUPT). In this case, it
might be the case that we can consider merging this behaviour with Vestigial
handling. I don't have a well formed opinion about how best we should proceed
here, but can experiment with the patch if you like, or we can discuss and you
can explore the possibility space.
--
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]