Subject | RE: [Firebird-Architect] Efficient Lock Algorithm for Shared Objects in SMP Environments |
---|---|
Author | Leyne, Sean |
Post date | 2009-08-13T21:09:15Z |
The follow link presents efficient Lock Algorithm for Shared Objects in SMP Environments, interesting stuff for Firebird 3.0 perhaps ?
http://sciencelinks.jp/j-east/article/200701/000020070106A1030952.php
<SL> Here is the URL for the actual paper http://www.jstage.jst.go.jp/article/ipsjdc/2/0/759/_pdf
<SL> While not being a low level programmer, I think that the usefulness of the algorithm may be limited due to issues noted in section 6.2 of the paper:
"...Our algorithm does not rely on memory ordering between lock and non-locking operations, though it does rely on the memory ordering within the lock operation.
Existing memory ordering models, such as acquire and release, do not support memory ordering that the algorithm requests, or the ordering of a specific store or specific load...
Therefore, compilers should schedule these instructions to avoid such penalties ... to evade unnecessary stall cycles..."
<SL> This suggests that the implementation of the algorithm within Firebird would require changes to compilers, which are outside of the Firebird's control.
http://sciencelinks.jp/j-east/article/200701/000020070106A1030952.php
<SL> Here is the URL for the actual paper http://www.jstage.jst.go.jp/article/ipsjdc/2/0/759/_pdf
<SL> While not being a low level programmer, I think that the usefulness of the algorithm may be limited due to issues noted in section 6.2 of the paper:
"...Our algorithm does not rely on memory ordering between lock and non-locking operations, though it does rely on the memory ordering within the lock operation.
Existing memory ordering models, such as acquire and release, do not support memory ordering that the algorithm requests, or the ordering of a specific store or specific load...
Therefore, compilers should schedule these instructions to avoid such penalties ... to evade unnecessary stall cycles..."
<SL> This suggests that the implementation of the algorithm within Firebird would require changes to compilers, which are outside of the Firebird's control.