Hello, my apologies if this is a bit long.

We are considering using ATS as our future video cache.
There are many advantages to ATS but our main concerns are regarding the
cache storage architecture. The video cache use case is very different than
the ATS sweet-spot.

*Writing to cache*
We need to be able to write huge files and be able to receive them in
chunks (ranges) as they are received over separated requests. When writing
a chunk of a file we pre-allocate sequential space for the next chunks.
Small chunks are buffered and written to disk only when enough is
aggregated across separate requests. This also inherently solves the http
ranges problem as space is always reserved for ranges which were not yet
acquired.

*Reading from cache*
When reading an object we use read-ahead into memory to optimize on IOPS as
in most cases the next chunks of the objects will be requested within a few
seconds.

*Evacuation*
Evacuation should be done based on popularity (for example LRU), and works
for the whole object together, not per chunk.
The cyclone-buffer is not ideal for such a use case as the evacuation
policy is different and we can't pay for the the copy of large objects
every time the write cursor pass them.


Since objects are very large and writing out is done in very large chunks,
file system overhead is negligible and therefore an architecture relying on
Linux file system may have benefits, such as the ability to read objects
from FS rather than via HTTP for debug and analysis.
It is also possible to implement something which is based on the existing
cache architecture with the required adaptations.

We are trying to evaluate if implementing such a new cache storage mode is
possible ? is it reasonable ? were there previous thoughts in such
directions ?
I could find in the wiki reference for both large files and ranges
requests, but no conclusions.

In a fast glimpse, It does look like it would not be very hard to replace
the existing *CacheProcessor *and *CacheVConnection *with different ones
which will implement a different cache storage.

Thank you in advance for any feedback.

-- 

*Ori Finkelman*Qwilt | Work: +972-72-2221647 | Mobile: +972-52-3832189 |
o...@qwilt.com

Reply via email to