Use Atomic(Integer|Long) for (Z)Xid
-----------------------------------
Key: ZOOKEEPER-955
URL: https://issues.apache.org/jira/browse/ZOOKEEPER-955
Project: ZooKeeper
Issue Type: Improvement
Components: java client, server
Reporter: Thomas Koch
Assignee: Thomas Koch
Priority: Trivial
As I've read last weekend in the fantastic book "Clean Code", it'd be much
faster to use AtomicInteger or AtomicLong instead of synchronization blocks
around each access to an int or long.
The key difference is, that a synchronization block will in any case acquire
and release a lock. The atomic classes use "optimistic locking", a CPU
operation that only changes a value if it still has not changed since the last
read.
In most cases the value has not changed since the last visit so the operation
is just as fast as a normal operation. If it had changed, then we read again
and try to change again.
[1] Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.