Limit the number of already processed request objects to be cleaned up during a cleanup cycle. This prevents the cleanup thread from running too long and slowing down new request processing. Especially in large environments like ours (1 Mio. roles) this will help to improve overall RRSD performance. Another idea is to make cleanup frequency adjustable. Like the dynamic and nested group processing. See attached picture.