Named “RapidCache”, this inline network-attached storage (NAS) appliance accelerates NFS performance by intelligently finding and placing the active dataset of hosts into DRAM and SSD to drastically improve performance.
For readers unfamiliar with the architecture of the RapidCache appliance, read this article from November 2012.
Several new details have emerged from these new patent filings.
First, the RapidCache appliance can be transparently “spliced” into a network; interestingly, it doesn’t splice all of the connection parameters in Layer 2, 3, and 4 – only the connection state and source/destination sequence numbers in Layer 4. This enables clients to perceive as if they are communicating with a NAS system when, in fact, they are being served via cache.
The patents further details the seamless nature of inserting the RapidCache appliance onto a network by noting that there is no need for clients to be unmounted (from NFS exports). It further states that no configuration changes are required for either storage systems or clients.
As previously known, the RapidCache operating system (named: “IQ OS”) is a heavily customized FreeBSD kernel. Not surprisingly, several FreeBSD components are mentioned throughout the patent filling, including:
- GEOM framework (so the storage tier can access SSDs)
- CAM subsystem (for different SCSI devices to use the same interface)
- FreeBSD HBA drivers (manages HBA controller, I/O submission)
Let’s now review other features built into the appliance.
Several details about cache policies have also materialized. One rather useful feature of the RapidCache software involves activating and/or disabling cache policies based upon a time schedule. Read the patent application entitled: “DYNAMIC DETECTION AND SELECTION OF FILE SERVERS IN A CACHING APPLICATION OR SYSTEM” for more information on this feature.
Another unique aspect of this product is Multi-Path Support (MPS). This validation mechanism is important as data often changes due to volume attributes being updated, older files being restored, or even if a client directly updates files on the storage system:
“When a client reads a file, MPS evaluates its cache lease time to determine whether it needs to check file server attributes. If not expired, the read will be served immediately from cache. If expired, MPS checks the backend file server to confirm no changes have occurred. If changes are found, MPS will pull the data from the file server, send it to the client, reset its lease, and update the cache. With regular activity, file leases should rarely expire since they are updated on most NFS operations. Expiration only occurs on idle files. MPS timeout can be configured from, for example, a minimum (e.g., 3 seconds) to a maximum (e.g., 24 hours).”
The patent fillings also reveal that the Cache IQ software leverages a Ranked Priority Multi-Queue (RPMQ) replacement algorithm that: “balances access frequency with customer-defined priority values”. This is implemented via two sets of queues: global queues (ordered by access frequency) and per-priority shadow queues (to choose which block to evict first).
Another interesting topic is described as a “greedy threshold”. The patent entitled: “SYSTEM AND METHOD FOR OPERATING A SYSTEM TO CACHE A NETWORKED FILE SYSTEM” best describes this feature:
“...the RPMQ caching algorithm can determine the appropriate rank for the cacheable entity. Each rank may contain a total capacity as well as a “greedy threshold.” The greedy threshold determines the amount of space within the rank that can be filled by cacheable entities that have not earned their position in the rank due to frequency of access. The purpose of the greedy threshold is to allow higher ranks with available space to partially fill even if there are not enough cacheable entities to fill the rank based off their natural queue position.”
But what happens when there is a RapidCache failure?
Without any reconfiguration, the RapidCache appliance automatically becomes a pass-through between the client and NAS system during failure scenarios. It is also possible for an administrator to place a data server node into manual by-pass mode; this is useful for “data server” maintenance without downtime.
The patent also reveals that the solid-state drives within the RapidCache appliance are “treated as an independent virtual tier, without RAID”. It goes on to state that:
“In the event of a failed SSD, the overall cache size will shrink only by the missing SSD. The previously cached data will be retrieved from the file server (as requested) and stored on available media per policy.”
Several failure scenarios explored in the patent application entitled: “SYSTEM AND METHOD FOR MANAGING A SYSTEM OF APPLIANCES THAT ARE ATTACHED TO A NETWORKED FILE SYSTEM”. These scenarios include sequence of events when the interconnect bus is unplugged, flow director failure, and how cache coherency is maintained are among the primary topics.
NetApp filled these patent applications on September 18, 2013; they were subsequently published on March 20, 2014. Visit the USPTO website to read the patents in their entirety.