October 9, 2013

Nimble Streamer disk cache for VOD re-streaming

One of the major use cases for Nimble Streamer is the re-streaming of HLS and Smooth Streaming. Our customers use it to off-load their origin servers by moving light-weight Nimble edges closer to their audience.

Currently Nimble has a RAM-based cache for live re-streaming and a disk cache for VOD re-streaming.
Let's see how disk cache works for delivery of VOD content.

  1. A viewer requests a playlist, Nimble downloads its and determines whether it's live or VOD.
  2. The playlist is sent back to the viewer.
  3. A viewer requests a new chunk from the previously downloaded playlist.
  4. If there is no pre-downloaded chunk, it's being requested from the origin.
  5. Once downloaded, it's being placed to disk cache.
  6. If the disk cache is full, the chunk is stored into RAM if possible.
  7. The chunk is being stored on disk for 24 hours then removed.
Live caching will be done in similar way, but it will be primarily stored in RAM and then on disk in case of overflow.

The following parameters are added info config file to allow some fine tuning of disk cache:
  • cache_path is a path to the file cache storage, with default value /var/cache/nimble.
  • max_disk_cache_size is a size of file cache measured in MB with 4096 MB by default.
This gives an ability to effectively deliver VOD content to any edges from any type of origin.

Please also learn more about latest VOD cache control features here.

You can also take a look at the video where Jan Ozer of Streaming Learning Center and Yury Udovichenko of Softvelum discuss pros and cons of dynamic packetizing of live, VOD and DVR content. It gives more details about Nimble Streamer VOD streaming.

Related documentation


  1. If Nimble Streamer is our VOD origin, how would we turn off disk cache for VOD streaming? There's no point in caching our VOD content at that point since it's already on that server's hard drives. We'd only want that on our edge servers.

  2. actually OS is very smart and it store mapped files in memory in case it's enough space there. So I'd recommend to keep default ROM storage for VOD even for origin by default. But in case if you want to fill your RAM cache first please set vod_to_ram_cache_first = true in your nimble.conf

  3. Thanks - I wasn't aware of that setting. But I think my point was missed; if we have VOD content on an origin server, why would we bother caching it on disk? It would create unnecessary disk IO. Is there a parameter to turn off VOD caching altogether? I can appreciate the vod_to_ram_cache_first setting, but once it uses up all available RAM it will begin using disk caching again.


If you face any specific issue or want to ask some question to our team,

This will give much faster and precise response.
Thank you.

Note: Only a member of this blog may post a comment.