Cache rosters of offline users in order to improve performance
Access checks involving rosters happens a lot, especially with PEP. This can lead to loading the same users' roster a large number of times every time one of their contacts broadcast presence. Loading recently used rosters from a cache instead of storage should improve performance and reduce needless I/O.
Should be fairly easy, just sprinkle some util.cache on top and call it a day! ;)
That's pretty awesome. 24h roster lookup stats from my server:
1804191 load_roster: cache hit
102511 load_roster: cache miss, loading from storage
That's already great, but I'd like to micromanage this some more. Could you please make the size of the roster cache configurable?
Not necessarily opposing, but without knowing the memory usage (one side of the trade-off) I don't see how you can meaningfully configure this value.