• 0 Posts
  • 6 Comments
Joined 1 year ago
cake
Cake day: July 3rd, 2023

help-circle

  • Speed/pref and capacity are two separate things. I/O has nothing to do with the size of the database. You can write 100TB per second into the database and choose to only store 1TB of content. That does not mean the app is writing 1TB per second, it is still writing 100TBps.

    They said they changed how the activities data is stored, which reduced the size by 80%; here’s one of the changes they made: https://github.com/LemmyNet/lemmy/issues/3103

    As you can see, the issue here is that they were storing a lot of data in the activities table that is not needed, it was only meant for debug purposes. So, they split up the data into two and not store the other data as it isn’t needed; they’re still writing these data the same as before. One part is used to ensure they don’t re-process the same data but this is the same thing they were doing before this change.

    In addition, they’ve limited how long the data is retained for 3 months, which is a separate job they run to remove data.

    All of this has zero impact on the users using the app right now. The main benefit is for instance admins with limited storage. One might say the system slows down if there’s not enough space but that is still the same case here with this MR, it will still slow down.



  • Is it me or is the 80% figure just insane?

    Not really, you’d be surprised how often systems are bloated all because of a single option, character, etc. Most developers don’t start optimizing until much later in the software’s lifecycle. Often enough, it is easily overlooked. That’s why code reviews are needed often with fresh pair of eyes.

    Just to set the expectations, reducing database size or CPU usage does not necessarily mean it is faster but it does mean there’s more free capacity on the servers to handle more users at the same performance.

    More importantly; they may help reduce costs on the smaller indie instances that doesn’t need to buy larger server instances.

    Hopefully, we’ll continue to see more of these optimizations.