Logotipo IST
Bandeira Portuguesa Bandeira Inglesa    



Fase inicial


A fase inicial corresponde ao período entre o pedido, por parte do utilizador, para iniciar um vídeo e o inicio da reprodução desse vídeo.

Esta fase têm de ser o mais rápida possível, e se um dos servidores tiver um tempo de download elevado poderá atrasar o início do video. Podemos ver um exemplo na figura 1 em que é feito o download do primeiro chunks de video de um servidor lento (a vermelho), enquanto que os outros 2 servidores (azul e verde) são significativamente mais rápidos.

Http

Figura 1: Downloads sem probe test

Como podemos reparar, o atraso do servidor a vermelho faz com que o vídeo só começe depois de já ter sido realizado o download de 5 chunks de vídeo, o que faz com que se atrase significativamente o inicio do vídeo.

Para resolver este problema, no iníco de cada pedido de vídeo é feito um probe test a cada servidor disponível, com tempos de timeout aceitaveis. Com base nesta informação, recorre-se agora a uma lista dos servidores escolhidos ordenada com base no menor tempo de download, para realizar o download da fase inicial no servidor mais rápido.

Na figura 2 podemos ver um exemplo, que se econtra à escala da figura 1, em que agora antes do início do download é realizado o tal probe test a cada servidor. Neste exemplo, tal como no anterior, o servidor a azul é o mais rápido logo a fase inicial irá ser pedida inteiramente a esse servidor, o que faz com que o tempo de inicialização do vídeo diminua significativamente em relação ao do exemplo anterior

Http2

Figura 2: Downloads com probe test




Mediação de Resultados


De forma a avaliar a performance do sistema, regista-se em cada download o tempo de conclusão do mesmo. Ao longo do stream, vão sendo disponibilizadas medições dos valores acumulados até ao momento para cada servidor/localização. Estes valores são os seguintes:

A PRX foi implementada de forma a iterar entre cada segmento disponibilizado no ficheiro de inicialização. Assim, apresenta-se no final de cada segmento as medições acumuladas até ao momento, desde o inicio do stream do ficheiro de vídeo.

arqGeral

Figura 3: Recolha de resultados

De forma a evitar guardar todos os valores medidos e realizar a média dos mesmo em cada medição, implementou-se um método iterativo da média aritmética em que a cada iteração é aplicada uma regra de actualização apresentada em seguida:

arqGeral

Como é possível observar, o próximo valor a manter para a média do tempo de download depende da amostra recolhida nessa iteração e do índice da iteração. Este método traz uma grande vantagem e eficiência já que não é necessário consumir memória o que tem muita importância pois a aplicação será utilizada em dispositivos móveis.