Great! 😁 I was just wondering because the memory graph showed sharp falls in memory usage every ~30 mins.
Exploring The Lemmy Archipelago 🏝️🍾
Great! 😁 I was just wondering because the memory graph showed sharp falls in memory usage every ~30 mins.
Is the memory leak still there?
I think the devs have been aware of the issue, theoretically, for a while. A proper solution requires some significant changes, so it was being postponed because this wasn’t considered urgent.
I think I found what eats the memory. DB iops isn’t the cause - looks like the server doesn’t reply before all the database operations are done. The problem is the unbounded queue in the activitypub_federation crate, spawned when creating the ActivityQueue struct. The point is, this queue holds all the “activities” - events to be sent to federated instances. If, for whatever reason, the events aren’t delivered to all the federated servers, they are retried with an exponential backoff for up to 2.5 days. If even a single federated instance is unreachable, all events remain in memory. For a large instance, this will eat up the memory for every upvote/downvote, post or comment.
Lemmy needs to figure out a scalable eventual consistency algorithm. Most importantly, to store the messages in the DB, not in memory.
I’m calling it - if there’s actually a memory leak in the Rust code, it’s gonna be the in memory queues because the DB’s iops can’t cope with the number of users.
But… but… Rust…
These are upvotes and downvotes. I doubt views are logged anywhere, apart from the webserver.
Why are you selecting for long names? 😅
Makes sense. I also use all kinds of messengers. But it just so happens that the people I communicate with the most also use Signal 😁
In terms of an optimal load spread, it’s best if the lemmiverse is split into multiple equally sized instances. If you use an instance just for yourself, it doesn’t actually decrease the load on the main servers in any way. The only thing you get is a guarantee that your instance won’t suddenly go down.
Maybe people should realise that they, too, have a life, just like Musk-Trump-West-Rogan-Peterson-Shapiro-Kardashians.
Some people on the internet live in a very detached reality… 😅
I’m particularly interested in things like Arweave. Smart contracts are cool too, though, to be actually useful, governments need to embrace them.
You did see this coming, but I don’t understand why people associate Telegram with security in any way. It openly states that it’s not end to end encrypted and everything is visible to the server! And if you enable end to end encryption for a particular chat, its functionality is severely restricted.
Are there any people left who use just 1 app for messaging? There’s WhatsApp, Messenger, Instagram, Signal, Telegram, Viber, WeChat, Snapchat, Discord, Slack, Line, etc, etc. And these are just the main ones.
For one on one chats and group chats, Signal and Telegram have about the same experience. Telegram’s main feature, imo, is the public channels.
I’d be fine with using it as my messenger of choice if they open sourced it and allowed us to run our own servers
The main problem with XMPP is that there is literally no clients with good UI.
Looks like it’s in the plans, by default. All good.
Rust has no garbage collector though. Memory is freed up as soon as the variable leaves the current scope.
I’m guessing the server was still set up to restart every 30 mins at the time this pic was taken. Then they tried disabling that and it was fine.