1
submitted 1 year ago* (last edited 1 year ago) by Kalcifer@lemmy.world to c/lemmy@lemmy.ml

Over time, Lemmy instances are going to keep aquiring more, and more data. Even if, in the best case, they are not caching content and they are just storing the data posted to communities local to the server, there will still be a virtually limitless growth in server storage requirements. Eventually, it may get to a point where it is no longer economically feesible to host all of the infrastructure to keep expanding the server's storage. What happens at this point? Will servers begin to periodically purge old content? I have concerns that there will be a permanent horizon (as Lemmy becomes more popular, the rate of growth in storage requirements will also increase, thereby reducing the distance to this horizon) over which old -- and still very useful -- data will cease to exist. Is there any plan to archive this old data?

top 14 comments
sorted by: hot top controversial new old
[-] 018118055@sopuli.xyz 2 points 1 year ago

One way to approach the geometric storage growth would be to not cache everything everywhere all at once. With 1000+ instances, storing an object in a few instances would be ok if others can pull it in on demand. Can use some typical caching methodology like use frequency, aging etc.

[-] vamp07@lemm.ee 1 points 1 year ago

This is a great idea. Instances will need eventually to agree to common storage areas, even if they dont all allow the same content on their instance. That savings would be huge in the long run.

[-] BaroqueInMind@kbin.social 1 points 1 year ago

Sounds like the federated instances should consider opening up for donations and paid features like comment awards and animated shit like Discord or Reddit.

[-] ubergeek77@lemmy.ubergeek77.chat 1 points 1 year ago* (last edited 1 year ago)

Pictrs 0.4 recently added support for object storage. This is fantastic, because object storage is dirt cheap compared to traditional block storage (like a VM filesystem). This helps a lot for image storage, which is a large part of the problem, but it's not the whole problem.

I know Lemmy uses Postgres for everything else, but they should really invest time into moving towards something more sustainable for long term/permanent hosting. Paid Postgres services are obscenely upcharged and prohibitively expensive, so that's not an option.

I'm armchair architecting here so I'm not sure what that would look like for Lemmy (Cloudflare KV? Redis?)

Still, even my own private instance has been growing at a rate of about 700MB per day, and I don't even subscribe to that many things. I can't imagine what the major instances are dealing with. This isn't sustainable unless we want to start purging old data, which will kill Lemmy long term.


EDIT: Turns out ~90% of my Lemmy data is just for debugging and not needed:

https://github.com/LemmyNet/lemmy/issues/3103#issuecomment-1631643416

[-] lodion@aussie.zone 1 points 1 year ago

The largest table holds data that is only needed by Lemmy briefly. There is a scheduled job to clear it... Every 6 months. There are active discussions on how best to handle this.

On my instance I've set a cronjob to delete everything but the most recent 100k rows of that table every hour.

I saw that issue, and then I saw people having problems after clearing it, so I'm just going to wait until they figure that out in a stable version. Looking forward to it though!

It looks like the issue I was referring to has since been edited, as it's not actually relevant to clearing this database bloat:

https://github.com/LemmyNet/lemmy/issues/3103

[-] HamSwagwich@kbin.social 0 points 1 year ago

@Kalcifer

The long term solution is something like IPFS object storage that's read only for everyone but the author instance. One copy of the data but all instances can read it and it's stored forever in a redundant medium with bitrot protection.

[-] mojo@lemm.ee 0 points 1 year ago

No thanks, don't need crypto bullshit

[-] HamSwagwich@kbin.social 1 points 1 year ago

@mojo Tell me you don't know what IPFS without telling me you don't know what IPFS is, lol. What the fuck does IPFS have to do with crypto?

@Kalcifer

[-] mojo@lemm.ee 0 points 1 year ago

Because ipfs isn't free and gets paid in filecoin, which is exactly what it sounds. Just crypto bullshit.

[-] HamSwagwich@kbin.social 1 points 1 year ago

@mojo Just keep telling people you don't know what IPFS is without coming outright and saying it. Lol.

"IpFs GeTs PaId In FiLe CoIn"

IPFS is a protocol, you nitwit. That's like saying "ActivityPub is gets paid in Filecoin" Makes no fucking sense. Build a Fediverse layer on IPFS, no crypto needed. FFS get educated before you start trying to talk to adults.

Jesus... just stop.

@Kalcifer

[-] o_o@programming.dev -1 points 1 year ago

Personally I think we should add a differentiation between the storage policies of content which is owned by your own instance and content that federates from other instances.

The former should be kept for a long time (forever?), while the latter can be cleared more regularly.

load more comments
view more: next ›
this post was submitted on 11 Jul 2023
1 points (100.0% liked)

Lemmy

11948 readers
4 users here now

Everything about Lemmy; bugs, gripes, praises, and advocacy.

For discussion about the lemmy.ml instance, go to !meta@lemmy.ml.

founded 4 years ago
MODERATORS