Server-side data cache
Any scene data sent to the Iray Bridge server will be persistently stored on the server to avoid sending it several times. The client will only send hashes of the data and the server will request data only for hashes it has not already stored in the cache. This greatly reduces the amount of data that needs to be uploaded if rendering the same scene several times in different sessions, or if, for instance, large textures are shared between multiple scenes.
The cache is either saved to a folder on a disk drive local to the server, or to a cache server. Cache servers can be used in certain Iray Bridge configurations to make cached data available to multiple hosts, not only the host it was saved to. This is very useful in a scenario where users can reserve nodes from a big cluster of machines but might not get the same Iray Bridge head node each time, in which case the cached data from the previous session will be distributed and available to all nodes.
The cache to use is specified by creating an Iray Bridge application and calling IIray_bridge_application::set_disk_cache(const char* location). The location string is either prefixed with "address:" followed by a TCP address of an already running cache server, or "path:" followed by a local folder path.
Currently, all data uploaded to the Iray Bridge server will be stored permanently in the cache, so it will grow indefinitely as more and more data is sent to the server. The disk cache folder together with all the generated files in it can however be removed when not in use to start with a clean cache.