If you can't restart mysqld you have an architectural problem. Your database will go down sometimes and your system should be built to tolerate that.
If you can't restart mysqld you have an architectural problem. Your database will go down sometimes and your system should be built to tolerate that.
I don't know how to ask this more precisely, but how are races and concurrent writes on both masters handled? Is it still "ACID safe" writing across the cluster, or would you use something like this as a hot-spare for promotion in case of failover only?
Restarting MySQL is a violent operation. For large databases, it can take several minutes. If I can avoid it, I do so, and this was a really clever workaround for an issue that indeed avoided a restart. That's a good thing.
That's not at all true. It's very common unix practice to open a file, delete it, and then use it for critical operations.
Creating then deleting a temporary file is very common technique to make sure that that for will be removed as soon as the application closes it, it also is used to make sure that nothing will tamper with it. I find amusing that author found a way to still tamper with it.
Now depending on what the file was used for either the corrupted files caused database to return corrupted data to the user, write corrupted data to the database, our in the best scenario return error to the application issuing the query.
That said it still doesn't prevent the author for modifying the file by referencing file descriptor.