I did some reading on user space drivers and specifically NVME drivers [1,2]. I understand that user space drivers run in "user mode" as opposed to the "kernel mode" to save context switch time. But, this also places several restrictions on the driver, like the unavailability of buffer cache usually present to optimize read/write from storage devices in the kernel. I would like to know more about the following things to understand the cache requirements : [1] Are there any assumptions that I should make about locality of access ? [2] Are multiple threads going to be accessing the cache at the same time (thread safety) ? [3] What are the components in Ceph that are going to directly interact with the cache ? (Reading their code might give me a better idea about what is expected of me) When designing a cache there are several parameters/factors that needs to be addresses - like page replacement policies, page sizes, prefetching, etc. I guess I will be able to make the right design choices if I better understand the cache requirements and access profile. This is my first exposure to ceph. Please excuse me if I am asking basic questions. Please point me to the right resources so that I can better understand the project. I would also be happy to fix a bug to familiarize myself with the source code. Any suggestions on bugs that are relevant to the project will be of great help. Thank you, Rajath Shashidhara [1] http://www.enea.com/Documents/Resources/Whitepapers/Enea-User-Space-Drivers-in-Linux_Whitepaper_2013.pdf [2] http://www.nvmexpress.org/about/nvm-express-overview/ On Wed, Mar 2, 2016 at 5:57 AM, Josh Durgin <jdurgin@xxxxxxxxxx> wrote: > On 03/01/2016 06:01 AM, Haomai Wang wrote: >> >> I think it's a initial idea background, but since we also have >> ObjectCacher in client side, if we can unify this it will be good. But >> obviously ObjectCacher is complexity now, you may not take care of it >> at first... > > > I'd suggest ignoring ObjectCacher, since it's got ordering and buffer > assumptions you probably don't need, plus a single global lock. I'd > expect a read-focused cache to be pretty different. > > Josh -- 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