Skip to content

Componentes e confiabilidade

Uma instalação do Catena se compõe de poucas partes, e cada uma tem seu portador de estado e suas garantias. Esta página é o mapa: o que se guarda onde, o que sobrevive à perda de quê e em que se apoia a compatibilidade nas atualizações. O comportamento do cluster numa queda do central é coberto à parte — Autonomia do streamer.

De que a instalação se compõe

  • O serviço catena na máquina do central — o plano de controle e o streamer local num só processo.
  • PostgreSQL — o armazém de estado do central. O único: o central não tem diretório de estado próprio.
  • Os serviços dos streamers — a transmissão; cada um com seu diretório de estado e seus discos de arquivo.
  • O armazém de métricas — embutido, na memória do processo, com horizonte de algumas horas; história para os gráficos, não um arquivo.

O que mora no PostgreSQL

Tudo o que constitui o estado desejado e os registros da instalação:

  • as configurações de canais e as configs dos streamers;
  • o registro de streamers — os assentos com a identidade e as chaves das máquinas;
  • a alocação de canais, o diário de decisões e as execuções do layouter;
  • as zonas CDN;
  • o diário de sessões fechadas;
  • o material TLS do central — a conta ACME e os certificados emitidos.

A consequência é simples: um backup íntegro do banco é uma instalação íntegra. Como tirá-lo e restaurá-lo — Backup e restauração.

O que mora num streamer

O diretório de estado /var/lib/catena de cada máquina:

  • server.id e o cache de ativação — a identidade de licenciamento da máquina;
  • a identidade do streamer no cluster — a chave com a qual ele se apresenta ao central;
  • o cache do slice de configuração aplicado — o que dá a partida a quente sem central;
  • o diário local de sessões fechadas até o central colhê-lo.

O arquivo DVR mora em outro lugar — nos discos dedicados definidos nas configurações do streamer.

O que sobrevive à perda de quê

Perdido O que acontece O que fazer
O processo do central O ar e a gravação continuam; a gestão e o caminho do espectador pelo central congelam Autonomia do streamer; levante o processo — o cluster se recompõe sozinho
O banco PostgreSQL Como acima, mais o estado desejado se perde Restaurar do dump — os streamers reconectam sozinhos
O banco, e sem backup O ar segue; os streamers ficam órfãos Reengatar cada um: reset de estado e token novo
O diretório de estado de um streamer A máquina perde a identidade — de licença e de cluster Aderir a máquina de novo; os canais se realocam
Um disco DVR Perde-se o arquivo daquele disco; o ar não é tocado Os indicadores do disco no diagnóstico
O armazém de métricas (reinício do processo) Perdem-se algumas horas de história dos gráficos Nada — acumula de novo

Garantias de compatibilidade

  • Versões diferentes convivem. O protocolo de troca cresce só por adição: campos desconhecidos devem ser ignorados pelos dois lados, então central e streamers de versões vizinhas trabalham juntos.
  • O esquema do banco é compatível numa janela de duas versões. Esquema mais novo sob código mais velho é a norma; isso habilita tanto a atualização por etapas quanto o rollback do binário sem rollback do banco.
  • O registro é deliberadamente não idempotente. Aderir de novo a mesma máquina cria um assento novo, e duplicatas por server_id o registro marca deixando a decisão ao operador — veja a lista de streamers.