[Erp5-report] r13742 - in /erp5/trunk/products/CMFActivity: Activity/ skins/activity/
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Mar 28 11:33:36 CEST 2007
Author: vincent
Date: Wed Mar 28 11:33:33 2007
New Revision: 13742
URL: http://svn.erp5.org?rev=13742&view=rev
Log:
Use portal_ids to generate message uids instead of using MySQL AUTO_INCREMENT. This will lower deadlock probability by removing the one caused by AUTO_INCREMENT table-level lock.
Modified:
erp5/trunk/products/CMFActivity/Activity/SQLDict.py
erp5/trunk/products/CMFActivity/skins/activity/SQLDict_createMessageTable.zsql
erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessage.zsql
erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessageList.zsql
Modified: erp5/trunk/products/CMFActivity/Activity/SQLDict.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLDict.py?rev=13742&r1=13741&r2=13742&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLDict.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLDict.py Wed Mar 28 11:33:33 2007
@@ -93,7 +93,9 @@
group_method_id_list = [message.activity_kw.get('group_method_id', '') for message in registered_message_list]
tag_list = [message.activity_kw.get('tag', '') for message in registered_message_list]
order_validation_text_list = [self.getOrderValidationText(message) for message in registered_message_list]
- activity_tool.SQLDict_writeMessageList( path_list = path_list,
+ uid_list = activity_tool.getPortalObject().portal_ids.generateNewLengthIdList(id_group='portal_activity', id_count=len(registered_message_list))
+ activity_tool.SQLDict_writeMessageList( uid_list = uid_list,
+ path_list = path_list,
method_id_list = method_id_list,
priority_list = priority_list,
broadcast_list = broadcast_list,
@@ -517,8 +519,10 @@
uid = line.uid
activity_tool.SQLDict_assignMessage(processing_node=1, uid=[uid])
if node_count > 1:
+ uid_list = activity_tool.getPortalObject().id_tool.generateNewLengthIdList(id_group='portal_activity', id_count=node_count - 1)
for node in range(2, node_count+1):
- activity_tool.SQLDict_writeMessage( path = path,
+ activity_tool.SQLDict_writeMessage( uid = uid_list.pop(),
+ path = path,
method_id = line.method_id,
priority = line.priority,
broadcast = 1,
Modified: erp5/trunk/products/CMFActivity/skins/activity/SQLDict_createMessageTable.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLDict_createMessageTable.zsql?rev=13742&r1=13741&r2=13742&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLDict_createMessageTable.zsql (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLDict_createMessageTable.zsql Wed Mar 28 11:33:33 2007
@@ -9,7 +9,7 @@
</dtml-comment>
<params></params>
CREATE TABLE `message` (
- `uid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
+ `uid` INT UNSIGNED NOT NULL,
`date` DATETIME NOT NULL,
`path` VARCHAR(255) NOT NULL,
`method_id` VARCHAR(255) NOT NULL,
Modified: erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessage.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessage.zsql?rev=13742&r1=13741&r2=13742&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessage.zsql (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessage.zsql Wed Mar 28 11:33:33 2007
@@ -7,7 +7,8 @@
class_name:
class_file:
</dtml-comment>
-<params>path
+<params>uid
+path
method_id
message
priority
@@ -19,6 +20,7 @@
order_validation_text</params>
INSERT INTO message
SET
+ uid = <dtml-sqlvar uid type="int">,
path = <dtml-sqlvar path type="string">,
<dtml-if date>date = <dtml-sqlvar date type="string">, <dtml-else>date = <dtml-sqlvar "_.DateTime()" type="datetime">, </dtml-if>
method_id = <dtml-sqlvar method_id type="string">,
Modified: erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessageList.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessageList.zsql?rev=13742&r1=13741&r2=13742&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessageList.zsql (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessageList.zsql Wed Mar 28 11:33:33 2007
@@ -7,7 +7,8 @@
class_name:
class_file:
</dtml-comment>
-<params>path_list
+<params>uid_list
+path_list
method_id_list
message_list
priority_list
@@ -18,11 +19,12 @@
tag_list
order_validation_text_list</params>
INSERT INTO message
-(path, date, method_id, processing_node, processing, priority, broadcast, group_method_id, tag, order_validation_text, message)
+(uid, path, date, method_id, processing_node, processing, priority, broadcast, group_method_id, tag, order_validation_text, message)
VALUES
<dtml-in prefix="loop" expr="_.range(_.len(path_list))">
<dtml-if sequence-start><dtml-else>,</dtml-if>
(
+ <dtml-sqlvar expr="uid_list[loop_item]" type="int">,
<dtml-sqlvar expr="path_list[loop_item]" type="string">,
<dtml-if date_list><dtml-sqlvar expr="date_list[loop_item]" type="datetime"><dtml-else><dtml-sqlvar "_.DateTime()" type="datetime"></dtml-if>,
<dtml-sqlvar expr="method_id_list[loop_item]" type="string">,
More information about the Erp5-report
mailing list