.. _Designing your Caching Infrastructure: Designing your Caching Infrastructure ========================================== Because Nucleus 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 connecting to any Nucleus has Cache :doc:`installed <../installation/workstation>`, and :doc:`enabled <../workstation>`. 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 configuration based to your requirements. Bandwidth Scaling ----------------- .. image:: /content/images/tmp_cache_chain_tree.png :align: center Here, as you can see, we are making a "tree" of caching. Assume network being the bottleneck here, and 1GbE 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 itself. Optimizing for Network Topology ------------------------------- .. image:: /content/images/tmp_cache_chain_wan.png :align: center When dealing with complex network topologies, careful placement of caches will "localize" data as close to users as possible. Additional Information ---------------------- For additional information and installation help, review the :doc:`Cache in Enterprise <../enterprise>` documentation.