Uncategorized

  • pt-online-schema-change uses triggers; gh-ost uses the binlog

    Both tools copy a table without a long lock, and the mechanism they use to keep up with concurrent writes has different failure characteristics. The synchronous trigger cost…

  • OpenSearch is a fork, and the client library is the friction

    The server APIs are compatible at the fork point and the official clients started refusing to talk to anything that is not Elasticsearch. The product check is a…

  • Log levels: nobody agrees what warning means

    The levels are only useful if the team shares a definition, and every team discovers it does not during an incident. Writing the definitions down and putting them…

  • A deadlock is normal; retrying is your job

    InnoDB detects a deadlock, kills one transaction and returns an error, and an application that treats that as a bug will treat a normal event as an outage.…

  • Timeouts must decrease as you go inward

    If an inner call can take as long as the outer request is allowed, there is no time left to retry it or to return a useful error.…

  • webpack 5 module federation, and why nobody used it

    Module federation lets one build consume a module from another build at runtime, which solves a problem most applications do not have. The technology works and the operational…

  • terraform plan output leaks secrets into the log

    A plan prints the values it intends to write, and a pipeline that posts the plan to a pull request posts them to anybody who can see the…

  • toRefs, and the composable that returns an object

    A composable holding its state in a reactive object cannot return it directly, because every caller destructures the result and loses reactivity doing so. toRefs creates a ref…

  • Asserting a query count with a loose bound

    A test asserting an exact query count fails on every unrelated change and is deleted within a month; a bound survives. The fixture size is the part that…

  • docker compose, without the hyphen, from this year

    Compose v2 is a Docker CLI plugin rather than a separate Python program, which is why the command lost its hyphen and why both spellings exist on every…