Designing your Caching Infrastructure

Because Omniverse Caches can be chained, clever placement of caches in key points of your infrastructure can allow for optimal performance for your clients.

This idea is based on one simple concept - most data in Nucleus is large, and does not change - things like textures, large meshes, etc are much less likely to change than small files containing modifications users are making to them. Therefore, Caches can speed up loading of that data for Clients.

Before we proceed with Infrastructure, one obvious thing to do would be to ensure every Workstation conneciting to any Nucleus has Cache installed, and enabled. Then, adding caches strategically and daisy chaining caches on Workstations to those upstream caches will increase performance.

Obviously, it’s impossible to cover all situations here. Think of Omniverse Cache as an HTTP Proxy type cache (after all, that’s precisely what it is), and design your setup according to your needs.

A couple examples below provide a few starting point type ideas to go off of.

Bandwidth Scaling

../../../_images/tmp_cache_chain_tree.png

Here, as you can see, we are making a “tree” of caching. Assume network being the bottleneck here, and 1 gig interfaces on all machines. This “tree” type setup, once caches are “saturated” with data requested, will provide three times the bandwidth available if Nucleus was just by iteself.

Optimizing for Network Topology

../../../_images/tmp_cache_chain_wan.png

When dealing with complex network topologies, careful placement of caches will “localize” data as close to users as possible.