dragonfly
dragonfly copied to clipboard
feat(transaction): Idempotent callbacks (immediate runs)
This PR generalizes the machanism of running transaction callbacks during scheduling, removing the need for specialized ScheduleUniqueShard/RunQuickie. Instead, transactions can be run now during ScheduleInShard - called "immediate" runs - if the transaction is concluding and either only a single shard is active or the operation can be safely repeated if scheduling failed (idempotent commands, like MGET).
Updates transaction stats to mirror the new changes more closely.
I want to rebase it on #2455 because currently the code is hard to deal with
I removed ScheduleSingleHop 😈
please add a extensive commit description for the change. It's pretty fundamental. You change a two year old tx design, so worth at good explanation. You can squash commits too