> On Tue, 27 Apr 1999 14:22:37 -0600, Sasha Pachev wrote:
... stuff deleted
> In general, it's just more work in the application to be traded off
> against the overhead [for all work] of having transaction support in
> the server. Same for referential integrity: It's work for the app to
> enforce it where needed, and work for the server to enforce it
> generally. The problem with doing it server side is that is slows down
> all the work that doesn't need transactions/referential integrity.
I have another proposal for transaction support with mysql: Implement some
kind of middleware on the server side, which is doing all DB accesses. The
clients communicate via Corba with this thing and don't have to use any
SQL calls. Instead object oriented methods can be implemented in the server
which can be used by the clients. Because the server does all the DB
accesses for himself, its more or less easy to implement transaction
support here, depending on the programming language and platform used on
the server. I've implemented a small Java Server with JDBC access to the
mysql server half a year ago. There are a couple of Java clients and C++
clients who access the server via Corba. The performance is great despite the
overhead of the additional middleware layer. This is because the server is
multithreaded, like the mysql server, and i'm using a customizable number
of parallel connections between the server and mysql. It's possible to
serve more clients with this technique too, because its not necessary to
create a connection to mysql for every client anymore. Another plus is the
less IO between the client and the server due to the prework, the server
can do on the data from the DB, before it is forwarded to the client. And
if you need to do heavy work on the server you can put it on an extra
machine, so this solution scales very good depending on the application.
What do you think about this? I've made very good experiences with this
implementation so far. But It's a pity that I can't use Enterprise
JavaBeans technology, because this depends on transaction support in the
DB itself. The problem that remains is, that I can't use a big TP-Monitor
from componies like BEA, IBM, Gemstone and so on with mysql right now.
So I have to write it myself...