In-Portal Issue Tracker - In-Portal CMS
Viewing Issue Advanced Details
52 [In-Portal CMS] Data Management bug report random 2009-06-07 07:42 2009-10-03 07:56
alex  
alex  
normal  
closed  
fixed  
 
none 5.0.0  
0
0000052: Preventing Data loss from Temporarily tables
We could lost data, when 2 concurrently running processes tries to copy data from same temporary table to live table. To prevent this I propose to implement semaphore system. Idea is to put all processes, that required temp->live operation to queue using database lock feature.
Preventing Data loss from Temporarily tables
Implementing logic:
Add new Semaphores table, that will consist of Timestamp, SessionKey and MainPrefix columns. Before temp to live coping starts open second database connection and lock Semaphores table (new table). Then we should search for any record for our prefix. When found we release lock, wait for 1 second and repeat previous steps. In case, when we totally have waited for 30 seconds, then exit from coping process with error.

If at some point we haven't found record with our prefix, then we should add one and release lock. Perform coping from temp to live. Lock Semaphores table and delete our previously added record and release lock.

This way if two (or more) temp handlers will meet, then they will wait for each other and won't start to work concurrently.
related to 0000050closed  (5.0.0)alex Improvements of CheckSimultaneousEdit functionality 
related to 0000051closed  (5.0.0)alex Improvements to Duplicate Submit checks 
Issue History
2009-10-03 07:56 administrator Note Added: 0000648
2009-10-03 07:56 administrator Status resolved => closed
2009-07-19 08:19 alex Fixed in Version => 5.0.0
2009-07-19 08:19 alex Target Version Icebox => 5.0.0
2009-07-19 08:18 alex Note Added: 0000155
2009-07-19 08:18 alex Status active => resolved
2009-07-19 08:18 alex Resolution open => fixed
2009-07-19 08:18 alex Assigned To => alex
2009-07-19 08:18 alex Changeset attached RC r11933
2009-06-07 16:38 Dmitry Target Version => Icebox
2009-06-07 16:38 Dmitry Summary Prevent data loss in temp tables => Preventing Data loss from Temporarily tables
2009-06-07 16:38 Dmitry Steps to Reproduce Updated bug_revision_view_page.php?rev_id=32#r32
2009-06-07 07:43 alex Relationship added related to 0000051
2009-06-07 07:43 alex Relationship added related to 0000050
2009-06-07 07:42 alex New Issue

Notes
(0000155)
alex   
2009-07-19 08:18   
Fix committed to RC branch. Commit Message:

Fixes 0000052: Preventing Data loss from Temporarily tables
(0000648)
administrator   
2009-10-03 07:56   
Closing issues from 5.0.0 version, because version was already released.