Details
-
Type: New Feature
-
Status: Done/Fixed
-
Priority: Major
-
Resolution: Fixed/Completed
-
Affects Version/s: 4.3.0
-
Fix Version/s: 4.3.0
-
Component/s: Core CiviCRM
-
Labels:None
Description
Note: Initial discussions were held via email with followups on IRC on Monday (16-Jul-12) and Wednesday (18-Jul-12). An extra discussion document was included on Wed ( http://pastebin.com/BieCSzXa ). A blog post explored the issue further. Another IRC conversation (13-Aug-12) settled on optimistic locking.
Some key design decisions:
1. Locks are optimistic
2. Locks apply coarsely to all core contact tables – civicrm_contact, civicrm_address, civicrm_phone, civicrm_email, civicrm_website, civicrm_im, and single-value custom-data
3. The key used to check revisions will be a "modified" timestamp on civicrm_contact
4. Locks are only checked for the "Edit Contact" and "View Contact - Inline Edit" screens. Other screens will not read the "modified" timestamp or display warnings/errors about it; however, other screens will update the "modified" timestamp.
Attachments
1.
|
Implement coarse-grained contact timestamps | Done/Fixed | Donald A. Lobo |
|
|
||||||||
2.
|
Enforce lock-stealing by default | Done/Fixed | Donald A. Lobo |
|
|||||||||
3.
|
Update API to support lock operations | Done/Fixed | Donald A. Lobo |
|
|||||||||
4.
|
Update API to conditionally enforce locks on contact and child entities | Open | Tim Otten |
|
|||||||||
5.
|
Implement jQuery countdown widget | Done/Fixed | Donald A. Lobo |
|
|||||||||
6.
|
Update "Edit Contact" to support locking | Done/Fixed | Brian Shaughnessy |
|
|
||||||||
7.
|
Update "View Contact - Inline Editing" to support locking | Done/Fixed | Tim Otten |
|
|
||||||||
8.
|
Update permissions to include "steal CiviCRM lock" | Done/Fixed | Donald A. Lobo |
|
|||||||||
9.
|
Trigger rebuild leaves stale triggers | Done/Fixed | Tim Otten |
|