Thread: PgSQL MVCC vs MySQL InnoDB

PgSQL MVCC vs MySQL InnoDB

From
nd02tsk@student.hig.se
Date:
Hello

Harrison Fisk from MySQL claims in this thread:

http://forums.mysql.com/read.php?35,3981,4245#msg-4245

That there are no major differences between InnoDB and MVCC concurrency.

Is this true?

Thank you.

Tim


Re: PgSQL MVCC vs MySQL InnoDB

From
Jan Wieck
Date:
On 10/25/2004 11:53 AM, nd02tsk@student.hig.se wrote:

> Hello
>
> Harrison Fisk from MySQL claims in this thread:
>
> http://forums.mysql.com/read.php?35,3981,4245#msg-4245
>
> That there are no major differences between InnoDB and MVCC concurrency.
>
> Is this true?

 From a functional point of view, the two appear to do the same thing.
The implementation is certainly different and has pros and cons into
both directions. The statement is absolutely accurate and also explains
why Postgres never had any sort of file structure repair tools. I would
even go further in that you don't want to repair any corrupted files, as
those repair operations might introduce breakage of referential
integrity of your data.


Jan

>
> Thank you.
>
> Tim
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
>       subscribe-nomail command to majordomo@postgresql.org so that your
>       message can get through to the mailing list cleanly


--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #

Re: PgSQL MVCC vs MySQL InnoDB

From
Andrew Sullivan
Date:
On Mon, Oct 25, 2004 at 01:15:33PM -0400, Jan Wieck wrote:
> On 10/25/2004 11:53 AM, nd02tsk@student.hig.se wrote:
>
> >Is this true?
>
> From a functional point of view, the two appear to do the same thing.

Well, except for one difference.  InnoDB will allow you refer to
tables not controlled by the InnoDB table handler, whereas we don't
have that problem with MVCC.  So under MVCC, by definition, you can't
have partial transaction failures.  (Or, more precisely, any such
partial failure is a bug in PostgreSQL, but in MySQL it might be a
feature.)

A

--
Andrew Sullivan  | ajs@crankycanuck.ca
In the future this spectacle of the middle classes shocking the avant-
garde will probably become the textbook definition of Postmodernism.
                --Brad Holland

Re: PgSQL MVCC vs MySQL InnoDB

From
Jan Wieck
Date:
On 10/25/2004 2:42 PM, Andrew Sullivan wrote:

> On Mon, Oct 25, 2004 at 01:15:33PM -0400, Jan Wieck wrote:
>> On 10/25/2004 11:53 AM, nd02tsk@student.hig.se wrote:
>>
>> >Is this true?
>>
>> From a functional point of view, the two appear to do the same thing.
>
> Well, except for one difference.  InnoDB will allow you refer to
> tables not controlled by the InnoDB table handler, whereas we don't

That is a (mis)feature of MySQL itself, not of the InnoDB storage engine
if used in a mixed table type query by MySQL. InnoDB does not control
what is done in the "upper management" with the rows it returns from a
scan. This kind of abuse is as much InnoDB's fault as it is your fault
when your quite accurate work is merge-joined with marketing material
for decision making.


Jan

--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #

Re: PgSQL MVCC vs MySQL InnoDB

From
Gaetano Mendola
Date:
Andrew Sullivan wrote:
> On Mon, Oct 25, 2004 at 01:15:33PM -0400, Jan Wieck wrote:
>
>>On 10/25/2004 11:53 AM, nd02tsk@student.hig.se wrote:
>>
>>
>>>Is this true?
>>
>From a functional point of view, the two appear to do the same thing.
>
>
> Well, except for one difference.  InnoDB will allow you refer to
> tables not controlled by the InnoDB table handler, whereas we don't
> have that problem with MVCC.

 From MySQL gotchas:

1) And the same "feature" allow also to start a transaction, mix the two
tables and have a warning only after the "rollback" about the inability
destroy the updates done on non INNODB tables.

2) Create or delete and index or alter a table will recreate the entire
    table.

3) Our rollback is a O(1) operation not O(N)  where N is the operations
    performed during the transaction



Regards
Gaetano Mendola





Re: PgSQL MVCC vs MySQL InnoDB

From
Andrew Sullivan
Date:
On Mon, Oct 25, 2004 at 03:45:40PM -0400, Jan Wieck wrote:
> That is a (mis)feature of MySQL itself, not of the InnoDB storage engine
> if used in a mixed table type query by MySQL.

Sure, but I think this difference is very far from plain in the
marketing literature promoting MySQL with InnoDB.  You actually need
to understand the difference between MySQL and its storage engines to
understand why this is the case, and one can't really expect people
who are evaluating different systems to know all that sort of detail
in advance.

A

--
Andrew Sullivan  | ajs@crankycanuck.ca
In the future this spectacle of the middle classes shocking the avant-
garde will probably become the textbook definition of Postmodernism.
                --Brad Holland