I don’t believe there is a way to cache recently read records which were not updated. If there is, I will be interested in knowing too. rbotzer?
Any blocks that are still present in post-write-queue are not eligible for defragmentation on the SSD. So making p-w-q very large will adversely affect defragmentation. p-w-q was intended to facilitate XDR - so that most recently updated records which should be replicated to the remote cluster by XDR are available in cache.
The Primary Index keeps track using some kind of clever scheme as to where the record is - write-block/write-cache/SSD/post-write-queue using the same id.