|Ariel Weisberg||Feb 13, 2013 12:41 pm|
|Vitaly Davidovich||Feb 13, 2013 12:51 pm|
|Ariel Weisberg||Feb 13, 2013 1:45 pm|
|Vitaly Davidovich||Feb 13, 2013 2:15 pm|
|Aaron Grunthal||Feb 13, 2013 7:37 pm|
|Chris Dennis||Feb 14, 2013 8:15 am|
|Ariel Weisberg||Feb 14, 2013 8:56 am|
|Vitaly Davidovich||Feb 14, 2013 9:31 am|
|Nathan Reynolds||Feb 14, 2013 9:41 am|
|Subject:||Re: [concurrency-interest] Using Atomic*FieldUpdater to remove indirection|
|From:||Ariel Weisberg (ari...@weisberg.ws)|
|Date:||Feb 13, 2013 1:45:42 pm|
I have two use cases in mind.
I have some COW* data structures that use AtomicReference internally for example COWNavigableSet. Using AtomicReference means there is an extra indirection for every lookup.
The other use case is a field that tracks the last time a message was received from a host. There is a single thread that updates the field every time a message is delivered and multiple threads read the field every time they send a message to that host.
In the last message time tracking use case there will always be a coherence operation for the cache line containing the value tracking the last message time. I suppose it doesn't really matter if the other fields in that class are on the same line because the number of coherence operations remains the same. If there were a get equivalent of lazySet that would be nice.
On Wed, Feb 13, 2013, at 03:51 PM, Vitaly Davidovich wrote:
Can you elaborate a bit? Do you mean using AtomicInteger (as an example) instead of an int field inside a class? If so, I'd personally pad out the class with filler fields to avoid false sharing - there's no guarantee that the indirection via AtomicXXX will put memory far apart; padding gives you a bit more control here.
Sent from my phone
On Feb 13, 2013 3:44 PM, "Ariel Weisberg" <ari...@weisberg.ws> wrote:
Hi, Does it make sense to use Atomic*FieldUpdater to remove the indirection overhead of an AtomicLong and AtomicReference? Similarly, does it make sense to use Atomic* to create indirection in order to avoid false sharing? Thanks, Ariel _______________________________________________ Concurrency-interest mailing list Conc...@cs.oswego.edu http://cs.oswego.edu/mailman/listinfo/concurrency-interest
https://github.com/VoltDB/voltdb/blob/cdc1eb42d6d8708cb5371af5cb1fd747372d8be0/src/frontend/org/voltcore/messaging/ForeignHost.java#L213 4. mailto:ari...@weisberg.ws 5. mailto:Conc...@cs.oswego.edu 6. http://cs.oswego.edu/mailman/listinfo/concurrency-interest
_______________________________________________ Concurrency-interest mailing list Conc...@cs.oswego.edu http://cs.oswego.edu/mailman/listinfo/concurrency-interest