In order to allow flushing a page to the disk with a weaker mode (read lock) than exclusive lock (write) a page needs either:
- atomic dirty flag
- atomic page modification version
- RWLatch to support rising latch level (rising read lock to write lock)
It also can be done with a separate structure of flushing reservations.