-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Idempotent transaction send requests should be coalesced & duplicate suppressed #1742
Comments
A good example of this bad behaviour is shown here from @Ralith's HS:
The federation rate limiter lets us execute 3 of these transactions in parallel. They stack up (due to requiring to resolve state for a 23-prev-event event from #rust), and slow each other down catastrophically. The others block, and then eventually execute relatively quickly thanks to the result of the merge resolution being cached. Needless to say, we should never have been executing these in parallel in the first place. |
it also looks like the first request will only terminate once the other two processing in parallel finish, which consumes resources and slows things down even more (and causes the spurious final retry from the origin HS). I'm unclear on what lock is responsible for that. |
fixed (at last) by #2518. |
The problems in #1733 are somewhat exacerbated by the origin HS retrying the send txn 10 times over the course of 20 minutes. If the problem is simply that the txn is taking a long time to process (due to the lineariser lock in #1729), then we should surely just coalesce these requests together and return the same result when they all complete, rather than having them stack up.
The text was updated successfully, but these errors were encountered: