Re: OpenBase & WebObjects for scaling
Re: OpenBase & WebObjects for scaling
- Subject: Re: OpenBase & WebObjects for scaling
- From: Scott Keith <email@hidden>
- Date: Wed, 14 Jan 2009 15:04:21 -0500
Hi All,
I want to comment on a few things in this thread.
OpenBase generates globally unique keys by incrementing the key by a
set multiple (either 10 or 100). When you setup a cluster, each
database gets its own unique identifier (0-99) and that identifier is
used to generate keys for that database which are globally unique.
So for instance, db #1 would generate keys 1001,1011,1021,1031,etc.
db #2 would generate keys 1002,1012,1022,1032. This way if the link
between the databases ever goes down, the keys generated would still
be guaranteed to be unique.
Regarding the fix described at:
http://homepage.mac.com/andrewlindesay/le/manuals/lewostuff/LEWOStuffOverview.pdf
(Section 9: OPENBASE JDBC Adaptor, on page 119.)
We are planning to compile this fix directly into the OpenBase
Plugin. What the fix does is grab the locks at the beginning of the
transaction so there will never be a case where the transaction needs
to be aborted to avoid a deadlock with another transaction. This is
essentially what it does at the SQL level:
START TRANSACTION
WRITE TABLE foo, bar
INSERT INTO foo...
INSERT INTO bar...
COMMIT
If you have not had a chance to try OpenBase 11 (beta), you can find
it at http://www.openbase.com/beta. Other things that are going into
OpenBase 11 include: incremental backups, PDF document value
extraction, always-on encryption, improved handling of dynamic
networks and a whole bunch of other features. A 64 bit version is
also in the works.
Best regards,
Scott Keith
OpenBase
Begin forwarded message:
From: Chuck Hill <email@hidden>
Date: January 14, 2009 10:47:49 AM PST
To: Joe Moreno <email@hidden>
Cc: WebObjects-Dev Mailing List <email@hidden>
Subject: Re: OpenBase & WebObjects for scaling
Hi Joe,
On Jan 13, 2009, at 10:11 AM, Joe Moreno wrote:
Andrew,
Another thing that's impressed me with OpenBase is the clustering
failover. I doubt many people have used this feature.
Any SQL written to any database in the cluster is automatically
propagated to other OpenBase databases in that cluster within five
seconds without any primary key collisions.
Do you know how OpenBase handles that? This is usually quite the
problem with clustering and replication. Does it need to have a
GUID as the primary key, or does it work with integers?
Additionally, if the master database fails your WebObjects app
will automatically begin using another database in the cluster (no
code needed to handle this case). Once the master database
recovers, its SQL, from the other databases, is updated and it
resumes handling the WO app's SQL.
That sounds quite interesting.
Chuck
On Dec 30, 2008, at 00:39:27, Andrew Lindesay wrote:
Hello Joe;
I think this problem may be slightly different as it is not
necessarily to do with PK's. My understanding is that
"OpenBasePKPlugIn" is there to get EOF to use the OPENBASE PK-
generation scheme rather than EO_PK_TABLE.
cheers.
I think I ran into the exact problem you mentioned about the
deadlock in OpenBase 10 using the default primary key generation.
Scott Keith advised me to compile the WO apps against the
OpenBasePKPlugin.framework which uses the OpenBaseJDBC.jar and,
even under heavy load, I've never had a problem using OB 10 with
the plugin. I just had to add a single line to my
Application.java:
JDBCPlugIn
.setPlugInNameForSubprotocol
("com.webobjects.jdbcadaptor.OpenBasePKPlugIn", "openbase");
___
Andrew Lindesay
www.lindesay.co.nz
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
--
Chuck Hill Senior Consultant / VP Development
Practical WebObjects - for developers who want to increase their
overall knowledge of WebObjects or who are trying to solve specific
problems.
http://www.global-village.net/products/practical_webobjects
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden