Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]
Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]
- Subject: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]
- From: Chuck Hill <email@hidden>
- Date: Fri, 4 Dec 2009 09:51:24 -0800
On Dec 4, 2009, at 9:43 AM, Kieran Kelleher wrote:
Hi Guido .... shiver? .... is it that cold in California? ;-)
Fair points. This has been a good discussion.
What is the workaround ....... is it that we must write a delegate
to do ordering of updates like Chuck did for MS SQL Server? Is that
right? Chuck?
Or... just use a real database with real database features. Deferred
Constraints is what, SQL92? That would be 1992. What year is it
now? I thought that only MS SQL did not have them.
On Dec 4, 2009, at 12:04 PM, Guido Neitzer wrote:
Why does this make me shiver? I'd like to have my DB take care of
structural integrity for me as
1) I will make coding mistakes,
2) It is rare, that ONLY WO touches a DB,
3) I will not rely on EOF always doing the thing I expect it to do.
Not having FK constraints is about as wrong as using MyISAM in my
opinion.
cug
--
http://www.event-s.net
On 4. Dec. 2009, at 06:21 , Kieran Kelleher wrote:
Ramsey,
Just remove the FK constraints in MySQL. WO works fine without
them since EOF takes care of it. If a database does not support
deferred constraints, then you should not add FK constraints at all.
Cheers, Kieran
On Dec 4, 2009, at 8:02 AM, Ramsey Lee Gurley wrote:
Hi Kieran,
Have you tried vertical inheritance with MySQL? I have Animal-
>Cat->Leopard. I try to create a leopard and it fails because
com.webobjects.eoaccess.EOGeneralAdaptorException:
EvaluateExpression failed:
<com.webobjects.jdbcadaptor._MySQLPlugIn$MySQLExpression: "INSERT
INTO Leopard(spots, id) VALUES (?, ?)" withBindings: 1:33(spots),
2:9(id)>:
Next exception:SQL State:23000 -- error code: 1452 -- msg: Cannot
add or update a child row: a foreign key constraint fails
(`example/leopard`, CONSTRAINT `Leopard_id_id_FK` FOREIGN KEY
(`id`) REFERENCES `cat` (`id`))
It gets the adaptor operations for Animal, then Leopard, then
Cat... and blows up at leopard because there's no cat yet (I
think). I had to google for "What are deferred constraints" so I
could be very wrong, but I think it's blowing up because of lack
of deferred constraints (^_^) It looks like I'll need to have an
EODatabaseContext delegate override
databaseContextWillOrderAdaptorOperations to fix it, unless there
is something in the ERXSQLHelper that can get there first.
This just happens to be a timely thread since I was messing with
my MySQLPlugin last night (^_^)
Ramsey
On Dec 4, 2009, at 7:17 AM, Kieran Kelleher wrote:
Fair enough. Finally, we have one specific strike against it. ;-)
Since we have Delete rules in the EOModel, is this feature a
"safety net" that is needed for external non-WO apps that are
accessing the database? I have never implemented constraints and
have yet to have an orphan record since transactions/rollback
protect against that, right?
-Kieran
On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:
On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:
On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:
I was just wondering why people were saying disaster, toy,
etc .... wondering if I am missing something and going to
lose all my data next week!
Like I said, I have not used FrontBase or PostgreSQL in
production and have never touched PostgreSQL, so if it is
comparison you are after, I don't have one. However I will
say that I started using MySQL at 4.0, then 4.1 and now 5.0.
Being the stickler for learning as much as I think I need to
do something right, I bought the original Jeremy Zawodny book
"Advanced MySQL" and that gave me a clear understanding and
confidence of how to set the thing up. I have never used the
cluster engine (NDB).... yet. I have always used InnoDB. I
used MyISAM once for a readonly database (about 5 tables
only) that has geocode lookups on tables of about 100 million
rows because at the time it appeared faster (with mysql 4.0
at the time) to do points in radius operations which
sometimes selected up to 500,000 rows in a select. My main
ongoing project is InnoDB and every user is a user that does
edits, with a small percentage of users absolutely hammering
the database with production processing during business hours
each day. I replicate to 3 slaves on that project purely for
backup. It runs 24/7 and almost never have any "Scheduled
Maintenance" downtime garbage because of the fact that the
replication slaves are where the backups happen. One slave is
remote and 2 onsite with the master. The binary logs on the
master are written to a separate phyaical drive
Why do I like it?
- It is free
- It has never left me down - no data/table corruption
- It is simple to set up and configure
- replication is a breeze to set up
- It has multiple engine types for different scenarios
- and finally the reason that most people like what they use:
"I am comfortable with it" ;-)
What would I like that I think I might be missing?
- transactional structure changes (ie., create table and roll
back.) transactions in InnoDB only apply to table/record
edits themselves.
+ Deferred constraints!
That is a pretty big strike against MySQL in my books.
Chuck
--
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
_______________________________________________
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
--
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