Clint's proposal would work very well for certain workloads.  At a
coarser level, it would be beneficial for some other workloads to do
table-level dependency checking.  This is a very old and well
understood problem as far as I know (though I am not the expert on it
myself) -- I remember studying this in chip architecture classes in
college.

That is: if two transactions don't touch the same tables, they are
fine to run concurrently, in any order.  Or even if they do -- as long
as they're only reading from the shared tables, they're fine to run
concurrently.  It's all a question of read-after-write and write-after
write and all that -- there are only four combinations.

There are a lot of  edge cases that I think would make this
complicated.  If the slave stops while it was applying several
transactions, where should it start again?  Maybe transaction 5 was
finished, but 4 and 3 were halfway through and got rolled back.  I
expect a lot of similar nasties to rear their heads.

(This particular one could be solved by executing parallel but
commiting in the original order, of course.)

Baron

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to