TraceMachina / nativelink

NativeLink is an open source high-performance build cache and remote execution server, compatible with Bazel, Buck2, Reclient, and other RBE-compatible build systems. It offers drastically faster builds, reduced test flakiness, and specialized hardware.
https://nativelink.com
Apache License 2.0
1.2k stars 117 forks source link

Remove wildcard searching in redis scheduler #1408

Closed allada closed 1 month ago

allada commented 1 month ago

Redis does not use a b-tree under the hood, instead it aggregates the key space, then does a union on all documents in the database. Thus, redis has a limit on how many items are unioned (MAXEXPANSIONS); by default redis has this set to 200. This limitation causes issues if there ever becomes more than 200 scheduled tasks, so we get around this by making the sort and filter index separate. Now we search explicitly for exact match state, then sort on a different key.


This change is Reviewable