I've read Martin Fowler's book chapter Optimistic Offline Lock
Author describes following example(if I understood it correctly):
There are 2 entites: Order and Client. There are 2 transactions(business) involved:
First transaction calculates order's taxes amount. Taxes amount depends on Order points and client address
Second transaction updates the client address
The problem here that if the client address will be changed while order's taxes amount calculation the result can be inconsistent. Authors offered 2 solutions based on optimistic offline locking. One of them is check order and client versions in the begining of the transaction and check order and client versions in the end of transaction. But here author warns that we have to use REPEATABLE READ isolation level or higher to be able to read versions second time. It is a cause of my question. As I understand if I read any row the second time I will get the same result because while using this isolation level DB locks all rows we've read before.
Please explain me the author idea.