performance

  • The partition that could finally be dropped

    A partition where every remaining row was past its retention, eight months after the classification work. The partition scheme from 2023 aligns with the retention classes only at…

  • A cold start after a failover

    A promoted standby serving traffic with an empty cache and a cold opcode cache, measured during a drill. The warm-up script existed and was bound to the wrong…

  • Eleven indexes that existed only for reporting

    Indexes on production tables serving queries that no user request ever makes. An index that serves only reporting is paying a write cost on every insert to make…

  • The reporting database that is not a replica

    A read replica serving reports, and reports that want a different schema. Eleven indexes on production tables that exist only for reporting.

  • The stylesheet that finally got a second maintainer

    2,100 lines that one person could change, and the year spent fixing that. Every stylesheet change routed through one person for four years.

  • A report that got slower because the data grew

    A query that was fine at four hundred thousand rows, acceptable at four million, and unusable at twelve. A query whose cost grows with the data is not…

  • opcache after a year of property hooks

    Two hundred and eighteen methods became properties, and the question of whether the opcode cache noticed. A hook costs about what a method call costs because it is…

  • The runner that was larger than the job needed

    An eight-core runner assigned to a job that is network-bound, at four times the cost for no gain. A larger runner was applied to every job when it…

  • A year of property hooks, and the three I would not write again

    218 methods became properties in December 2024, and a year of living with a syntax that hides work.

  • Percentiles per consumer, still the most useful label

    One label added in 2025, still the thing that surfaces problems no aggregate shows. A consumer at four times the aggregate is a signal that no absolute threshold…