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 |
|