Sometimes I did that change too. Seems to work but really don't know it is the 
best way. Kieran was suggesting  a dump and restore.

Amedeo

Sent from my iPhone

On 18/mag/2013, at 13:10, Mark Gowdy <[email protected]> wrote:

> Using SequalPro, it lets me change the table type (in the Table Info tab).
> This issues the statement:
> ALTER TABLE `EO_PK_TABLE` ENGINE = InnoDB;
> 
> Is there any likely downside to this, compared with recreating the schema 
> from scratch?
> 
> Mark
> 
> 
> 
> On 17 May 2013, at 23:26, Kieran Kelleher wrote:
> 
>> InnoDB is all or nothing ..... don't waste your time mixing InnoDB and 
>> MyISAM in transactions - makes the results even more confusing.
>> 
>> Convert them all..... evidently, InnoDB is faster nowadays anyway. innoDB 
>> can cache everything in memory. MyISAM IIRC only can cache PKs in memory and 
>> must always get rows from disk. There is no benefit to staying on MyISAM 
>> format.
>> 
>> 
>> On May 17, 2013, at 4:36 PM, Mark Gowdy <[email protected]> wrote:
>> 
>>> Thanks Paul, it looks like you are correct.
>>> 
>>> Two 'Kieran Kelleher' email stated:
>>> 
>>>> There is also no row locking on EO_PK_TABLE with myisam, so you will get 
>>>> primary key clashes and subsequent failed inserts if the db is 
>>>> sufficiently contended.
>>> 
>>> 
>>> and
>>> 
>>>> (1) Never use MyISAM - no transactional support means a failed 
>>>> editingContext.saveChanges() will not result in a rollback and semi-saved 
>>>> changes to the database..... data integrity goes out the window. Use 
>>>> InnoDB .... don't just convert live DB though, dump/import to a standby 
>>>> server, configure InnoDB first completely and actually do a little bit of 
>>>> studying the MySQL docs to understand how. Also, get a head start here: 
>>>> https://github.com/kierankelleher/gic-mysql-tools
>>>> 
>>>> (2) Don't create "real" foreign key constraints because MySQL does not 
>>>> support deferred constraints (which is the biggest negative of using 
>>>> MySQL). Instead just manually create indexes on every foreign key field. 
>>>> Otherwise your performance will deteriorate as tables sizes get larger.
>>> 
>>> Seems like sound advise.
>>> I now have some careful un-picking to do.
>>> 
>>> Also, incase anyone is interested, I eventually found the primary key 
>>> generation code in JDBCPlugIn.class : newPrimaryKeys(int count, EOEntity 
>>> entity, JDBCChannel channel)
>>> Other DB plugins do their own thing, but the MySQL one appears to fall back 
>>> on JDBCPlugIn.
>>> 
>>> Thanks again, 
>>> 
>>> Mark
>>> 
>>> 
>>> On 17 May 2013, at 21:18, Paul Yu wrote:
>>> 
>>>> Well you certainly should not use MyIsam system.  Innodb is the right 
>>>> answer.  See Kieran's post on this subject.
>>>> 
>>>> But I'm not sure that will be the end of your issues.
>>>> 
>>>> Sent from my iPad
>>>> 
>>>> On May 17, 2013, at 4:03 PM, Mark Gowdy <[email protected]> wrote:
>>>> 
>>>>> Hi, 
>>>>> 
>>>>> We have started getting more of these errors recently, now that the 
>>>>> system is under more load.
>>>>> 
>>>>> ----
>>>>> EvaluateExpression failed: 
>>>>> <com.webobjects.jdbcadaptor._MySQLPlugIn$MySQLExpression: "INSERT INTO 
>>>>> queue_item(ITEM_DATE,  ...  etc....)
>>>>> Duplicate entry '4183884' for key 'PRIMARY'
>>>>> ----
>>>>> 
>>>>> I believe the problem is due to the fact that there is more than one 
>>>>> instance trying to write to the 'queue_item' table, and the EO_PK_TABLE 
>>>>> mechanism is handing out the same ID more than once.
>>>>> Probably something to do with locking.
>>>>> 
>>>>> Our Database is MySQL 5, and the EO_PK_TABLE is of type MyISAM.
>>>>> 
>>>>> I tried to find the mechanism that allocate the primary key, but I keep 
>>>>> bumping up against:
>>>>> 
>>>>> EOAdaptorChannel:
>>>>>   @Deprecated
>>>>>   public NSDictionary<String, Object> 
>>>>> primaryKeyForNewRowWithEntity(EOEntity entity){
>>>>>       return null;
>>>>>   }
>>>>> 
>>>>> 
>>>>> Any advise would be appreciated, 
>>>>> 
>>>>> Thanks, 
>>>>> 
>>>>> Mark
>>>>> 
>>>>> _______________________________________________
>>>>> Do not post admin requests to the list. They will be ignored.
>>>>> Webobjects-dev mailing list      ([email protected])
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>> https://lists.apple.com/mailman/options/webobjects-dev/pyu%40mac.com
>>>>> 
>>>>> This email sent to [email protected]
>>> 
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list      ([email protected])
>>> Help/Unsubscribe/Update your Subscription:
>>> https://lists.apple.com/mailman/options/webobjects-dev/kelleherk%40gmail.com
>>> 
>>> This email sent to [email protected]
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      ([email protected])
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/amedeomantica%40me.com
> 
> This email sent to [email protected]
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to