Difference between Falcon's and InnoDB's row level locking/MVCC

Hi guys,

I’ve been doing some reading on the concepts of MVCC and row level locking. In particular how InnoDB and Falcon implement these concepts respectively.

During my research I listened to some great podcasts from technocation. In episode five it is said that Falcon’s implementation of MVCC virtually eliminates the use of any locking. As I understand what MVCC is about (I think), this makes sense. Reads can occur even if a given resource is “busy” because more than one version of the resource is available.

In the book Pro MySQL (by Michael Kruckenberg and Jay Pipes) it is said, that in InnoDB MVCC “improves the troughput of concurrency”. Here, I can’t stop thinking that there is a significant difference between improving concurrency (innodb, as stated in Pro MySQL), and eliminating the need for locking (falcon, as stated in the podcast)?

Is Falcon significantly better at concurrency? Is there any difference of importance between the two implementations?

I might just be me misinterpreting something, but nonetheless I need clarification, so please enlighten me if you please )

Thank you!

Implementations are different but from user level it is rather similar - Innodb and Falcon both do not need any locks for Selects.

Falcon is still in flux so it is hard to tell but you can check out our recent presentation to learn what we get out of it so far

http://www.mysqlperformanceblog.com/files/presentations/OSCO N2007-Landscape-of-trx-engines.pdf

Thank you )