• esc27@lemmy.world
    link
    fedilink
    arrow-up
    60
    ·
    3 months ago

    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.

    • harmsy@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      3 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.

      • jmcs@discuss.tchncs.de
        link
        fedilink
        arrow-up
        12
        arrow-down
        1
        ·
        3 months ago

        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.

        • tias@discuss.tchncs.de
          link
          fedilink
          arrow-up
          24
          ·
          edit-2
          3 months ago

          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.

          • Katana314@lemmy.world
            link
            fedilink
            English
            arrow-up
            6
            ·
            3 months ago

            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.

              • trxxruraxvr@lemmy.world
                link
                fedilink
                arrow-up
                3
                ·
                3 months ago

                Most businesses dont require that kind of uptime though. If i killed or servers for a couple of hours between 02:00 and 04:00 every night probably nobody would notice for at least a year if it wasn’t for the alerts we’d get.

          • dan@upvote.au
            link
            fedilink
            arrow-up
            3
            ·
            3 months ago

            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.

            • tias@discuss.tchncs.de
              link
              fedilink
              arrow-up
              2
              ·
              edit-2
              3 months ago

              The catch is that they all need to run in the same transaction to be unaffected by other things going on in the database and to make updates atomic. A single transaction means a single connection, and ODBC/JDBC has no way of multiplexing or pipelining queries over a single connection.

              It’s probably theoretically possible to run some things in different transactions. But with all the different layers and complexity of the code (including third party components and ORMs like Hibernate), understanding all the failure modes and possible concurrency issues becomes intractable.

      • adarza@lemmy.ca
        link
        fedilink
        English
        arrow-up
        21
        ·
        3 months ago

        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.

        • dan@upvote.au
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          3 months ago

          Most sites hosted on cPanel are relatively small and never need to horizontally scale. People running apps large enough to require multiple servers usually try to optimize their environment by reducing overhead (and cPanel adds quite a bit of it) and tend to not need a GUI for server admin.

      • msage@programming.dev
        link
        fedilink
        arrow-up
        5
        ·
        3 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

      • msage@programming.dev
        link
        fedilink
        arrow-up
        5
        ·
        3 months ago

        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
        • dan@upvote.au
          link
          fedilink
          arrow-up
          3
          ·
          3 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?

      • dan@upvote.au
        link
        fedilink
        arrow-up
        1
        ·
        3 months ago

        I’m not sure what the future of MariaDB is… It lacks a bunch of newer MySQL features, and they’ve deviated far enough that I don’t know if they can cleanly backport them from MySQL any more.