Retenção do arquivo¶
media.dvr.depth
O DVR do Sapsan é um armazenamento próprio em disco: o stream é gravado append-only em arquivos por hora, por pista, em vários discos ao mesmo tempo. Ler o arquivo não atrapalha gravá-lo.
Limpeza e retenção¶
A limpeza roda uma vez por hora (5 minutos depois da virada da hora):
max_depthage com granularidade de hora: só são apagadas as horas plenamente vencidas;- blobs com episódios protegidos nunca são apagados pela retenção;
- o blob da hora atual (a que está sendo gravada) nunca é apagado.
A proteção contra estouro do disco funciona à parte: quando o espaço livre cai abaixo de min_free_bytes (por padrão, 1 % da capacidade do disco), o Sapsan apaga os blobs mais velhos desconsiderando a retenção até liberar espaço suficiente.
Retenção de episódios no central¶
O central coleta o último estado dos episódios e suas imagens dos streamers e os armazena no PostgreSQL. Os episódios retidos continuam disponíveis quando o streamer de origem está indisponível. Esse armazenamento é independente da gravação de vídeo.
Em DVR do stream ou de seu modelo, Retenção adicional de episódios (horas) define dvr.episodes_additional_depth; a API e o YAML usam segundos. O total é dvr.max_depth + dvr.episodes_additional_depth. A profundidade adicional não definida equivale a zero. Se a seção DVR existe mas max_depth não está definido, usam-se dez anos; zero explícito continua sendo zero. Sem seção DVR, ou com total zero, o central não retém episódios.
O prazo começa em closed_at para episódios fechados e em updated_at para os abertos. Alterações na configuração DVR efetiva, incluindo o modelo, recalculam a retenção de todos os episódios restantes. A seção DVR do próprio stream substitui a seção do modelo por inteiro. Excluir um stream exclui seus episódios e imagens. Aumentar a retenção não recupera episódios já removidos fisicamente pela limpeza em segundo plano.