this post was submitted on 02 Aug 2023
295 points (98.7% liked)

Lemmy NSFW

11918 readers
4 users here now

Updates about lemmynsfw.com

founded 1 year ago
MODERATORS
 

Hey yall, just wanted to chime in with a quick update on why we were down and have gone down a few times these past few days.

So... for those who don't know a bit on the backend way of how lemmy works right now, it's a lil more than a mess. Lemmy itself uses very little computing resources, you could probably run a decent instance on a toaster (I wouldn't suggest it though) but the problem that arises rapidly is the way photos are managed. The photo database downloads images both that are uploaded and federated. There is an option to disable caching for federated NSFW posts by unchecking enable NSFW within the instance admin panel. That's the only option related disabling federated images as of right now.

You see where I'm going with this, with this instance being as large as it is? Our photo database has been filling up pretty rapidly. We are attempting to troubleshoot solutions to prevent caching all federated content. Unfortunately as our backend team is attempting to figure that out, our pictures database just keeps ballooning more and more.

We have deleted some stuff in hopes to give more time, but we unfortunately have no choice but to migrate to object storage ASAP. Tomorrow there will likely be downtime as we migrate things over, and unfortunately there is no telling how long that will take.

Thank you for being patient and understanding while we navigate this. If you want to see updates to our status when we go down, check out our mastodon page here or come to our matrix public operations channel for updates (link in the sidebar.)

Things should work today though. Emphasis on should.

We are working on open collective still, but hosting this instance does cost money. If you are able to, donations are greatly appreciated. Especially as we will have to factor in object storage into our costs now.

all 50 comments
sorted by: hot top controversial new old
[–] [email protected] 64 points 1 year ago (1 children)

Yeahhhhh you don’t want to store images in a database. That will kill the database in a hurry. Store references to object storage.

[–] [email protected] 41 points 1 year ago (4 children)

It's ironic cause object storage for pictrs is a relatively new feature

[–] [email protected] 17 points 1 year ago (1 children)

MSSQL has had blob storage for a while and I don't know anyone that uses it. Their Filestream stuff was interesting by letting you store it in the FS but be indexes via the DB, but come-on, use a damn pointer people.

[–] [email protected] 1 points 1 year ago (1 children)

My company stores some 80+ TB in a series of MSSQL databases. Yes, you read that right. In. Each DB is allowed to grow to 250GB, then a new one is created and written to while the old one becomes read only.

[–] [email protected] 2 points 1 year ago

That is horrific. In my day job, I stored images in a database in my first job, learnt my lesson and now have an allergic reaction just thinking about it.

[–] [email protected] 8 points 1 year ago

Thanks for your hard work by the way.

[–] [email protected] 6 points 1 year ago

That is interesting. Oh well, I’ve met developers who didn’t always make the best design decisions for the backend until their ass has had chunks removed.

[–] [email protected] 5 points 1 year ago (2 children)

You haven't clarified yet as to whether or not you were storing the actual image data in the database....

[–] [email protected] 2 points 1 year ago (1 children)

That’s how Lemmy does so by default. I wish I was kidding 🙃

[–] [email protected] 2 points 1 year ago

I'm not sure how it still surprises me that someone could be THAT stupid. Yes it's called a "data"base, but it's for storing meta data, and short text data, not images/video/PDFs. Fucking carpenters always using a hammer for any job and plumber using a crescent as a hammer. Insane.

[–] [email protected] 1 points 1 year ago

Lemmy uses pict-rs for image storage, which can store on the filesystem or object storage (filesystem is the default) and Lemmy's default config doesn't seem to change that

[–] [email protected] 14 points 1 year ago (2 children)

Please tell me you're not putting the images actually /IN/ the database? Images/files don't belong in the fucking database(we have had customers try to do this and it's the biggest headache to get fixed). You only put LINKS to files in the database.

[–] [email protected] 23 points 1 year ago (1 children)
[–] beigeoat 2 points 1 year ago* (last edited 1 year ago)

I am using object storage on my personal instance, migration should also be relatively simple, pictrs has good documentation.

[–] [email protected] 9 points 1 year ago (1 children)

They do not. They just didn't phrase it right

[–] [email protected] 3 points 1 year ago (1 children)

Other comments seems to suggest otherwise.

[–] [email protected] 0 points 1 year ago* (last edited 1 year ago) (1 children)

I am literally hosting one of the biggest lemmy instances and I've been where they are before.I know what I'm talking about

[–] [email protected] 8 points 1 year ago (1 children)

Then educate us instead of boasting and being negative…

Sharing knowledge > sharing opinions

[–] [email protected] 2 points 1 year ago

Lemmy uses pict-rs for image storage, which can store on the filesystem or object storage (filesystem is the default).
Lemmy's default config

[–] altima_neo 9 points 1 year ago

Do what needs to be done, boss! We'll be here waiting for you.

[–] [email protected] 8 points 1 year ago

Oooh neat! Which object storage are you guys using? Ceph? MinIO? Something else? Would love to discuss gory details!

[–] [email protected] 8 points 1 year ago

Hey, you do what you gotta do.

Thank you.

[–] [email protected] 7 points 1 year ago (1 children)

I can't believe you're only just moving to object storage! Offload that stuff as much as possible (this is probably a grandmother suck eggs situation, I know).

When you say "photo database", do you mean Lemmy literally stores the binary image files in the db, or just the storage area for images (ofc linked to from the db)?

[–] [email protected] 6 points 1 year ago

By default lemmy as a software, the whole photo database is stored directly into a file folder that links itself to the drive. The entire photos. And of course the drive just rapidly inflates like a balloon since it stores not just local images but federated images

[–] [email protected] 6 points 1 year ago* (last edited 1 year ago) (1 children)

Note if you're migrating pictrs you don't need a whole lemmy downtime. Just pictrs

[–] [email protected] 2 points 1 year ago (1 children)

Thx I'll try to do that way.

[–] [email protected] 2 points 1 year ago (1 children)

Also it will be way more time than you think. The migration is slooooooow.

[–] [email protected] 3 points 1 year ago

25GB in 4 hours. Looks like it will take a few days 😕 I asked it to the Matrix chat, hopefully they have a solution.

[–] [email protected] 6 points 1 year ago (1 children)

It would be interesting if hosting images via IPFS was an option, but that would require pretty heavy changes on Lemmy's side.

[–] [email protected] 5 points 1 year ago

Thanks for the update and the openness. Hope you are able to make it work with a minimum of fuss, and that all the users understand. Good luck!

[–] [email protected] 5 points 1 year ago

You might want to look at storj.io for object storage. We've been using it in production at work and are really satisfied. It's priced pretty well, highly available, high throughput, multi regional by default and s3 compatible.