SOSS as a file / binary server (disk or memory storage)?

I was turning over the idea of using SOSS as a file / binary server (by using read through caching and an IBackingStore that accesses the files).

The question I have is how does SOSS store BLOBs? If it keeps cached BLOBs in memory, then it wouldn't be a good fit (wouldn't want to keep a 500MB file in memory). Would SOSS know to keep the BLOB on disk, and if so, is there a way of streaming the content?


ScaleOut StateServer is an in-memory data grid, so all objects are held in-memory (stored as binary blobs) for the lifetime of the object to gain the benefits of faster data access times of RAM vs. disk. The backing store adapter (IBackingStore) is intended to read/write data grid contents from/to a persistent store (typically a SQL database) and does not automatically remove the blob contents from the store after a write operation.

While directly reading from/writing to a disk with the backing store adapter is possible, synchronous calls to the backing store adapter will be impacted by the backing store access time (e.g., the read call will not return to application code until the read from the backing store is complete), which may lead to undesirable performance implications with large objects. For that reason, many of our customers who use the backing store adapter opt for the asynchronous methods instead.

There is currently no support for streaming the content during a read operation (regardless of backing store usage). This is by design to ensure full data consistency and coherency. However, I will forward the feature request to the engineering team for consideration in a future release.