[buddypress-trac] [BuddyPress Trac] #7436: Very slow	check_is_friend function
    buddypress-trac 
    noreply at wordpress.org
       
    Mon Feb  6 20:55:42 UTC 2017
    
    
  
#7436: Very slow check_is_friend function
--------------------------+--------------------
 Reporter:  januzi_pl     |       Owner:
     Type:  defect (bug)  |      Status:  new
 Priority:  low           |   Milestone:  2.7.5
Component:  Friends       |     Version:  2.7
 Severity:  major         |  Resolution:
 Keywords:  dev-feedback  |
--------------------------+--------------------
Comment (by dcavins):
 Replying to [comment:6 r-a-y]:
 > Is there a need to fetch all of the user's friendship IDs in one fell
 swoop in `BP_Friends_Friendship::get_friendships()` when we are just doing
 a one-to-one check as is the case in
 `BP_Friends_Friendship::check_is_friend()`?
 The idea was to reduce database lookups on member directories, for
 instance, where you're going to check against 20 other members. We could
 do 20 one-to-one checks, but the caching strategy was designed to get the
 friends list one time then compare against it 20 times. I'll admit that I
 didn't imagine a use-case where a user would have 20,000 friends. :) In
 this user's case, he'd be better off doing 20 narrowly targeted database
 lookups. (I'm not sure at what volume the performance tradeoff happens,
 truthfully.)
 We use a similar approach for group membership, which works great for most
 use cases, but if a member belongs to 20,000 groups, we'd have the same
 problem. I imagine this is true for most of our ID-based caching/filtering
 approaches: huge numbers of relationships are going to cause problems in
 some setups. I think @boonebgorges is having some thoughts about disk- vs
 memory-based caching performance.
 Maybe we could add some sort of escape hatch when the results list is
 massive. Or a filter so that site users could choose which behavior works
 better for them.
--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/7436#comment:7>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac
    
    
More information about the buddypress-trac
mailing list