
jupiterfilecache
JupiterFileCache (JFC) is a general purpose, multi location, multi process, thread safe**file read & write cache library.**
This is a C++ library that allows caching files in remote (network) locations onto the local client to speed up future accesses to these files. This reduces network traffic but also, more importantly, disk access on the server. Modern network infrastructures are rarely the problem, but a server's disks often don't cope well when hundreds of clients read large files, often repeatedly, by querying small pieces of data, all at the same time.
It comes with a SWIG interface to be easily accessible through scripting languages (e.g Lua, Python) without the need to use a C++ compiler.
C++ API docs are here.
Use case example
As a example use-case we provide an RSL shadeop implementation, modeled after the automatic network cache in DNA research's 3Delight. It allows caching files like textures, point clouds or other heavy data, on a render farm client, automatically, by simply specifying the cache location with an environment variable, or in the RIB (with an option). In your shaders you can use the cacheFile() shadeop. It should work with any renderer that has an RSL shadeop API but was tested & used in production with Pixar's PhotoRealistic RenderMan.
So, instead of:
texture( foo )
you just do:
texture( cacheFile( foo ) )
And voilĂ , it's cached for you :)
Notes
- you can write-cache files that usually stress a server (because they arrive in bits, over extended periods, many at the same time -- e.g. image buckets/tiles from a 3D render).
Future Development
Contributors are welcome! Here's what we would like to do:
- VEX shadeop for use in Houdini's Mantra or directly, in VOPs
- Ri filter for caching (delayed) RIB archives
JFC is brought to you by http://www.jupiter-jazz.com
Project Information
- License: GNU Lesser GPL
- Content License: Creative Commons 3.0 BY-SA
- 16 stars
- hg-based source control
Labels:
renderman
jupiter
jupiterjazz
shadeop
python
3delight
cache
filecache
generalpurpose
swig
texture
ribarchive