synapse icon indicating copy to clipboard operation
synapse copied to clipboard

Option to only share presence with members of rooms with `m.direct`

Open svenpaulsen opened this issue 3 years ago • 3 comments

As you know, presence updates have a major impact on the overall server performance... but just turning it off is not a real solution in most use-cases. Therefore, I'm suggesting a new option in the presence configuration called limit_to_direct_rooms (or something like that).

The idea is, that when collecting the list of interested parties for presence updates, only room ids with a m.direct membership should be used. As a result, users would retrieve presence updates for their "contacts", but not for everyone who's sharing a group chat room. This could help decreasing the server load and increase privacy at the same time.

What do you think? Could this be a reasonable solution?

svenpaulsen avatar Feb 11 '22 19:02 svenpaulsen

This is a great proposal. Would even argue that it'd be a sane future default for privacy reasons.

Related: #8055 #10423

3nprob avatar Mar 27 '22 11:03 3nprob

Any feedback on this? Presence is still a major performance/privacy issue, but disabling it completely is not an option for us. Haven't looked at Dendrite yet. Would that be worth a try?

svenpaulsen avatar Dec 06 '22 23:12 svenpaulsen

We've initiated the implementation of this feature in our system and preliminary testing suggests a substantial reduction in both database usage and CPU load. You can track our ongoing efforts at the following link:

https://github.com/teamspeak/synapse

Our upcoming work will focus on introducing a user-configurable option for this feature. Upon completion, we will share these improvements by submitting a pull request.

svenpaulsen avatar Jul 28 '23 12:07 svenpaulsen