Copias VOD y balanceo¶
Un asset subido a un solo streamer se reproduce solo desde él: si el streamer cae, el asset no está disponible, y todos sus espectadores están en una sola máquina. Una copia del asset en otro streamer elimina ambas limitaciones. Central reparte a los espectadores entre los streamers que tienen el asset, el streamer caído sale de la elección y el que vuelve entra de nuevo.
La copia no es una entidad aparte: la hace la misma tarea que la transcodificación, según la plantilla de asset. En la tarjeta del asset la copia se ve como una ubicación más junto al original.
Cuántas copias¶
En el formulario de la plantilla está el campo Copias en otros servidores: sin copia, 1, 2 y así sucesivamente. El número se cuenta además del original: 1 significa que el asset estará en dos streamers. La lista ofrece tantas copias como caben en el clúster: los streamers con almacén VOD menos uno; la pista bajo el campo indica cuántos son. Por la API se puede superar el número de la lista, pero la tarea esperará hasta que aparezca un streamer para la copia.

Las copias las hace cada tarea según esta plantilla: la que se pone sola tras la subida y Lanzar tarea… en la tarjeta del asset. A la copia van las salidas de la tarea, el descriptor y todos los demás archivos del asset que aún no están allí: un póster o subtítulos subidos más tarde también llegan con la siguiente tarea. El original marcado eliminar tras el procesamiento no se copia: se eliminará de todos modos.
También se admite una plantilla solo con copia, sin calidades: así se copian archivos ya listos sin transcodificar nada.
Dónde va la copia¶
El operador no elige el streamer para la copia; lo elige central al entregar la tarea:
- el streamer está en línea, con un almacén VOD disponible cuyo diario central puede leer;
- el rol Copiado está activo en el streamer (véase más abajo);
- todavía no tiene este asset, ni el original ni otra copia: una copia por streamer, de lo contrario el fallo de una máquina no salvaría a los espectadores;
- el espacio libre no es menor que el umbral
vod_min_free_bytes(1 GiB por defecto) más el tamaño de los archivos del asset.
De los adecuados se toma el más libre. Las copias ya existentes del asset se actualizan siempre; las nuevas se crean mientras haya menos copias de las indicadas.
Si no hay streamer para la copia, la tarea espera en la cola y no gasta intentos; en el registro de tareas la razón se indica en palabras:
- no hay servidor — no hay ningún streamer con el rol de copiado que no tenga este asset;
- no hay espacio — hay streamers, pero sus almacenes están llenos;
- el almacén de la copia no está listo — el streamer de una copia ya existente no está en línea o está lleno;
- el rol de copiado está desactivado — el streamer que ya tiene la copia fue retirado del copiado; al devolver el rol, la misma tarea termina la copia.
Aparece un streamer, se libera espacio o se activa la recepción de copias, y la tarea se va sola.
Cómo llega la copia¶
La copia la hace una tarea de copia aparte en el streamer de destino: en el registro de tareas está marcada como copia junto al nombre del streamer, y su tarjeta nombra al padre, la tarea cuyas salidas se entregan. Central la crea cuando el padre termina, o de inmediato si la plantilla consta solo de una copia. El streamer de destino lee los archivos del streamer con el original por la dirección interna del clúster por sí mismo, comprueba tamaño y hash contra el catálogo y los publica localmente; ni central ni el streamer del original envían bytes. Las copias van por su propio carril y no ocupan slots de transcodificación.
En la tarjeta de la tarea de copia junto al estado están el chip copia y, mientras llegan bytes, el chip descarga de la copia; bajo la barra de progreso, en lugar del tiempo procesado y la velocidad de transcodificación, están Transferido — cuántos bytes han llegado de cuántos — y Velocidad de transferencia. En los detalles figuran el Servidor de la copia, los Archivos que lleva esta tarea y la Tarea principal con enlace; la tarjeta del propio padre lista sus copias en el resultado con el servidor y el estado. La tarea pasa a lista cuando se ha recibido cada archivo.

Si no hay nada que copiar porque la copia ya lo tiene todo, el padre se marca sin copia con una pista de por qué la copia no hizo falta. Una lectura interrumpida o un hash que no coincide cierran la tarea de copia con error, y el bróker la repite con un nuevo intento sobre el contenido actual del asset.
Roles del streamer¶
Qué trabajo con VOD entrega central a un streamer lo deciden dos roles del streamer en los ajustes del streamer, en la sección Rol y colocación: Transcodificación — el streamer recibe tareas de transcodificación de sus assets, Copiado — el streamer acepta copias de assets en sus almacenes y las descarga por sí mismo. Ambos están activos por defecto. El rol es una decisión de central, la capacidad es una propiedad de la compilación: un streamer sin backend de transcodificación muestra una nota bajo el interruptor y no recibe tareas de transcodificación, diga lo que diga el rol.
Desactivar un rol detiene solo la entrega de trabajo nuevo. Las tareas que el streamer ya ejecuta terminan y siguen visibles en el registro; allí se pueden cancelar una a una. Una copia que aún no ha empezado pasa a otro streamer, si lo hay; una copia que actualiza un asset que ya está en este streamer espera a que vuelva el rol. Todo lo que el streamer tiene se sigue sirviendo, y las subidas a sus almacenes no se restringen. Así se retira una máquina para mantenimiento o se destina a otras tareas sin tocar su contenido.
Al desactivar un rol en un streamer con tareas sin terminar, la consola avisa cuántas hay y que terminarán, y desactiva el rol solo tras la confirmación.

Cómo reproducen los espectadores¶
El enlace de reproducción es el mismo sea cual sea el streamer que sirve el archivo: en él va el asset id. En cada petición central elige, entre las ubicaciones listas del asset, el streamer con menos sesiones (en caso de empate, el primero por nombre) y envía al reproductor allí con una redirección; a partir de ahí el espectador ve desde ese streamer hasta el final de la sesión. Entre los informes de los streamers central cuenta también a los espectadores que acaba de dirigir, así que cien reproductores que llegan en un segundo se reparten por igual en lugar de irse a una sola máquina.
Un streamer que dejó de informar a central sale de la elección cuando expira su plazo de vida (liveness_ttl_secs, 30 segundos por defecto). Los espectadores que ya reproducen desde él terminan o se reconectan solos; las peticiones nuevas van a las copias vivas, y el enlace no cambia. El streamer que vuelve recibe espectadores de nuevo tras su primer informe. Un asset sin ninguna ubicación viva responde 503 con Retry-After.
La elección del streamer para los streams funciona de otro modo y aquí no cambia: véase Reproducción del stream.
Qué se ve en la consola¶
En la tarjeta del asset la tabla Ubicación muestra cada streamer con el asset: original o copia, estado, revisión y Espectadores — cuántas sesiones de este asset se reproducen desde él ahora mismo.

En la sección Sesiones una sesión VOD está en la columna Stream con la clave del asset y lleva a su tarjeta; la columna Streamer muestra desde qué máquina ve el espectador. En la página Streamers la columna Sesiones da la imagen general por máquinas.
Qué sigue¶
- Transcodificación de VOD — plantillas de asset, tareas y sus tarjetas.
- Catálogo VOD — la tarjeta del asset, las ubicaciones y los enlaces de reproducción.
- Ajustes del streamer — almacenes VOD y roles del streamer.