Skip to content

Support non-transactional GC for hashes

Mikhail Mazurskiy requested to merge ash2k/improve-gc into master

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

Merge request reports