Today was my last day at Booking.com, and shortly I will be joining the team at GitHub. I'd like to thank the many kind, friendly & smart people I've worked with at Booking.com! The challenges at Booking.com are big. There is such a diversity within the technology stack; even within the database range. A solution that […]
Problem: there's an awesome Golang project on GitHub which you want to fork. You want to develop & collaborate on that fork, but the golang import path, in your source code, still references the original path, breaking everything. A couple solutions offered below. First, though, let's get some names. A sample case, the problem at hand There's an […]
This post sums up some of my work on MySQL resilience and high availability at Booking.com by presenting the current state of automated master and intermediate master recoveries via Pseudo-GTID & Orchestrator. Booking.com uses many different MySQL topologies, of varying vendors, configurations and workloads: Oracle MySQL, MariaDB, statement based replication, row based replication, hybrid, OLTP, […]
One of our internal apps at Booking.com audits changes to our tables on various clusters. We used to use tungsten replicator, but have since migrated onto our own solution. We have a binlog reader (uses open-replicator) running on a slave. It expects Row Based Replication, hence our slave runs with log-slave-updates, binlog-format='ROW', to translate from the […]
Having attended a talk (as part of the MariaDB Developer Meeting in Amsterdam) about recent developments of MaxScale in executing automated failovers, here are some (late) observations of mine. I will begin by noting that the project is stated to be pre-production, and so of course none of the below are complaints, but rather food […]
We are used to issue queries with an IN clause of the form: However I've had a few cases where I used an inverted format. Here's one use case followed by an inverted IN clause. Dynamic query building Say we have this function: Which, based on whether given clusterName is empty or not, would return […]