"There are a host of options and decisions to make when deciding on how available your application will be, each with consequences to your design, architecture and implementations. Make sure you decide on the availability you want to provide and ensure that you can attain it"
"compare-and-swap is implemented equivalent to a volatile read and write operation on updates, but only a read operation (no write) if the compare fails. So it won't flush memory if the compare fails"