CacheLib
CacheLib copied to clipboard
Support for hybrid cache on older kernels (RHel 8)
Hello. I am trying to use the hybrid cache functionality, but I am getting an error from the get go:
I1008 11:37:35.145313 1527232 Device.cpp:1085] Cache file: /scr/filename_cache size: 1073741824 truncate: 0
I1008 11:37:35.145439 1527232 Device.cpp:970] Created device with num_devices 1 size 1073741824 block_size 4096,stripe_size 0 max_write_size 0 max_io_size 0 io_engine sync qdepth 0,num_fdp_devices 0
I1008 11:37:35.155860 1527232 NavySetup.cpp:243] metadataSize: 5365760
I1008 11:37:35.155885 1527232 NavySetup.cpp:245] Setting up engine pair 0
I1008 11:37:35.155889 1527232 NavySetup.cpp:265] -- No bighash. blockCacheSize 1068376064
I1008 11:37:35.155892 1527232 NavySetup.cpp:156] blockcache: starting offset: 5365760, block cache size: 1056964608
I1008 11:37:35.155922 1527232 LruPolicy.cpp:35] LRU policy: expected 63 regions
I1008 11:37:35.157350 1527232 RegionManager.cpp:50] 63 regions, 16777216 bytes each
[warn] epoll_wait: Function not implemented
WARNING: Logging before InitGoogleLogging() is written to STDERR
E20241008 11:37:35.157609 22557569062464 EventBase.cpp:701] EventBase: -- error in event loop, res = -1
terminate called after throwing an instance of 'std::system_error'
what(): error in EventBase::loopForever(): Function not implemented
Aborted (core dumped)
This error only occur when I enable the navy functionality. I have tried to disable the IOUring backend with navyConfig.enableAsyncIo equal to 0 and false.
Using the same executable on a Fedora 40 laptop this error disappears and I get another one, maybe related to the quantity of resources of the laptop
I1008 15:38:03.787308 3625629 Device.cpp:1085] Cache file: /scr/filename_cache size: 1073741824 truncate: 0
I1008 15:38:03.788136 3625629 Device.cpp:970] Created device with num_devices 1 size 1073741824 block_size 4096,stripe_size 0 max_write_size 0 max_io_size 0 io_engine sync qdepth 0,num_fdp_devices 0
I1008 15:38:03.812326 3625629 NavySetup.cpp:243] metadataSize: 5365760
I1008 15:38:03.812340 3625629 NavySetup.cpp:245] Setting up engine pair 0
I1008 15:38:03.812344 3625629 NavySetup.cpp:265] -- No bighash. blockCacheSize 1068376064
I1008 15:38:03.812346 3625629 NavySetup.cpp:156] blockcache: starting offset: 5365760, block cache size: 1056964608
I1008 15:38:03.812605 3625629 LruPolicy.cpp:35] LRU policy: expected 63 regions
I1008 15:38:03.814596 3625629 RegionManager.cpp:50] 63 regions, 16777216 bytes each
I1008 15:38:03.815473 3625629 Allocator.cpp:39] Enable priority-based allocation for Allocator. Number of priorities: 1
I1008 15:38:03.815486 3625629 BlockCache.cpp:145] Block cache created
I1008 15:38:03.815501 3625629 EnginePair.cpp:324] Small item cache is noop.
I1008 15:38:03.815531 3625629 Driver.cpp:70] Max concurrent inserts: 1000000
I1008 15:38:03.815534 3625629 Driver.cpp:71] Max parcel memory: 268435456
I1008 15:38:03.815537 3625629 Driver.cpp:72] Use Write Estimated Size: false
I1008 15:38:03.815542 3625629 Driver.cpp:209] Reset Navy
I1008 15:38:03.815693 3625694 RegionManager.cpp:68] region_manager_0 started
I1008 15:38:03.815724 3625629 BlockCache.cpp:707] Reset block cache
terminate called after throwing an instance of 'std::invalid_argument'
what(): Can't use insert API with nvmCache enabled
I am installing the cachelib library using the vcpkg repository (version 2024.06.24.00)
thanks