Track skipped transactions
We are allocating transaction identifiers which are shared across
shards. As a transaction can touch only some shards, non-participating
shards will never see the transaction ID, leading to holes in their
UnsignedLongSets -- and those holes gradually eat up more and more
memory.
Track when we have such a hole and lazily forward a new request, which
purges one or more such identifiers -- plugging the memory leak.
The crux of the machinery is exchanging state between ProxyHistory
and FrontendHistoryMetadataBuilder.
JIRA: CONTROLLER-1991
Change-Id: I3817fa2841e5f9c405bb20ff1a104537ad459ce3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
c7078128d6f35eebee2f98108ff929dcccfc322d)
(cherry picked from commit
a017289aefb2f937158b204b2593f146a10cb0cc)