PrimoCache is a supplementary software caching scheme that cooperates with physical memory, solid-state drives (SSDs) and flash drives to provide data caching for local physical disks. It transparently stores disk data into fast cache devices such as physical memory, so that future read requests for those data will be served directly from the cache and be faster. Thus access time will be reduced, showing a great improvement in overall system performance.
What Can You Do With It?
- If you have 4GB or more memory, you can use a portion of the memory as cache to accelerate local disks, including mechanical disks, SSDs and flash drives, and iSCSI disks.
- If you have memory not seen by Windows, usually in 32-bit Windows, you can use this hidden memory as cache to accelerate local disks and iSCSI disks.
- If you have a SSD and a mechanical disk on your system, you are able to partition a portion or all of this SSD as cache to accelerate the mechanical disk.
- If you have a spare USB 3.0 flash drive, you can use it as cache to accelerate your mechanical disks.
PrimoCache In Detail
PrimoCache implements a two-level caching architecture consisting of level-1 cache and level-2 cache. Level-1 cache, also called primary cache, is composed of physical memory. Level-2 cache is a secondary cache which typically resides on a solid-state drive, a flash drive or other fast persistent storage device. Obviously level-1 cache runs much faster than level-2 cache, although it is usually much smaller. PrimoCache allows a single level cache configuration using either level-1 cache or level-2 cache, as well as a two-level cache configuration using both levels of cache.
Unlike level-1 cache which cannot keep cache contents on reboot, level-2 cache is able to retain its cache contents across computer reboots because of the persistent nature of storage devices. This avoids fetching often-accessed data again from slow disks each time computer boots up. Thus level-2 cache will remarkably reduce boot-up time and speed up applications for those computers which install mechanical hard disks.
PrimoCache also supports write-deferred caching mode, which executes write requests on the cache first and synchronizes data from the cache to the disk after custom delays. Therefore write requests can be responded and completed very fast, greatly improving the disk write performance.
In addition, PrimoCache implements the Unified Invisible Memory Management Interface (UIMMI), which can use Invisible Memory as level-1 cache. Invisible Memory, also known as Unmanaged Memory, usually exists on 32-bit desktop Windows where 4GB or more physical memory is installed. This feature helps to overcome the Windows limits on amount of system memory and fully utilize all installed physical memory.
PrimoCache fulfills an intelligent cache replacement algorithm which optimally determines cache blocks needed to be discarded to make room for new data when cache space is full. This cache algorithm combines two normal algorithms which are Least Frequently Used (LFU) and Least Recently Used (LRU), and provides a better cache hit ratio. It is self-tuning and requires no user-specified parameters.
PrimoCache allows multiple cache strategies and flexible configurations. It is implemented in Windows kernel level and is transparent to other applications. Therefore no application or system changes are required for this caching solution. With PrimoCache, you can easily setup caches for local disks and speed up your computers.
One of the PrimoCache's core components is a storage class filter driver which resides in the storage stack, intercepting I/O requests for data on disk. If requested data is contained in the cache, this request can be served by simply reading the cache, which is comparably faster. Otherwise the data has to be fetched from disk. Hence, the more requests can be served from the cache the better the overall system performance is.
- Supports physical memory, solid-state drives and flash drives as cache storage.
- Implements a two-level caching architecture.
- Supports persistent level-2 caching.
- Supports Write-Through and Write-Deferred caching modes.
- Supports TRIM command.
- Supports OS Invisible Memory.
- Supports pre-fetching data into cache.
- Implements an intelligent and self-tuning cache replacement algorithm.
- Supports caching strategies: Read/Write Caching, Read-Only Caching and Write-Only Caching.
- Supports performance statistics and monitor.
- Supports caching for multiple volumes
- Supports caching for volumes with proprietary file system.
- Supports caching for volumes on basic and dynamic disks.
- Supports plug and play.
- Supports command-line interface.
Why do we need PrimoCache since Windows has already implemented a file-system level cache?
- PrimoCache is a block-level cache program which caches data on a logical block basis (offsets within a disk), while windows cache is a file-system level program which caches on a virtual block basis (offsets within a file). Each has strengths and weaknesses, and PrimoCache can be a good supplement to Windows cache.
- Some applications can bypass Windows cache but cannot bypass PrimoCache because PrimoCache runs at a lower level in Windows.
- Windows caches all data, while PrimoCache can cache on behalf of a specified volume in which users are interested. Given same size of system memory, the latter has a higher hit-rate.
- PrimoCache supports persistent SSD caching for mechanical hard disks, improving system boot-up time and applications loading time. Windows cache cannot.
- PrimoCache can customize write-deferred mode, while Windows cache cannot.
- PrimoCache can make use of Invisible Memory on 32-bit Windows as cache, overcoming the Windows limits on amount of system memory.
Supported Operating Systems
PrimoCache Desktop Edition:
All versions of Windows XP/Vista/7/8/8.1/10, including x86 and x64 editions.
PrimoCache Server Edition:
All versions of Windows Server 2003(R2)/2008(R2)/2012(R2), including x86 and x64 editions.