Also includes the ability to list buckets and objects in buckets from the ref store, which are not very efficent and mostly meant to be used for background tasks like this.
#rb carl.bystrom
[CL 28082400 by Joakim Lindqvist in ue5-main branch]
This breaks field filtering on json objects because system.text.json does not yet support solving that but .NET 7 adds support for it.
#preflight none
[CL 25143384 by Joakim Lindqvist in ue5-main branch]
Cleaning all namespaces at the same time, reduces load on database.
Move last access tracking in scylla to a seperate table, reduces work on database for compaction due to large inlined blobs.
Also removed the deletion of blobs when GCing ref, as this only runs in a single region so it makes regions very inconsistent in how quickly they delete blobs.
Also added option to control if replication log gets a delete record, and disabled this by default, as this delete record is not used for anything and just adds noise to the replication log.
Added test for scylla shard scanning of ref GC to make sure it isn't broken.
#preflight none
[CL 24119154 by Joakim Lindqvist in ue5-main branch]
Added option to control how GC works per namespace for refs. The default (and only option previously) is based on last access. Can now be set to none (no GC) and TTL (Time to live), default time to live is set via the namespace policy.
Setting any gc mode except for last access will disable the last access tracking, but it can still be overriden to be disabled for the worker.
None GC will be used for Virtual Asset storage pools while TTL will be used for op logs and bundles.
#preflight none
[CL 23966118 by Joakim Lindqvist in ue5-main branch]