From: Todd Gillespie Date: 2001-12-13T10:05:18+09:00 Subject: [ruby-talk:28376] Re: DBI and large result sets Tobias DiPasquale wrote: : True, true. MySQL has support for transactions via Berkeley DB (or : InnoDB, if you prefer), yes, but they also have something they call : atomic operations (since 4.0, I think), which supposedly provide the : same ACID propertiesas a traditional transaction, but with a fraction of : the resource cost. I have no direct experience with these, you would : probably have to hit http://www.MySQL.com and check out their docs for a : complete explanation. I went and read the documentation on this since I had not heard of this before. It is a scam. You can read their page on 'atomic operations' at http://www.mysql.com/doc/A/N/ANSI_diff_Transactions.html It seems they are just using this phrase on the old MySQL hallmark of 'lock all tables, do updates, release locks'. Somehow they claim this is somehow faster than transactions and more reliable regardless of: 1. table locks mean all other users block while this runs 2. if an error is raised, the programmer must trap it and write the inverse of all previous updates; the system provides no checks for correctness 3. and MySQL does not meet the 'C' in 'ACID', since there are no user-defineable integrity constraints. Marketers would call this 'lying by repeated assertion' until no one notices the lie anymore. Sort of how Microsoft provides 'security'. MySQL is a fine example of ways a good OSS project should *not* be run. I'm glad the Ruby community is totally open with its shortcomings and plans for the future.