facebook / CacheLib

Pluggable in-process caching engine to build and scale high performance services

Home Page:https://www.cachelib.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CacheLib's current support of multi-SSD

wangyuyue opened this issue · comments

commented

Hi, thanks for opening source this great work.
Just wonder if the current CacheLib supports utilizing multiple SSD devices under a single node as the flash cache and whether it further supports running on top of multiple nodes as a distributed system. Thanks.

@wangyuyue: You can use setRaidFiles to configure multiple files/devices to be used as a single cache. And please note the file size must be identical (also see our user doc https://cachelib.org/docs/Cache_Library_User_Guides/Configure_HybridCache#1-common-settings---device).

whether it further supports running on top of multiple nodes as a distributed system

Could you elaborate this part?

commented

Thanks for the response. I further want to know what RAID level CacheLib supports, and can it support data sharding of multiple SSD devices at the granularity of objects rather than fixed-size blocks?

whether it further supports running on top of multiple nodes as a distributed system

Here I want to know if I can deploy CacheLib on multiple hosts, to each 1 or more SSD attaches, and if there is some kind of communication mechanism allowing a host to get cached data from another host.
Sorry for my words being confusing. You are free to edit my issue if you find a more descriptive way.

what RAID level CacheLib supports

We only supports RAID0 device https://github.com/facebook/CacheLib/blob/main/cachelib/navy/common/Device.cpp#L82

if I can deploy CacheLib on multiple hosts, to each 1 or more SSD attaches

Yes, you can. Think of CacheLib as a library just like any other C++ libraries hence it can run on any host with "#include".

if there is some kind of communication mechanism allowing a host to get cached data from another host

CacheLib does not have such x-host communication mechanism as it's the caching engine for single-host, i.e. each cachelib instance manages its own cache and doesn't know about the outside world.