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 <ch...@global-village.net>
Date: January 14, 2009 10:47:49 AM PST
To: Joe Moreno <joemor...@mac.com>
Cc: WebObjects-Dev Mailing List <webobjects-dev@lists.apple.com>
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      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net

This email sent to ch...@global-village.net


--
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      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/george%40boxofficetickets.com

This email sent to geo...@boxofficetickets.com


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to