Sorry for the delay in responding.
Pages read into the cache is actually
Pages read into the cache from disk, and Pages requested from the cache is actually
Pages requested by the workload from the cache.
Suppose you/workload are trying to read a key/value pair, we will search the btree to find the particular page and that page is considered as
page requested from the cache. If that page is already in the cache then no need to do anything, but if the page is not in cache then we go read it from disk and that becomes
pages read into the cache.
Hence, pages read into the cache are lesser and those are the ones we are reading from the disk and putting into the cache. But pages requested from cache is basically all the read you/workload is doing.
Imagine a two-layer approach:
- One Workload/you requesting a page from cache.
- If the requested page is not in cache then it reads from the disk to satisfy the request (pages read from cache).
That is the reason more pages are requested from the cache (in your simulation example), most of the btree that are being used for IO fits into the cache, But once you have the btree in the cache then all the reads can be done without going to the disk.
The requests always return the page but if that page is already in the cache then it need not be read from the disk to cache.
I hope it answers your question.