|
When a read query is interrupted by a slave failure, it should be possible to retry it on another slave or on the master. Since there's no guarantee that a statement executed on the slave and the master returns the same result, we can safely retry any query that does not modify the session state.
All critical statements(transactions, writes) are always sent to the master and the rest of the statements that are sent to the slaves could be classified as non-critical. This means that no hard dependencies on the data are present in any of the statements and some degree of slave lag is acceptable. This makes it safe to retry the queries in most situations.
This new feature should be configurable so that old failure behavior could be used.
|