Come fa il database di YouTube a non finire lo spazio di archiviazione?

YouTube è il secondo sito web più popolare del pianeta dopo Google. A partire da maggio 2019, più di 500 ore di contenuti video vengono caricate sulla piattaforma ogni singolo minuto.  YouTube distribuisce i video dei canali aziendali e non con una latenza minima 

Con oltre 2 miliardi di utenti, la piattaforma di condivisione video genera miliardi di visualizzazioni con oltre 1 miliardo di ore di video guardati ogni giorno. In questo articolo ci siamo occupati come sia gestita l’archiviazione dei video dei canali Youtube

Questo articolo invece cerca di raccontare come YouTube e la sua infrastruttura possano mantenere un sistema in grado di interrogare  così tanti dati e renderli disponibili a miliardi di utenti contemporaneamente

YouTube e l’infrastruttura di backend 

I video popolari vengono erogati da un complesso sistema di CDN, cioè una rete di server disposti in punti differenti del mondo, che contengono il medesimo contenuto, così da darlo all’utente che si trovi più vicino.

Mentre  i video con una richiesta minore vengono richiamati volta per volta dal database centrale.

A ogni video, al momento del caricamento, viene assegnato un identificatore univoco; il video appena caricato  viene elaborato da un processo automatizzato che esegue diverse azioni in automatico come la generazione di miniature, metadati, trascrizioni video, codifica, impostazione dello stato di monetizzazione e così via.

Per la compressione video sono impiegati i codec VP9 e H.264 / MPEG-4 AVC, che riducono della metà la banda richiesta da altri codec per mantenere  una qualità HD e 4K

Per lo streaming dei video sul canale YouTube viene impiegato il protocollo Dynamic Adaptive Streaming su HTTP.

È una tecnica di streaming con velocità e quantità di dati adattiva, cioè che si adatta e consente lo streaming di video di alta qualità da server web HTTP convenzionali.

Tramite questa tecnica, il contenuto viene messo a disposizione del visualizzatore a diverse velocità di trasmissione.

In questo modo il client YouTube che usa l’utente finale adatta automaticamente il rendering del video in base a alla velocità di connessione Internet dello spettatore riducendo il più possibile il buffering, cioè il tempo di attesa

canale youtube storage
canale youtube storage

YouTube il Database, Msql e Vitess

A causa delle richieste sempre maggiori, di interrogazioni al database via MSQL, gli sviluppatori di YouTube hanno implementato un framework aggiuntivo, Vitess. IN questo articolo abbiamo visto il ruolo di Vitess e partizionamento del database con le informazioni dei canali YouTube 

Consiste in  un complesso sistema di replica del database, che si divide in un master “originale” e in una serie di repliche che servono a ridurre il carico sul master. L’aggiunta di repliche ha consentito di eliminare il collo di bottiglia dovuto al database singolo,  migliorare la velocità di lettura e aumentare la durata dell’intero sistema.

In questo modo sul master vengono effettuate le operazioni di scrittura, mentre sia il nodo master che i nodi di replica gestiscono il traffico di lettura.

Questo spiega la abbastanza frequente incoerenza tra il numero di visualizzazioni per un particolare video tra il master e la replica. Che si concretizza nel vedere diversi numeri a seconda  se si è indirizzati all’uno o all’atro sistema

video canale YouTube
video codec

Frammentazione del database

Oltre alla replica master-slave e replica master-master il databse è stato distribuito (Sharding) in più nodi all’interno dei quali viene contenuta una porzione del database stesso

Dopo aver frammentato il database, i dati sono stati distribuiti su più macchine. Ciò ha aumentato la velocità di scrittura del sistema. Invece della sola singola istanza master che gestisce le scritture, le operazioni di scrittura vengono eseguite su più macchine. Inoltre, per ogni macchina sono state create repliche separate per garantire ridondanza e velocità effettiva.

video distribuzione

Video per imprese e aziende

Summary
YouTube e lo spazio per il  database
Article Name
YouTube e lo spazio per il database
Description
Come fa il database di YouTube a non finire lo spazio di archiviazione dei video dei canali aziendali
Author
Publisher Name
Giuseppe Galliano Studio
Publisher Logo