this post was submitted on 12 Aug 2024
548 points (96.8% liked)

Comic Strips

12464 readers
3403 users here now

Comic Strips is a community for those who love comic stories.

The rules are simple:

Web of links

founded 1 year ago
MODERATORS
 
top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 71 points 2 months ago (4 children)

Alright who's running the database on the same machine as the server...πŸ‘€

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

If you can do this, do it. It's a huge boost to performance thanks to infinitely lower latency.

[–] [email protected] 11 points 2 months ago (2 children)

And infinitely lower reliability because you can't have failovers (well you can, but people that run everything in the same host, won't). It's fine for something non critical, but I wouldn't do it with anything that pays the bills.

[–] [email protected] 24 points 2 months ago* (last edited 2 months ago) (2 children)

I work for a company that has operated like this for 20 years. The system goes down sometimes, but we can fix it in less than an hour. At worst the users get a longer coffee break.

A single click in the software can often generate 500 SQL queries, so if you go from 0.05 ms to 1 ms latency you add half a second to clicks in the UI and that would piss our users off.

Definitely not saying this is the best way to operate at all times. But SQL has a huge problem with false dependencies between queries and API:s that make it very difficult to pipeline queries, so my experience has been that I/O-bound applications easily become extremely sensitive to latency.

[–] [email protected] 6 points 2 months ago (2 children)

I’m going to guess quite a people here work on businesses where β€œsometimes breaks, but fixed in less than an hour” isn’t good enough for reliability.

load more comments (2 replies)
[–] [email protected] 3 points 2 months ago (1 children)

A single click in the software can often generate 500 SQL queries, so if you go from 0.05 ms to 1 ms latency you add half a second to clicks

Those queries don't all have to be executed sequentially though, do they? Usually if you have that many queries, at least some of them are completely independent of the others and thus can execute concurrently.

You don't even need threading for that, just non-blocking IO and ideally an event loop.

load more comments (1 replies)
load more comments (1 replies)
[–] [email protected] 47 points 2 months ago (1 children)

Most beginner selfhosters.

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

and most every cpanel (and every other web host panel) box on the planet.

web, ftp, database, mail, dns, and more. all on one machine.

load more comments (1 replies)
load more comments (2 replies)
[–] [email protected] 69 points 2 months ago (1 children)

Ok, now I need a 8 season animated show and at least 2 direct-to-TV movies of this

[–] [email protected] 24 points 2 months ago (3 children)

Best I can do is a Netflix series that gets cancelled halfway through season 2 and a fan-made animation spoof on YouTube

load more comments (3 replies)
[–] [email protected] 60 points 2 months ago (1 children)

Random guess, a php error caused Apache to log a ridiculous number of errors to /var/log and on this system that isn’t its own partition so /var filled up crashing MySQL. The user wiped /var/log to free up space.

[–] [email protected] 6 points 2 months ago

That's not far off of something that happened to me once a few years ago. My computer suddenly started struggling one day, and I quickly figured out that my hard drive suddenly had 500 gigs or so of extra data somewhere. I had to find a tool that would let me see how much space a given folder was taking up, and eventually I found an absolutely HUMONGOUS error log file. After I cleared it out, the file rapidly filled up again when I used a program I'd been using all the time. I think it was Minecraft or something. Anyway, my duck tape solution was to just make that log file read-only, since the error in question didn't actually affect anything else.

[–] [email protected] 60 points 2 months ago (3 children)

Fuck MySQL, all my homies hate MySQL.

Postgres is the way to go.

[–] [email protected] 25 points 2 months ago (2 children)
[–] [email protected] 14 points 2 months ago

Yes, Maria too.

Postgre is the way

load more comments (1 replies)
[–] [email protected] 22 points 2 months ago (1 children)

It was you! You killed it.

[–] [email protected] 8 points 2 months ago

I do admit to moving the company cluster from MySQL to Postgres.

But only most of the traffic, some traces still remain, so the original MySQL still works

[–] [email protected] 8 points 2 months ago (3 children)
[–] [email protected] 5 points 2 months ago (1 children)

I did two rounds of very long presentations comparing those two systems.

Personal reasons:

  • SQL standard support is still very weak
  • lack of WAL
  • array support
  • weird replication support
  • utf8mb4 mess took too long to resolve
  • many things started to get better only after Oracle takeover
[–] [email protected] 3 points 2 months ago

lack of WAL

Isn't that what the binlog is?

array support

This annoys me too. It's not quite the same, but native JSON support landed in MySQL 5.7.8. It's stored in a binary format.

weird replication support

How does PostgreSQL do it?

load more comments (2 replies)
[–] [email protected] 53 points 2 months ago (1 children)

Plot twist: it was the user

[–] [email protected] 7 points 2 months ago

That's not even a plot twist, that's expected user behavior

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

All evidence point to suicide.

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

I hadn't realized this was a .ru domain....

[–] [email protected] 21 points 2 months ago

Maybe it's a 'Windows' server...

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

Systemd. SQL is now in Systemd.

[–] [email protected] 8 points 2 months ago

Dont spoil. That's the secret in Episode 5.

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

I understand none of this.....

[–] [email protected] 16 points 2 months ago

"Among us" but for Linux nerds.

[–] [email protected] 23 points 2 months ago

It was Java, coaxing the Linux OOM killer into doing the job

[–] [email protected] 22 points 2 months ago

This process has been murdered mysteriously.

[–] [email protected] 22 points 2 months ago

It looks like the OOM killer has struck again.

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

/var/log has been deleted, you say...

I think we all know what this means, don't we?

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

Hint

ls -ld /var/log
drwxrwxr-x 18 root syslog 4096 Aug 11 08:13 /var/log

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

I have no clue. Root nuked the logs? Why? OOM killer does not do that.

[–] [email protected] 13 points 2 months ago (2 children)

Well, there is only one who could have erased all traces of the SIGKILL...

And only the SIGKILLER would have had reason to do so...

load more comments (2 replies)
[–] [email protected] 7 points 2 months ago (1 children)

That seems so obvious I think we're missing something

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

Whatever, we have a suspect.

Bring in GDB to do the interrogation! And perhaps also call Nice, he can play the good cop...

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

Forgive me my ignorance, but since Apache is running as root, couldn't PHP inherit it's permissions?

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

The Apache main process runs as root. When it receives a request, it spawns a child process that doesn't run as root. PHP runs as the same user as the Apache child process.

[–] [email protected] 4 points 2 months ago

Or PHP runs in its own fastcgi like process under a different account.

[–] [email protected] 20 points 2 months ago
[–] [email protected] 17 points 2 months ago

Will there be a follow up?

[–] [email protected] 14 points 2 months ago

I did it like this: πŸ”« BANG WhooOooOoopty doOoO

[–] [email protected] 12 points 2 months ago

It was the kubelet after MySQL failed his liveness probes

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

Like everytime with natives, it was a race condition cascade of table locks followed by mysql suicide caused by bad cronjob scripts implemented by the user.

load more comments (1 replies)
[–] [email protected] 6 points 2 months ago (1 children)
[–] [email protected] 6 points 2 months ago

It was taking away resources from the coffee cam. Had to go.

[–] [email protected] 5 points 2 months ago

Mariadb did it with the candlestick in the library.

load more comments
view more: next β€Ί