Do not keep in memory shared contacts whose subscription type is FROM
Description
LDAP installations are the most common case where user base may be huge and public shared groups are used. For instance, if we have 3000 users in the LDAP and 1 shared group with only 10 users then:
1) Each of the 10 users will have 2990 roster items in memory whose subscription type is FROM. Note that those roster items are not being sent to the user 2) Those 2990 roster items will trigger a query to get the name of the user to show it in the roster. But since these are FROMs then they will never appear in the roster. Thus this just slows down the server with unnecessary work.
LDAP installations are the most common case where user base may be huge and public shared groups are used. For instance, if we have 3000 users in the LDAP and 1 shared group with only 10 users then:
1) Each of the 10 users will have 2990 roster items in memory whose subscription type is FROM. Note that those roster items are not being sent to the user
2) Those 2990 roster items will trigger a query to get the name of the user to show it in the roster. But since these are FROMs then they will never appear in the roster. Thus this just slows down the server with unnecessary work.