I am working on a site that heavily relies on members, their roles and custom properties. And we are doing a lot of work with custom caches, etc. to get around poor performance when pulling out member data.
I was wondering if anyone here has some experience or knowledge to share about how they are doing it?
Here are a few of the things we are working on:
2 separate v13 sites, one with 12k members another with 30k.
We quickly noticed loadtests returning poor load times when the member logs in even with a fairly low load - that led to this PR:
Optimize the member save as part of the member login process, by-passing locking and audit steps and handling only the expected update properties by AndyButland · Pull Request #19308 · umbraco/Umbraco-CMS
That helped a lot with that issue, but we still see poor performance in a lot of places under load where we need to fx pull a members profile picture or similar custom properties and having to do
var member = await _memberManager.GetCurrentMemberAsync();
var publishedMember = _memberManager.AsPublishedMember(member);
To access any of its properties.
Right now we are caching all members for quite a while with cache invalidation running on member save/delete notifications. That works pretty ok but required a lot of custom code to get members to a spot that content is in by default.
Any ways - does anyone have any tips or considerations to share about performance and members?