3 ms·
I want to rush to MySQL's defense here, but I can't. If we forget for a moment about the history of it or the engineering challenges specific to MySQL and so on
by thaumaturgy 14y ago
I want to rush to MySQL's defense here, but I can't. If we forget for a moment about the history of it or the engineering challenges specific to MySQL and so on, what we have is an infrastructure application that one-way copies data to a remote instance of the same application, with almost no error handling and very little consistency checks, and that halts the data copy in the event of an error, without notifying anybody that there's a problem.
MySQL replication feels like a hack, not the sort of thing that people can use as part of a reliable infrastructure.
My MySQL replication wishlist would be:
1. bidirectional communication protocol so that slaves can ask the master for a fresh copy of some particular data in the event of an error;
2. built-in notifications for anything that might make an alcoholic out of a sober sysadmin;
3. periodic idle-time consistency checking (master: "I have X tables with Z definitions and N rows each"; slave: "something is wrong with my copy of Y, I need rows 1 - 100").
I have a couple of projects in my pipeline right now that are being held up entirely by the feeling that MySQL is not yet reliable enough and I need to build better monitoring and automated error-handling systems first.
- stcredzero 14y agoI suspect your statement could be templated: MySQL <X> feels like a hack, not the sort of thing that people can use as part of a reliable infrastructure.
- falcolas 14y agoWhat you're describing is essentially any flavor of Galara Cluster for MySQL. Unfortunately, it comes with its own tradeoffs. However I do see something a bit... off... about your 2nd concern. Why would you want a database to handle its own monitoring? I'd personally rather just set up a set of MySQL monitoring plugins into Nagios. That way all of my monitoring is one place. Consistency checking across terabytes of data on multiple servers is a hard problem. It would be great if it could be solved, but I'm not holding my breath for them (well, any DB vendor for that matter) to get it right.
- thaumaturgy 14y agoI've had issues with Nagios in the past and am not its biggest fan. Centralized monitoring is nice, but infrastructure-critical software shouldn't require people to add on monitoring applications IMO.
- falcolas 14y agoDo you have examples of other critical software incorporating their own monitoring solutions, such as Apache, PostgreSQL, even Linux? How would you monitor memory, disk and load usage? Sure - Nagios has its issues, but there are quite a few alternatives that can do the same thing, all of which can interface with your database for monitoring.