[Twisted-Python] adbapi MySQL read/write splitting
Itamar Turner-Trauring
itamar at itamarst.org
Wed Sep 1 07:15:17 MDT 2010
On Tue, 2010-08-31 at 20:54 -0600, Jason J. W. Williams wrote:
> That's one way of handling it. Another way is to wrap the library so
> it does the splitting automatically. The advantage to the latter is
> not making mistakes where you accidentally use the READ connection for
> a write.
That sounds like a bad idea. You want to send reads to the write server
if you're doing so as part of a transaction that does writes, otherwise
in some cases you'll end up with wrong results.
For example, consider a transaction that inserts a row into a table, and
then does a select to count the number of rows in that table. If you
send the latter to a replicated read-only server, the result will be
incorrect, since it will not include the insert (which hasn't been
committed yet).
So, to repeat: you should only use the read server for operations that
are read-only. Which means some reads will go to the write server.
More information about the Twisted-Python
mailing list