Workaround for the performance issue with posting in large communities

Ruud@lemmy.worldmod to Lemmy.World Announcements@lemmy.world – 99 points –

We're still working to find a solution for the posting slowness in large communities.

We have seen that a post does get submitted right away, but yet the page keeps 'spinning'

So right after you clicked 'Post' or 'Reply' you can refresh the page and the post should be there.

(But maybe to be sure you could copy the contents of your post first, so you can paste again if anything would go wrong..)

50

At least the "reply" button goes away so I don't end up double- triple- or even duodecuple-posting! Thanks for all the hard work that must be going on behind the scenes right now!

I kept getting a timeout message from Jerboa which led me to think I hadn't been posted. So I ended up submitting the same joke to the Dad Jokes sub three times. Which actually is how dad might tell that joke.

Lemmy is now your digital dadlife assistant.

I get this occasionally with Jeroba too, I had assumed it was because I'm on Mint and the connection is shoddy but maybe it's an issue with the client.

I came here looking for information on this exact thing and judging by a couple of posts I found through Google on other Lemmy instances, it seems to be a Lemmy.world specific problem with Jerboa. So probably connected to the community slowness?

I'm getting this issue on a mobile browser.

Have you tried enabling the slow query logs @ruud@lemmy.world? I went through that exercise yesterday to try to find the root cause but my instance doesnā€™t have enough load to reproduce the conditions, and my day job prevents me from devoting much time to writing a load test to simulate the load.

I did see several queries taking longer than 500ms (up to 2000ms) but they did not appear related to saving posts or comments.

I assume that there is something that is O(N), which explains why wait time scales with community size (amount of posts, comments)

Oh, Big-O notation? I never thought Iā€™d see someone else mention big O notation out in the wild!

:high-five:

you are going to meet a lot of OG redditors in the next few weeks. Old reddit had Big O in every post, even posts with cute animals.

Thatā€™s pretty neat! Iā€™ve honestly never seen it mentioned on Reddit before, so got a bit excited to see someone mention it here, admittedly maybe too excited.

there was a time, before the digg invasion, where someone would post a picture of a woman feeding 30 cats and there would be Big O jokes about how well this would work and crazy modifications to the situation to improve it. This would be almost every thread at one point on the site. I miss it.

Thanks for your and the other Lemmy devs work on this. These growing pains are a good thing as frustrating as it can be for users and maintainers alike. Lemmy will get bigger and this optimization treadmill is really just starting.

In my case, the page keeps spinning but the post is not submitted, regardless of reloading the page or waiting for a long time. There was one case where I cut down significantly on the amount of characters in the post and then it posted, but I have been unable to replicate this.

I have the same issue with image posts. If I submit them through the app the posts counter on my profile goes up, but there's no post. I also can't retrieve any posts for my own account. It says I have 3 but it shows none.

Comments work OK so I'm not sure what the problem is. I was worried I got restricted or something.

Edit: Comments seem to work as the OP suggests though. I get the spinner but they've been posted already.

Oh my god I'm so fucking stupid. If you hide posts you've seen it'll also hide your own posts...

Just hopping into the chain to say that I appreciate you and all of your hard work! This placeā€”Lemmy in general, but specifically this instanceā€”has been so welcoming and uplifting. Thank you!

Thanks for posting the workaround and for working to resolve the issue. Lemmy is a great place, and a real breath of fresh air after Reddit.

Been noticing this in the app Iā€™m working on. Pretty much all POST requests fail to return a response and just timeout after 60 seconds. A quick refresh shows that the new items do successfully get created though.

its def more hung up today, oddly its only first level replies for some reason

@ruud@lemmy.world Yo dude, first off huge props and a big thank you for what you have setup. Iā€™ll be donating monthly while I am here. I appreciate that we have an alternative to Reddit at this critical moment in time.

I do have a question on your long term plans, do you want to continue to expand and upgrade the server, as funding allows, or is there a cap that you will close off the server to new members? Or perhaps make it more of a process to join?

Well if all the Reddit users would get over to Lemmy I guess all servers would need to scale up... but I think the server we have now is powerfull enough to grow quite a lot, as long as the software gets tuned ..

Agreed. Exp Full stack Web dev here. This slowness is clearly a dev issue. The ā€œit keeps spinningā€ is rarely a db issue or server issue IF the server has power and this one has. This smells to much like something is timing out . I also noticed that when I reply to someone who was logged in from kbin (or even mastodon) it just never ever submits.

Iā€™m not that familiar with federation itself. But I do know my way around the web. I too hope that they fix this asap. It could even be something like a non sorted query. Or just an endless/to long loop. These are the most typical bugs that happen when there is more data.

Anyway just my 2 cents. Like I said Iā€™m not that familiar with the Lemmy code.

Agreed. Exp Full stack Web dev here. This slowness is clearly a dev issue. The ā€œit keeps spinningā€ is rarely a db issue or server issue IF the server has power and this one has. This smells to much like something is timing out . I also noticed that when I reply to someone who was logged in from kbin (or even mastodon) it just never ever submits.

Iā€™m not that familiar with federation itself. But I do know my way around the web. I too hope that they fix this asap. It could even be something like a non sorted query. Or just an endless/to long loop. These are the most typical bugs that happen when there is more data.

Anyway just my 2 cents. Like I said Iā€™m not that familiar with the Lemmy code.

Again, thank you for the outstanding work! You are awesome!

Also, the new icon for lemmy world is great!

Does this behaviour appear on other big instances? E.g. lemmy.ml?

Yes. Absolutely does happen on other instances that have thousands of users.

Great, so it's reproducible and Lemmy-the-app related, not instance-specific. Should be fixable across the board once it's identified and resolved.

Yes it does, tried this workaround before.

Is the slowdown that it the instance has to send out updates about the comment to every other instance before returning a successful response? If so, is anyone working on moving this to an async queue?

Sending out updates seems like something thatā€™s fine being eventually consistent

Ooh thatā€™s a good remark ! Iā€™ll see if thatā€™s the cause

Reading more about how this works, sending out updates to each instance shouldnā€™t block the request from returning unless you have a config flag set to debug source.

It might be due to poorly optimized database queries. Check out this issue for more info. Sounds like there are problems with updating the rank of posts and probably comments too

So it looks like YOU SOLVED THE ISSUE with this reply! This led me to check the debug mode, and it was on! It turned that on when I just sterted the server and federation had issues....

We no longer seem to have the slowness!!

My comments seem to not go through sometimes, whenever I upvote posts on Jerboa I get an error that just says timeout. Doesn't seem to happen on other instances.

Yea I started just using my clipboard alot, and hitting the x or back on jerboa and comments go thru at about 90% success rate. For posts I let it do its thing just incase. But been copying stuff to save as draft.

Iā€™ve done this twice in the last 20 minutes and the content is not there. This workaround was working earlier today though.

One of the large applications I was working on had the same issue, to solve it we ended up creating multiple smaller instances and started hosting a set of related API's in each server.

for example read operations like list posts, comments etc could be in one server. write operations can be clusered in one server.

Later, whichever server is getting overloaded can be split up again. In our case 20% of API's used around 3/4th of server resources, so we split those 20% API's in 4 large servers and kept the remaining 80% API's in 3 small servers.

This worked for us because the DB's were maintained in seperate servers.

I wonder if a quasi micro-services approach will solve the issue here.

Edit 1: If done properly this approach can be cost effective, in some cases it might cost 10 to 20 percentage more in server costs, however it will lead to a visible improvement in performance.

Nice teething problems. I tried to post to !nba@lemmy.world but it just kept spinning. When I refreshed the post was not there.