Data

14 ago, 2017

Popularidade do conteúdo pelo Open Connect

Publicidade

Existem muitas razões pelas quais a Netflix se importa sobre a popularidade dos seus programas ou filmes. Na equipe de entrega de conteúdo Open Connect, eles são capazes de estimar a popularidade do conteúdo para maximizar a eficiência da sua infraestrutura.

Alguns meses atrás, eles escreveram sobre como utilizam o armazenamento proativo em cache para manter o conteúdo da sua rede global de aplicações Open Connect atualizada. Também apresentaram um resumo recentemente de alguns dos desafios de ciência de dados em que suas equipes de Open Connect e Ciência e Algoritmos colaboram para otimizar sua rede de entrega de conteúdo. Nesse post, eles analisam mais a fundo uma dessas áreas – como e porque projetaram a estimaram a popularidade do conteúdo.

Do ponto de vista da Entrega de Conteúdo, eles veem a popularidade como o número de vezes que uma parte do conteúdo foi assistida. Então calculam isso dividindo o total de bytes transmitido para esse conteúdo pelo seu tamanho em bytes.

 

Como a popularidade do conteúdo é utilizada para otimizar a rede de entrega de conteúdo?

Reduzindo a distância da rede

Como foi descrito nesse post, a rede global de entrega de conteúdo Open Connect consiste em servidores que, ou são servidores físicos localizados nos data centers dos ISPs (Servidores ISP) ou são data centers IXP (servidores IXP). A ideia é distribuir a maior quantidade de conteúdo possível pelo menor caminho de rede possível. Isso maximiza a experiência de streaming de seus membros reduzindo a latência de rede.

 

 

Dada a limitada capacidade de espaço para discos disponível por servidor e o grande tamanho do catalogo completo da Netflix, não é possível armazenar todo o conteúdo em todos os clusters ou servidores compartilhados. Muitos clusters que estão localizados próximos aos usuários (clusters dos ISPs) não tem capacidade de disco suficiente para armazenar o catalogo completo do Netflix. Por isso, eles armazenam em cache somente o conteúdo mais popular nesses clusters.

 

Organizando o conteúdo em servidores em camada

Em locais que entregam uma grande quantidade de conteúdo, é utilizada uma infraestrutura de camadas – servidores com alta taxa de transferência (até 100 Gbps) são utilizados para distribuir o conteúdo mais popular e servidores com alta capacidade de armazenamento (200 TB ou mais) são utilizados para armazenar o conteúdo menos popular. Eles precisam classificar o conteúdo de acordo com a popularidade para poder organizar apropriadamente nas camadas.

 

Influenciando a replicação de conteúdo dentro de um cluster

Dentro de um cluster, eles replicam os títulos por N servidores, onde N é aproximadamente proporcional à popularidade daquele conteúdo.

 

Por que são armazenadas múltiplas copias em seus arquivos?

Um arquivo extremamente popular, se estiver em apenas um servidor, pode sobrecarregar os recursos desse servidor – enquanto outros servidores podem estar sendo subutilizados. Esse efeito não é tão considerável em seu ambiente devido a duas otimizações cruciais:

 

  1. Por que eles possam traçar a rota do seu tráfego baseado na proximidade da rede, a demanda regional até mesmo para o conteúdo mais popular é compartilhada e difundida através da sua rede.
  2. Os arquivos populares são fixados na memória ao invés de serem sempre buscados no disco. Essa última otimização de memória elimina a probabilidade de as entradas e saídas do disco serem a causa de gargalo nos servidores.

 

No entanto, eles ainda mantem múltiplas copias pelas seguintes razões:

 

Maximizar o tráfego e minimizar a disparidade de tráfego entre servidores

Indexação Consistente é utilizada para alocar o conteúdo em múltiplos servidores dentro de um cluster. Enquanto a indexação consistente tipicamente resulta em um cluster razoavelmente bem balanceado, a variação do tráfego absoluto pode ser alta se todos os arquivos forem fornecidos pelo mesmo servidor em uma localidade.

 

Como exemplo:

Se tentarem distribuir uma pilha de pedras grandes em múltiplos baldes, mesmo com um ótimo algoritmo de alocação, é mais provável que os baldes não tenham o mesmo peso. No entanto, se tiverem uma pilha de pedras pequenas, então é mais provável que conseguirão balancear os pesos. Analogamente, os conteúdos de maior popularidade (pedras grandes) podem ser divididos em conteúdo de menor popularidade (pedras pequenas) simplesmente utilizando múltiplas cópias desse conteúdo.

 

 

É desejável manter os servidores equilibradamente balanceados para que com o aumento do tráfego, cada servidor atinja o pico de utilização no mesmo nível de tráfego geral. Isso permite maximizar a quantidade de tráfego disponibilizado pelo cluster.

 

Resiliência a falhas de servidor e picos de popularidade inesperados

Caso um servidor falhe, todo o tráfego ligado a esse servidor precisa ser entregue por outros servidores no mesmo cluster – ou, de outras localidades mais distantes na rede. Permanecer dentro do mesmo cluster, no entanto, minimizando a distância da rede, é preferível – especialmente quando se trata de conteúdo muito popular. Por essa razão, é necessário garantir que múltiplas réplicas do conteúdo mais popular no mesmo cluster sejam mantidas.

Além disso, são replicamos alguns conteúdos de popularidade média como questão de segurança no caso de haver um aumento inesperado no tráfego – por exemplo, devido a uma atenção da mídia por uma celebridade.

 

Como o conteúdo está organizado?

Todos os títulos são codificados em múltiplos formatos, ou perfis de codificação. Por exemplo, alguns perfis podem ser utilizados por aparelhos iOS e outros por uma certa classe de Smart TVs. Existem perfis de áudio, de vídeo e perfis que contenham legendas.

Cada perfil de áudio e de vídeo é codificado em diferentes níveis de qualidade. Para um dado título, quanto maior o número de bits utilizado para codificar um segundo de conteúdo (bps), maior a qualidade. (Para mais informações sobre a otimização por títulos, veja esse post.) Cada taxa de bits que você assiste, depende da qualidade da sua conexão com a rede, os perfis de codificação que seu aparelho suporta, o título e o plano do Netflix que você assina.

 

Finalmente, tem-se os arquivos de áudio e legendas disponíveis em múltiplos idiomas.

 

Então, para cada quarteto de (título, perfil de codificação, taxa de bits, idioma), é necessário armazenar um ou mais arquivos. Com um exemplo, para apresentar um episódio de “The Crown”, eles armazenam aproximadamente 1.200 arquivos!

 

 

Como é avaliada a efetividade da classificação de popularidade?

Eficiência do armazenamento em cache

Para um cluster que está configurado para servir um certo segmento do tráfego, a eficiência do armazenamento em cache é a proporção de bytes fornecidos por esse cluster em relação ao total de bytes fornecidos para esse segmento de tráfego.

Do ponto de vista dos seus ISPs parceiros, eles gostam de realizar essa métrica baseados na rede. Também  é medida baseada no cluster para otimizarem sua infraestrutura.

Maximizando a eficiência do armazenamento em cache nas localidades mais próximas possíveis, é traduzido em menos pulos de rede. A menor quantidade de pulos de rede melhora diretamente a qualidade do streaming do usuário, e também reduz o custo com rede de transporte de conteúdo tanto para o ISP quando para a Netflix. Além disso, maximizar o armazenamento em cache torna a utilização da internet responsável e eficiente.

 

Mudança de conteúdo

 Apesar de suas atualizações proativas de conteúdos serem baixadas para os servidores nas horas fora dos picos de utilização, quando o tráfego está no volume mínimo, ainda existe um esforço para minimizar a quantidade de conteúdo que precise ser atualizada diariamente – uma métrica secundária chamada contente churn. Menos atualizações de conteúdo podem levar a um menor custo tanto para os ISPs parceiros quanto para a Netflix.

 

Como é projetada a popularidade?

Como descrito brevemente em um post anterior, os padrões de visualizações futuras são projetados analisando o histórico de padrões de visualização. Uma maneira simples de fazer isso poderia ser olhar para o que os membros do conteúdo assistiram em um certo dia e assumir que o mesmo conteúdo será assistido amanhã. No entanto, essa visão curta não levar à uma projeção muito boa. A popularidade de um conteúdo pode variar, e responder à essa variação de popularidade sem organização poderia levar a Netflix a mudanças desnecessárias de conteúdo. Então, ao invés disso, eles analisam os dados coletados por vários dias do histórico para fazer a melhor projeção para o dia seguinte.

 

Qual a granularidade utilizada para projetar a popularidade?

Os seguintes modelos calculam a popularidade em níveis diferentes de agrupamento:

 

  1. Nível de Título: Essa classificação é utilizada para o posicionamento do conteúdo, fazendo com que todos os arquivos associados com um título sejam classificados em um único grupo. Isso significa que todos os arquivos (muitas taxas de bits de vídeo e áudio) relacionados a uma única sessão de streaming estejam no mesmo servidor. A desvantagem desse método é que seria necessário armazenar perfis de codificação menos populares junto com os populares, tornando esse método menos eficiente.
  2. Nível de Arquivo: Cada arquivo é classificado por sua própria popularidade. Utilizando esse método, os arquivos do mesmo título estão em sessões diferentes da classificação. No entanto, esse mecanismo melhora significantemente a eficiência do armazenamento em cache.

 

Em 2016, a Netflix migrou a maioria dos seus clusters de classificação por nível de título para o nível de arquivos. Com essa mudança, foi possível atingir a mesma eficiência de armazenamento em cache com 50% do armazenamento!

Ortogonalmente aos dois níveis de agrupamento acima, foi calculada a popularidade dos conteúdos em um nível regional. Isso presumindo que os membros de um mesmo país tenham uma preferência similar em relação à conteúdo.

 

E os novos títulos?

Como mencionado acima, é utilizado o histórico dos conteúdos que estiveram na Netflix por pelo menos um dia. Para o conteúdo que é lançado na Netflix pela primeira vez, são analisadas várias projeções internas e externas para ter uma previsão de qual será a performance de um título. Então eles normalizam baseados nessas projeções “orgânicas”.

Para alguns títulos, eles ajustam essa projeção para o dia 1 de acordo com quanto será divulgado o título. E finalmente, algumas vezes é utilizado o julgamento humano para colocar certos títulos que estejam chegando em um ponto alto na classificação de popularidade para garantir que existirá uma capacidade adequada de servidores para transmiti-los.

 

***

Fonte: https://medium.com/netflix-techblog/content-popularity-for-open-connect-b86d56f613b