Retención del archivo¶
media.dvr.depth
El DVR de Sapsan es un almacenamiento propio en disco: el stream se escribe append-only en archivos por horas, por pista, en varios discos a la vez. La lectura del archivo no interfiere con la escritura.
Limpieza y retención¶
La limpieza se ejecuta una vez por hora (5 minutos después del cambio de hora):
max_depthactúa con granularidad de hora: solo se borran las horas plenamente vencidas;- los blobs con episodios protegidos nunca se borran por retención;
- el blob de la hora actual (la que se está escribiendo) nunca se borra.
La protección contra el desbordamiento del disco funciona aparte: cuando el espacio libre cae por debajo de min_free_bytes (por defecto, el 1 % de la capacidad del disco), Sapsan borra los blobs más viejos al margen de la retención hasta liberar espacio suficiente.
Retención de episodios en central¶
Central recopila el último estado de los episodios y sus imágenes de los streamers y los guarda en PostgreSQL. Los episodios retenidos siguen disponibles cuando el streamer de origen no responde. Este almacenamiento es independiente de la grabación de vídeo.
En DVR del stream o de su plantilla, Retención adicional de episodios (horas) configura dvr.episodes_additional_depth; la API y YAML usan segundos. El total es dvr.max_depth + dvr.episodes_additional_depth. La profundidad adicional no definida equivale a cero. Si existe la sección DVR pero falta max_depth, se usan diez años; un cero explícito sigue siendo cero. Sin sección DVR, o con un total de cero, central no retiene episodios.
El plazo empieza en closed_at para episodios cerrados y en updated_at para los abiertos. Cambiar la configuración DVR efectiva, incluida la plantilla, recalcula la retención de todos los episodios restantes. La sección DVR propia del stream sustituye por completo la sección de la plantilla. Eliminar un stream elimina sus episodios e imágenes. Aumentar la retención no recupera episodios ya eliminados físicamente por la limpieza en segundo plano.