Making Postgres slower

(byteofdev.com)

280 points | by AsyncBanana 13 hours ago

17 comments

  • KronisLV 2 hours ago
    I really like the idea of finding what dials can be turned and then doing so and seeing how much headroom you normally have and how far away from things breaking you are.

    Plus, those sorts of artificial limitations can be really helpful in finding where your systems bottleneck and what are the main optimizations that you should do (for example, I've seen N+1 problem sneak past because at the time the performance was good enough but once there was enough data it crumbled).

  • burnt-resistor 3 hours ago
    And forget indexes, multiple tables, transactions, entity relationships, and referential integrity. Use a single table as a KVS NoSQL SQL for all data just like TRIRIGA's early versions did.
  • vichyvich 12 hours ago
    I love this! It would be great to have follow-ups and series of books about how to make things worse, as a way to learn to make things better.

    Maybe it could be like O’Reilly, except the covers could have shittily-drawn fantasy animals, e.g. a 7-year-old’s drawing of a unicorn with a head on each side of its body both talking on their AirPods giving away their money to scammers, making PowerPoint slides, eating too much, doing hard drugs, live-streaming on Facebook, and standing on the railroad tracks with a train in the distance.

    • don-code 12 hours ago
      This strategy was actually used during World War II, to ensure pilots could come home safely. Weather forecasting not being what it is today, meteorologists determined what conditions would result in the _most_ lives being lost, then together with mission commanders "designed" missions to simply not meet those conditions.

      Source: https://medium.com/butwhatfor/suppose-i-wanted-to-kill-a-lot...

      • setr 10 hours ago
        The missile knows where it is because it knows where it is not…

        https://youtu.be/bZe5J8SVCYQ?si=QrIlpJ6BuJADd_zF

        • MobiusHorizons 5 hours ago
          Obviously this is a total aside, but can anyone explain what’s going on with that? Is it just explaining terrain mapping in an intentionally obtuse way, or is it some kind of parody? It’s really frustrated me because lots of people like to trot it out like a meme in the same way it was here.
          • Bairfhionn 4 hours ago
            It's a joke (meme, copypasta) but it's also accurate.

            As I understood: Missile uses gyros and accelerometers to figure out how far it flew already towards the target. This is not 100% accurate.

            So it additionally uses terrain mapping to figure out how it looks down there. Compare ground (am I flying above a slope?) to its internal maps and it can figure out where it is and adjust path if off course.

            So it figured out the position by knowing that the position is most likely not the position where it's supposed to be.

          • chrisandchris 4 hours ago
            > Is it just explaining terrain mapping in an intentionally obtuse way

            AFAIK, yes, that's what it actually was (or the basic sentiment actually came from). It was some part of training video in the US army/navy (don't know exactly), but the actual story or origin remains a bit unclear. At least my search within the web did not yield any (assumingly) valid source. I think at some point it just got to "it is what it is now" because it is a very, very complicated way to explain this stuff.

    • prisenco 12 hours ago
      I took a creative writing class and we had a portion where we read and analyzed bad writing then took good writing and rewrote it poorly and those were the most helpful writing exercises I've ever done.
    • adhamsalama 8 hours ago
  • gerdesj 12 hours ago
    I think this is absolute genius.

    If you are ever going to get to grips with optimizing something, why not do the opposite first or as a foil?

    How often do you really fenangle your database (or other system) properly? Are your performance enhancements really based on science or cargo culting or something else?

    • sschnei8 11 hours ago
      I always do that when working with a new cloud provider. I spend our Series A as fast as possible after which we can optimize cloud spend!
      • guiriduro 1 hour ago
        Yup that's a variation of the general 'deliver a hugely inefficient solution first, then iterate' tactic. Keeps multiple people employed much longer than a little (debatably) "premature" optimisation ahead of time, keep delivering benefits QoQ (that could have been delivered sooner, but whatever...), keep managers happy.
      • therein 7 hours ago
        Cloud providers love this one trick.
  • rtpg 5 hours ago
    I really want to see some operational setups be available as a sort of playground for observability tooling.

    A decent sized SaaS-like with usage simulation, and a postgres/rabbit setup that is merely fine. A place to check if your debugging tooling/strategy is upt to snuff.

  • KnuthIsGod 6 hours ago
    The Defence of Duffer's Drift is an early example of this genre.

    In the first story in the book you learn how to do platoon level tactics badly( and lose most of your men )

    In each subsequent story, a few tactical parameters are tweaked and the story is recounted again, with improved results.

    The same approach is used in newer tactical books like Musicians of Mars 2.

    The first Team Badger story in Musicians is very similar to the first story in Duffer's Drift, allowing for changes in location, equipment and techniques..

    Warning: PDFs below:

    The Defence of Duffer's Drift https://www.armyupress.army.mil/Portals/7/combat-studies-ins...

    Musicians of Mars 2 https://api.army.mil/e2/c/downloads/2023/01/19/5a01ae1c/16-1...

    "The lingering sulfur odor of gunpowder, mixed in the haze of the dust and smoke of battle, dominated the senses of CPT Fred Morris, commander of Team Badger. He sat amid the wreckage of what used to be some of the world’s finest combat machines, M1A2 Abrams tanks and M2A3 Bradley fighting vehicles.

    Now most of his company’s tanks and Brads were mere smoking hulks, emanating the distinct smell of burning electronics to add another element to the senses of the dismal scene before him.

    He sat, quietly reflecting on the sequence of events that led to the destruction of his beloved team. His mind raced as he recounted how the enemy force, so much more formidable than he had expected, employed assets, capabilities, and tactics that he had not taken into account. At the same time, he wondered why he was unable to bring to bear his own extensive combat power to earn decisive victory. He had felt so ready, so confident, and believed that his team had prepared so diligently.

    Yet, still they had been defeated so soundly. How could that be? LTC Joe Milner, the task force commander, had given Team Badger the task to defend the center of the task force main battle area (MBA) in an area defense to destroy the attacking enemy motorized rifle brigade. Specifically, CPT Morris and Team Badger were to defend against the enemy’s main effort motorized rifle battalion in Battle Position (BP) Badger, along the enemy’s most likely avenue of approach.

    That motorized rifle battalion plowed through Team Badger as if it were not even there."

  • stephenlf 12 hours ago
    Love the B Sanderson shoutout
  • robertclaus 7 hours ago
    This was great. The mention of deadlocks at the end makes me wonder if there's also some transaction isolation settings to adjust.
  • travisgriggs 6 hours ago
    Felt like a synergy of Hyperbole and a Half and db admin. Reading it made my day and taught me a few things too.
  • sastraxi 11 hours ago
    Great writing style and articulation of thought! That was a fun read
  • Waterluvian 11 hours ago
    Honestly, walking away in the wrong direction from default settings seems like a great way to really get a feel for their weight.
  • peterpost2 3 hours ago
    This is terrific.
  • shmerl 12 hours ago
    Reminds A Ticket To Tranai.
  • oceanparkway 10 hours ago
    We need more of this
  • snickerdoodle12 12 hours ago
    Excellent. Now do 42,000x faster please.
    • mort96 12 hours ago
      You never specified a baseline. They could undo their changes and it's 42,000x faster again :)
    • jiggawatts 12 minutes ago
      My record for DB query performance improvement is 13,000:1 and I was called a liar and a cheat to my face and then the customer walked out of the meeting.

      I think if someone achieved 42,000:1 they'd be accused of sorcery and burned at the stake.

  • preinheimer 12 hours ago
    Love it.