tl;dr does the osd perform any sort of optimistic fetching of objects (not intra-object data, but rather pre-fetching of objects that have yet to be requested by a client)? Slightly longer question: I've been experimenting with adding PG-level operations, and I'm stuck tracking down a performance discrepancy between reading object data within the context of `ReplicatedPG::do_pg_op` and reading object data through the normal `do_op` path, only after dropping Linux page cache. When I measure the latency of `safe_pread` in `FileStore::read` I see that when running with a hot cache normal object reads from a client (via `do_op`), and object reads dispatched in `do_pg_op` perform similarly, and are fast as one would expect. But running on a cold cache (OSD restart plus drop_caches), I see that a small fraction of reads via `do_op` have a high latency as would be expected having to hit disk, but a very large fraction of object reads through `do_pg_op` are expensive. This seems to suggest that there is some sort of pre-fetching occurring, but I cannot find any sort of pre-fetching mechanism. Is the OSD pre-fetching, or can this be explained by some other mechanism? -Noah -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html