Thread: Fw: Announcing MySQL 5.0 Release Candidate

Fw: Announcing MySQL 5.0 Release Candidate

From
"Michael Paesold"
Date:
I tought this could be interesting for PostgreSQL marketing. It's about the
upcoming MySQL 5.0 release. They have done quite a bit to make MySQL more
standards compliant (see "SQL strict mode") -- probably requested by anyone
migrating from a real but more expensive DBMS.

They also claim "XA Distributed Transactions" -- have they implemented
two-phase commit? Nevertheless, this is what we currently have in the
release notes:

> Two-Phase Commit (2PC): long in demand for WAN applications and
> heterogenous data centers using PostgreSQL, this feature allows
> ACID-compliant transactions across widely separated servers.

Perhaps the term "distributed transactions" should be added? Or XA? Those
are probably more buzzword style than two-phase commit.

Best Regards,
Michael Paesold

----- Original Message -----
From: "Kaj Arnö" <kaj@mysql.com>
To: <announce@lists.mysql.com>
Sent: Monday, September 26, 2005 6:41 PM
Subject: Announcing MySQL 5.0 Release Candidate


Dear user of MySQL,

I'm proud and excited to announce the first Release Candidate of MySQL
5.0. This milestone signals that we are nearing what is certainly the
most important release in MySQL's history.

MySQL 5.0 has new functionality that I hope will be welcomed, adopted,
and put to productive use by the community of MySQL users -- you. On the
commercial side, MySQL AB is getting a lot of good vibes from new
enterprise customers who are beginning to understand the impact MySQL
can have on their IT infrastructure and costs of running
mission-critical applications.

The betas of MySQL 5.0 have already been downloaded two million times,
and have thus been tested extensively in a lot of different scenarios.
 From the feedback we get from our community, we know it is already in
production use at numerous sites. Go get your own copy at
http://dev.mysql.com/downloads/mysql/5.0.html

Without question, MySQL 5.0 is the most ambitious release to date for
MySQL AB. Of course, everything we do at MySQL centers around our three
priorities of Performance, Reliability, and Ease of Use.  Version 5.0 of
MySQL is certainly true to these company-wide imperatives.

Key new features of MySQL 5.0 come in three groups:

a) ANSI SQL standard features formerly unknown to MySQL
b) ANSI SQL standard compliance of existing MySQL features
c) New MySQL Storage Engines, Tools and Extensions

The new ANSI SQL features include:

- Views (both read-only and updatable views)
- Stored Procedures and Stored Functions, using the SQL:2003 syntax,
   which is also used by IBM's DB2
- Triggers (row-level)
- Server-side cursors (read-only, non-scrolling)

Implementing ANSI SQL standard ways of using existing MySQL features
means there will be fewer unpleasant surprises ("gotchas") for those
migrating to MySQL from other database systems:

- Strict Mode: MySQL 5.0 adds a mode that complies with standard SQL
   in a number of areas in which earlier versions did not; we now do
   strict data type checking and issue errors for all invalid dates,
   numbers and strings as expected
- INFORMATION_SCHEMA: An ANSI SQL-compliant Data Dictionary for
   accessing metadata, in parallel to the MySQL specific SHOW
   commands
- Precision Math: A new library for fixed-point arithmetic, giving
   high accuracy for financial and mathematical operations
- VARCHAR Data Type: The maximum effective length of a VARCHAR column
   has increased to 65,532 bytes; also, stripping of trailing whitespace
   no longer occurs

New MySQL Storage Engines, Tools and Extensions are:

- XA Distributed Transactions
- ARCHIVE Storage Engine for storing large amounts of data without
   indexes in a very small footprint, intended for historical data that
   may be needed for future audit compliance (Sarbanes Oxley or
   otherwise)
- FEDERATED Storage Engine for accessing data ín tables of remote
   databases rather than in local tables (only in MAX version)
- Instance Manager: a tool to start and stop MySQL Server, even remotely

To find out more details on what's new in MySQL 5.0, follow the pointers
from http://dev.mysql.com/doc/mysql/en/mysql-5-0-nutshell.html

To find out the changes specific to MySQL 5.0.13 in relation to 5.0.12,
see http://dev.mysql.com/doc/mysql/en/news-5-0-13.html

MySQL 5.0 is also reflected in our GUI tools and Connectors:

MySQL Administrator 1.1.3 and MySQL Query Browser 1.1.15 are aware of
the new MySQL 5.0 features, can be used to write and test stored
procedures, create views, include them in scheduled backups and much more.

The latest shipping versions of our Connectors work with MySQL 5.0, and
all connectors (MySQL Connector/ODBC, Connector/J and Connector/NET)
will support all flagship features before 5.0 goes GA.

We're pleased that we've reached a point of stability where it's been a
while since we received a significant inflow of bugs that drastically
impacted a large number of users. Of course, we recognize we haven't
crossed the finish line yet, so we still very much need your involvement
to ensure that MySQL 5.0 is the best that it possibly can be.

With MySQL 5.0 being that stable, I encourage you to do all of your new
database development using MySQL 5.0:

1. Download 5.0 from http://dev.mysql.com/downloads/mysql/5.0.html
2. Use the new features you need
3. Report any issues you find through our bug-reporting system at
    http://bugs.mysql.com/.

To show our appreciation for your efforts, we'll be fixing the bugs you
find as fast as we can.

And, to provide a little extra motivation, we will be giving away Apple
iPod nanos, and even full conference passes to our 2006 MySQL Users
Conference, to those who deliver the most valuable feedback. Read more
on http://dev.mysql.com/mysql_5_contest.html . Without your involvement
and your excellent input, we at MySQL wouldn't be able to do our job: to
produce high-quality database software for you to trust and use.

I look forward to your input

- in our MySQL Forums at http://forums.mysql.com/
- in the bug database at http://bugs.mysql.com/
- in our mailing lists at http://lists.mysql.com/
- in the PlanetMySQL blog aggregation via
   http://www.planetmysql.org/newfeed.php
- in the User Comments of our manual at
   http://dev.mysql.com/doc/mysql/en/index.html
   (specifically for Documentation comments)
- and in the form of downloads from
   http://dev.mysql.com/downloads/mysql/5.0.html

Thank you -- we look forward to hearing back from you -- not just about
bugs but any feedback on how MySQL can help support you.

Kaj Arnö
VP Community Relations
MySQL AB


Re: Fw: Announcing MySQL 5.0 Release Candidate

From
Chris Browne
Date:
mpaesold@gmx.at ("Michael Paesold") writes:
>> Two-Phase Commit (2PC): long in demand for WAN applications and
>> heterogenous data centers using PostgreSQL, this feature allows
>> ACID-compliant transactions across widely separated servers.
>
> Perhaps the term "distributed transactions" should be added? Or XA?
> Those are probably more buzzword style than two-phase commit.

No, those would qualify as "lying," which is something that we oughn't
do.  Lying should be left to the advocates of other systems...

Two phase commit is a prerequisite for doing distributed transactions,
and XA is a particular standard to which the 2PC support does not, at
this point, conform.
--
let name="cbbrowne" and tld="ntlug.org" in name ^ "@" ^ tld;;
http://www.ntlug.org/~cbbrowne/linuxxian.html
"HE'S AHAB, boy; and Ahab of old, thou knowest, was a crowned king!"
-- /Moby-Dick/, Ch 16

Re: Fw: Announcing MySQL 5.0 Release Candidate

From
"Michael Paesold"
Date:
Chris Browne wrote:
> Two phase commit is a prerequisite for doing distributed transactions,
> and XA is a particular standard to which the 2PC support does not, at
> this point, conform.

I did not know that, thanks for clarification.

Out of interest, what is still needed to support XA?

Best Regards,
Michael Paesold

Re: Fw: Announcing MySQL 5.0 Release Candidate

From
Josh Berkus
Date:
Chris,

> Two phase commit is a prerequisite for doing distributed transactions,
> and XA is a particular standard to which the 2PC support does not, at
> this point, conform.

Eh?  I was under the impression that XA was implemented in the JDBC
layer, not in the backend.

--Josh

XA

From
Chris Browne
Date:
josh@agliodbs.com (Josh Berkus) writes:
> Chris,
>
>> Two phase commit is a prerequisite for doing distributed transactions,
>> and XA is a particular standard to which the 2PC support does not, at
>> this point, conform.
>
> Eh?  I was under the impression that XA was implemented in the JDBC
> layer, not in the backend.

There was an JDBC-based *attempt* at an XA handler; it wasn't fully
functional, which essentially means it wasn't really XA.

When the 2PC discussion was going on, it definitely came up in the
discussion that this was a prerequisite to doing XA properly.  It
might not be forcibly necessary in the strictest sense, but 2PC is
certainly one of the normal means for synchronizing distributed
transactions...
--
"cbbrowne","@","cbbrowne.com"
http://cbbrowne.com/info/sgml.html
"When people understand what Microsoft is up to, they're outraged."
-- Tim O'Reilly, President, O'Reilly & Associates

Re: XA

From
Josh Berkus
Date:
Chris,

> There was an JDBC-based *attempt* at an XA handler; it wasn't fully
> functional, which essentially means it wasn't really XA.
>
> When the 2PC discussion was going on, it definitely came up in the
> discussion that this was a prerequisite to doing XA properly.  It
> might not be forcibly necessary in the strictest sense, but 2PC is
> certainly one of the normal means for synchronizing distributed
> transactions...

But ... now that we have 2PC, XA could be implemented through pg-jdbc if
someone wanted to, yes?

--
Josh Berkus
Aglio Database Solutions
San Francisco

Re: XA

From
Kris Jurka
Date:

On Thu, 29 Sep 2005, Josh Berkus wrote:

> But ... now that we have 2PC, XA could be implemented through pg-jdbc if
> someone wanted to, yes?
>

We have patches for xa support pending, but have not committed them yet.
Our 2PC support doesn't allow a full XA implementation because full XA
allows multiple transactions to run in parallel on the same resource and
allows other threads to join an already running transaction.  The
question is whether application servers and transaction managers do
this by default and whether it can be disabled.  Initial research shows
our support may be good enough for practical purposes.

http://archives.postgresql.org/pgsql-jdbc/2005-06/msg00165.php
http://archives.postgresql.org/pgsql-jdbc/2005-06/msg00171.php

Kris Jurka



Re: XA

From
Simon Riggs
Date:
On Tue, 2005-09-27 at 23:10 -0400, Chris Browne wrote:
> josh@agliodbs.com (Josh Berkus) writes:
> > Chris,
> >
> >> Two phase commit is a prerequisite for doing distributed transactions,
> >> and XA is a particular standard to which the 2PC support does not, at
> >> this point, conform.
> >
> > Eh?  I was under the impression that XA was implemented in the JDBC
> > layer, not in the backend.
>
> There was an JDBC-based *attempt* at an XA handler; it wasn't fully
> functional, which essentially means it wasn't really XA.
>
> When the 2PC discussion was going on, it definitely came up in the
> discussion that this was a prerequisite to doing XA properly.  It
> might not be forcibly necessary in the strictest sense, but 2PC is
> certainly one of the normal means for synchronizing distributed
> transactions...

I didn't realise that the 2PC we have implemented was not XA.

That's bad news. To most people they are the same thing, so I foresee
some fairly poor feedback.

It is my understanding that an XA interface was required to interface
correctly with transaction managers. AFAIK XA is an interface that
JDBC/JTA provides a mapping for, but they are different things.

Who knows the full info on this?

Best Regards, Simon Riggs




Re: XA

From
"Joshua D. Drake"
Date:
>I didn't realise that the 2PC we have implemented was not XA.
>
>That's bad news. To most people they are the same thing, so I foresee
>some fairly poor feedback.
>
>
To most people where? I am not being antagonistic, I am just curious if
this is a Java
community thing or if you impression is "in general" people consider
them the same
thing.

Sincerely,

Joshua D. Drake




--
Your PostgreSQL solutions company - Command Prompt, Inc. 1.800.492.2240
PostgreSQL Replication, Consulting, Custom Programming, 24x7 support
Managed Services, Shared and Dedicated Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/


Re: XA

From
Chris Browne
Date:
simon@2ndquadrant.com (Simon Riggs) writes:

> On Tue, 2005-09-27 at 23:10 -0400, Chris Browne wrote:
>> josh@agliodbs.com (Josh Berkus) writes:
>> > Chris,
>> >
>> >> Two phase commit is a prerequisite for doing distributed transactions,
>> >> and XA is a particular standard to which the 2PC support does not, at
>> >> this point, conform.
>> >
>> > Eh?  I was under the impression that XA was implemented in the JDBC
>> > layer, not in the backend.
>>
>> There was an JDBC-based *attempt* at an XA handler; it wasn't fully
>> functional, which essentially means it wasn't really XA.
>>
>> When the 2PC discussion was going on, it definitely came up in the
>> discussion that this was a prerequisite to doing XA properly.  It
>> might not be forcibly necessary in the strictest sense, but 2PC is
>> certainly one of the normal means for synchronizing distributed
>> transactions...
>
> I didn't realise that the 2PC we have implemented was not XA.
>
> That's bad news. To most people they are the same thing, so I foresee
> some fairly poor feedback.

That seems somewhat silly.

XA is a Well Defined thing that is a whole lot more than just two
phase commit.

<http://www.opengroup.org/public/pubs/catalog/c193.htm>

It is an API specified by an Open Group standard with a 12 function
call API.

Why anyone should _assume_ that something being called 2PC conforms to
a standard with a particular name that isn't being named seems a bit
mystifying.

If it was XA that was being implemented in PostgreSQL 8.2, then it
would be big-time dumb to not mention that.

> It is my understanding that an XA interface was required to interface
> correctly with transaction managers. AFAIK XA is an interface that
> JDBC/JTA provides a mapping for, but they are different things.
>
> Who knows the full info on this?

Having 2 phase commit was to be a _prerequisite_ to implementing an XA
interface.

It looks like the main places where XA is getting used these days is
with Java frameworks.

BEA implemented Tuxedo, which was the basis for XA; these days, what
they are hawking are Java frameworks.
--
output = reverse("moc.enworbbc" "@" "enworbbc")
http://www3.sympatico.ca/cbbrowne/finances.html
"What if you slept?  And what if, in your sleep, you dreamed?
 And what if, in your dream, you went to heaven and there
 plucked a strange and beautiful flower?  And what if, when
 you awoke, you had the flower in your hand?  Ah, what then?"
    --Coleridge

Re: XA

From
Leonard Soetedjo
Date:
Hi,

I don't know whether this is the right list to clarify about 2PC & XA,
but here goes...

On Fri, 2005-09-30 at 14:42 -0400, Chris Browne wrote:
> simon@2ndquadrant.com (Simon Riggs) writes:
>
> > On Tue, 2005-09-27 at 23:10 -0400, Chris Browne wrote:
> >> josh@agliodbs.com (Josh Berkus) writes:
> >> > Chris,
> >> >
> >> >> Two phase commit is a prerequisite for doing distributed transactions,
> >> >> and XA is a particular standard to which the 2PC support does not, at
> >> >> this point, conform.
> >> >
> >> > Eh?  I was under the impression that XA was implemented in the JDBC
> >> > layer, not in the backend.
> >>
> >> There was an JDBC-based *attempt* at an XA handler; it wasn't fully
> >> functional, which essentially means it wasn't really XA.
> >>
> >> When the 2PC discussion was going on, it definitely came up in the
> >> discussion that this was a prerequisite to doing XA properly.  It
> >> might not be forcibly necessary in the strictest sense, but 2PC is
> >> certainly one of the normal means for synchronizing distributed
> >> transactions...
> >
> > I didn't realise that the 2PC we have implemented was not XA.
> >
> > That's bad news. To most people they are the same thing, so I foresee
> > some fairly poor feedback.
>
> That seems somewhat silly.
>
> XA is a Well Defined thing that is a whole lot more than just two
> phase commit.
>
> <http://www.opengroup.org/public/pubs/catalog/c193.htm>
>
> It is an API specified by an Open Group standard with a 12 function
> call API.
>
> Why anyone should _assume_ that something being called 2PC conforms to
> a standard with a particular name that isn't being named seems a bit
> mystifying.

I admit my knowledge of database is not very deep, and I thought that
2PC and XA is about the same thing.  But I guess there are many people
having the same thinking as me.

In where I live (Singapore), PostgreSQL is almost unheard of, and I'm
tired of people promoting MySQL for everything from simple website to
full blown ERP system.  Naturally, when I see that MySQL 5.0 is going to
have XA, I'd check out PostgreSQL to see  whether it has distributed
transaction too.  When I see that it has 2PC, I thought it's the same as
XA.

I still don't quite understand the whole thing.  Correct me if I'm
wrong: 2PC is a distributed transaction and a subset of XA's
functionality.  And XA is a standard that is mainly used by Java?  Does
this mean that Java JDBC/JTA can't do a distributed transaction with
postgreSQL for now?

Thanks :)


Re: XA

From
Simon Riggs
Date:
On Fri, 2005-09-30 at 08:23 -0700, Joshua D. Drake wrote:
> >I didn't realise that the 2PC we have implemented was not XA.
> >
> >That's bad news. To most people they are the same thing, so I foresee
> >some fairly poor feedback.
> >
> >
> To most people where? I am not being antagonistic, I am just curious if
> this is a Java
> community thing or if you impression is "in general" people consider
> them the same
> thing.

Well, for a long time CICS 2PC was not XA. So if you're an IBM
mainframer then you might ask what type of 2PC we support.

Every other conversation I've had on this, XA has been used synonomously
with 2PC. So I mean, in general.

XA predates J2EE and JDBC.

Best Regards, Simon Riggs


Re: XA

From
Peter Eisentraut
Date:
Chris Browne wrote:
> It is an API specified by an Open Group standard with a 12 function
> call API.

This may be interesting for those wondering what's going on:

http://java.sun.com/j2se/1.4.2/docs/api/javax/transaction/xa/package-summary.html

So yes, you probably need 2PC support in the server, but the actual
implementation work needs to be done in the JDBC driver (or any other
client interface).

--
Peter Eisentraut
http://developer.postgresql.org/~petere/