ScaleEngine Blog

Fast Video Cache Priming with SE Prime

March 17, 2022

Milliseconds count in video delivery. Reducing startup time for video playback keeps viewers watching. SE Prime is our new Scale Engine cache priming system. We have rolled out this new feature to speed up live streaming delivery for all clients.

The process works to improve viewer experience, especially for low traffic and "first viewer" scenarios, where the first viewer is often "thrown under the bus" and has to wait for video to reach an edge delivery server.

What we have done is overcome a limitation in the HLS specification, where the server and client wait for responses and requests before an actual video chunk is sent to the client to begin playback. So a client player requested a playlist, the server sent the list of available streams, the client requested the stream chunklist, the server sent the chunklist, and then the client requests the first chunk (ts file). Only then does the server fetch the chunk from the origin (to which you are sending your stream), and delivers it to the client.

SE Prime accelerates the middle part of the negotiation. Once any player requests a chunklist, the edge video server kicks off a request to the origin for the first ts file in the list, without waiting for the client to receive the chunklist, or its subsequent request for the chunk. By the time the player makes the request for the chunk, it is already "hot" in the cache of the edge video server, as the time between the client receiving the chunklist and requesting the first chunk has been usefully occupied by the edge server which has already primed its cache. The request is fulfilled faster.

How much faster? Essentially, the wait time is reduced to the network round trip to the edge system. Before, the wait time was that round trip PLUS waiting for the edge to get the chunk from the origin. For every viewer, streams will now start faster.