What’s Better for Your Workflow?
Anyone familiar with web design, e-commerce, and HTTP in general knows about client-side caching. Web browser caching is the most universal mechanism that all of us use on a daily basis, but here we examine large-file caching for the purpose of high-speed access and processing of rich media on client workstations.
Server-side caching has been around for a long time. A staple in enterprise infrastructure, web hosting and video-on-demand services, it makes sense when the same files are constantly accessed by a large number of consumers. In the rich media content-creation world, server-side caching can provide an improvement with frequent access of data from HDD-based RAID. Reading data from a common flash cache reduces duty cycle on the spinning-disk group and could reduce premature failure. This is one of the primary reasons for deploying server caching in an IT environment. An additional benefit is that once populated, a bank of flash storage may provide faster access to commonly used files, but only if seeks on spinning disk is the reason for the client-side latency.
Reducing duty cycles on spinning disk and potentially improving speed of access is the primary benefits of server-side cache.
Non-volatile, partial file caching on the client workstation is a novel approach to solving similar problems. When designing fast storage networks, it’s best practice to position the flash as close to the application as possible. Thus, in a flash-cache server it’s the first jump in the data flow, with the fastest connection speed. However, if the client workstation has low speed, either due to limitations of network or WAN connectivity, client hardware or bottlenecks in the topology, server-side flash caching is not a performance benefit.
The closest point to the application is on the client workstation itself. With a system that can properly utilize the hardware, adding flash cache on a client workstation is a simple and inexpensive step that could reap benefits across the network. As opposed to server-side flash cache, client-side is infinitely scalable and dedicated to the needs of individual clients. Instead of a common cache that is designed to flush less-used data in favor of more recent requests, a client-side cache is assigned only to one workstation. This avoids surprises when project data is suddenly slow to access due to being flushed from cache.
Bottlenecks in network topology, and connectivity speed issues can plague facilities with performance dropouts that are difficult to troubleshoot. They often coincide with the busiest times of the day, when artists are pushing their workstations hard to meet a deadline or prepare for screening. Server-side caching has little effect on an oversubscribed network, because clients will still request cached data through the network connection. Client-side caching reduces network load substantially, while also reducing the duty cycles on HDD-based groups. With this feature in place, the overall aggregate data consumed across the facility can reach far greater levels than the server or network could support without client-side cache.
Higher speed of cached data access, lower overall network and server load are the primary benefits of client-side caching.
The methods of caching can be important when considering the intended collaborative workflow. When caching data, the goal is to obscure the caching mechanism. The file properties and path should not change to the application, and caching should not produce an “offline” copy. Offline copies create a problem in collaborative workflows because the shared file must be locked to avoid change when the offline copy is in use. Then synchronization must occur once the client is online. True caching must be invisible to the end-user and never result in synchronization.
Client-side caching must also avoid downloads of entire files, as this is inefficient unless the workflow involves catching entire projects. Caching on the fly should write partial file data, that preferably is not saved in a readable format at all. When a user is removed from a project, no cached data should be accessible. The cache data must follow the user-based access control of the server file systems.
Once client-side caching is deployed, the benefits are immediate and have no impact on the normal operation of the applications. Low-speed WAN clients on internet or VPN connections will experience playback speeds that would be impossible without caching. Even high-speed LAN client connections will see better performance from cache on local NVMe and reduced network load that will benefit the entire facility. Facilis is proud to provide this unique feature set with FastCache, available at no charge with Facilis HUB servers.
