Hi all,

I compared the two types (MyISAM and INNODB) of mysql table and tried to find some concrete examples to show how INNODB can do better for transaction.
I hope we can talk about this issue on today's tele-conference (11/22).


Please refer to the forwarding mail.

Regards,

DongInn.
--- Begin Message ---
Hi Jeff,

Here is what I compared between MyISAM and INNODB

1)MyISAM
- The table type in the current mysql (3.23-58) of OSCAR on RH9 and Fedora Core2.
- Atomic operation.
- Non-transactional storage engine.
- High performance


2)INNODB
- The table type for transaction.
- Non-atomic operation.
- Transactional storage.
- Transactional tables have significantly higher memory and diskspace requirements, and more CPU overhead.



For the concrete examples,

The delete_node, an oda shortcut, includes a lot of sub oda commands and oda shortcuts.
[EMAIL PROTECTED] root]# oda rea oda_shortcuts.expansion command=/*delete_node*/
delete_records nics nics.node_id=nodes.id nodes.name=%1 ; modify_records node_groups node_groups.name=%1 node_groups.special~0 ; /*delete_node_group*/ %1 ; modify_records oscar oscar.oscar_server_node_id=nodes.id nodes.name=%1 oscar.oscar_server_node_id~0 ; delete_records nodes name=%1
[EMAIL PROTECTED] root]#
[EMAIL PROTECTED] root]# oda rea oda_shortcuts.expansion command=/*delete_node_group*/
modify_records configurations configurations.name=%1 configurations.name=node_groups.name node_groups.special=0 configurations.special~0 ; /*delete_configuration*/
%1 configurations.name=node_groups.name node_groups.special=0 ; delete_records node_groups_included_configurations node_groups_included_configurations.node_group_id=node_groups.id node_groups.name=%1 node_groups.special=0 ; delete_records node_groups_included_node_groups node_groups_included_node_groups.parent_node_group_id=node_groups.id node_groups.name=%1 node_groups.special=0 ; delete_records
node_groups node_groups.name=%1 node_groups.special=0
[EMAIL PROTECTED] root]#
[EMAIL PROTECTED] root]# oda rea oda_shortcuts.expansion command=/*delete_configuration*/
delete_records node_groups_included_configurations node_groups_included_configurations.configuration_id=configurations.id configurations.name=%1 configurations.special=0 %+ ; delete_records package_configurations package_configurations.configuration_id= configurations.id configurations.name=%1 configurations.special=0
%+ ; delete_records configurations configurations.name=%1 configurations.special=0 %+
[EMAIL PROTECTED] root]#


So, this delete_node oda shortcut needs to invoke and run the above all oda commands.
But if we use the INNODB table type, all we have to do is define delete_node and run it.
For instance, delete from nodes where name='oscarnode01'; will update the related tables.
It is very simple and we don't have to worry about missing to update the related tables.
Actually, many developers are involved in the OSCAR project and they may not know all related tables to the table where they are going to delete its records.
The data integrity can be broken unless all developers know all relationship between tables that they use.


I am not sure how much resources the INNODB type needs for OSCAR but if resource problem is not critical, I would like to work on converting the MyISAM type to INNODB type.
But I think the resource problem is also very important since the disable-services packages is doing to save a lot of resource requirements.


Regards,

DongInn.


--- End Message ---


Reply via email to