Support non-transactional GC for hashes
Relates to https://gitlab.com/gitlab-com/gl-infra/capacity-planning-trackers/gitlab-com/-/issues/1712.
When there is a lot of activity in a hash, GC consistently loses the race against concurrent mutations and entries keep accumulating. The more there are entries, the more HSCAN
commands is issued and the bigger the chance of losing vs mutations. For certain hashes we need transactionality so opt out of it.
- Support non-transactional GC for hashes
In certain cases we don't care about potentially deleting an entry that is being written to the hash during GC
-
Count GC conflicts
-
Return correct error
Edited by Mikhail Mazurskiy