Orkas Orkas
Início Blog Arquitetura
Arquitetura

Sincronização na nuvem na prática: como o Orkas sincroniza dados entre dispositivos

Como o Orkas sincroniza dados do utilizador entre dispositivos com transferência cifrada, armazenamento de conteúdo, confirmações sob responsabilidade do servidor, bloqueios de conta, regras de sincronização, tratamento de conflitos assistido por modelo, confirmação de eliminação e uma reciclagem.

A sincronização na nuvem dos dados do utilizador não envolve apenas carregamentos e transferências. Tem de proteger o conteúdo privado em trânsito, manter os custos de armazenamento baixos, serializar escritas de vários dispositivos, compreender diferentes formatos de dados, pedir confirmação antes de eliminações perigosas e preservar uma forma de voltar atrás quando uma decisão estiver errada.

O Orkas trata a sincronização na nuvem como um limite do produto, não como um utilitário em segundo plano. As conversas, os agentes, as competências, o estado da tarefa, os ficheiros de conhecimento e as definições têm de passar de um dispositivo para outro, mantendo uma cadeia de responsabilidade clara: o dispositivo prepara o conteúdo, o armazenamento de objetos contém os bytes e o servidor detém o índice de referência.

A estrutura abaixo é a que usamos para analisar o sistema: fluxo de conteúdo cifrado, armazenamento endereçado pelo conteúdo, bloqueio de sincronização ao nível da conta, confirmação sob responsabilidade do servidor, regras de sincronização determinísticas, tratamento de conflitos assistido por modelo, confirmação de eliminação, reciclagem e marcadores de recuperação.

Resumo da sincronização na nuvem
Dados do dispositivoVerifica os dados pertencentes ao utilizador e compara-os com o último estado de referência sem alterações pendentes.
Camada de segurançaCifra, calcula o hash, verifica e assina a intenção de cada passagem de sincronização.
Armazenamento na nuvemArmazena objetos de conteúdo e um índice compacto do que deveria existir.
Camada de recuperaçãoMantém marcas de eliminação, ficheiros de conflitos, pedidos de confirmação de eliminação e entradas da reciclagem.
O sistema é construído como um conjunto de verificações em torno do fluxo de dados, não como um espelho cego de ficheiros.
Em resumo Prioridade aos dados locais, também no seu outro computador A sincronização é opcional; o espaço de trabalho fica no seu computador por predefinição. Saiba mais sobre este limite na página agente de IA com prioridade aos dados locais.
Descarregar o Orkas — grátis

O contrato de sincronização

Cada passagem de sincronização responde a quatro perguntas sobre o produto: que conteúdo pode ser transferido, como é protegido, quem tem permissão para publicar um novo índice na nuvem e como pode o utilizador recuperar os dados se a sincronização tomar a decisão errada?

O contrato para cada passagem
ÂmbitoApenas os dados do utilizador são considerados.
CifrarAs cargas úteis são protegidas antes de saírem do dispositivo.
ArmazenarOs objetos são endereçados pela identidade do conteúdo.
BloquearÉ publicada uma passagem de sincronização da conta de cada vez.
ConfirmarO servidor valida e grava o próximo índice.
RecuperarAs eliminações e os conflitos mantêm uma forma de voltar atrás.
A sincronização é fiável porque cada etapa tem uma responsabilidade delimitada.

Percurso do conteúdo cifrado

Os dados do utilizador são preparados no dispositivo antes de chegarem ao armazenamento. O mecanismo de sincronização normaliza o conjunto de candidatos, calcula a identidade do conteúdo, cifra as cargas úteis, carrega-as através de credenciais de curta duração e verifica os bytes transferidos antes de os voltar a gravar no dispositivo.

Dos dados do utilizador ao objeto protegido na nuvem
SelecionarEscolha os dados criados pelo utilizador.
HashCalcula a identidade do conteúdo e os metadados de tamanho.
CifrarProteja a carga útil antes do carregamento.
CarregarEnviar bytes de objeto com credenciais temporárias.
VerificarVerificar o hash e os metadados esperados na transferência.
AplicarGrave apenas conteúdo verificado no dispositivo.
O armazenamento de objetos vê cargas úteis cifradas; o mecanismo de sincronização verifica a identidade do conteúdo antes de confiar numa transferência.

Armazenamento e índice

O Orkas separa os bytes armazenados do índice da nuvem. Os objetos de conteúdo contêm os dados cifrados. O índice regista que itens de dados lógicos devem existir, a sua identidade de conteúdo, os contadores de versão, o tamanho armazenado, a revisão na nuvem e o estado de eliminação. O dispositivo também mantém um estado de referência da última passagem bem-sucedida para poder distinguir o estado antigo das novas edições.

Três registos, três funções
Estado de referência do dispositivoA memória do dispositivo da última sincronização concluída.
Índice da nuvemA lista sob responsabilidade do servidor dos itens, versões e marcas de eliminação atuais.
Objetos de conteúdoBytes cifrados endereçados pela identidade do conteúdo.
Por que dividi-los? Grandes volumes de bytes podem residir no armazenamento de objetos, enquanto o índice pequeno continua a ser a única fonte para as decisões de sincronização.
O índice informa os dispositivos sobre o que deveria existir; os objetos de conteúdo fornecem os bytes.

Uma passagem de sincronização

Uma passagem começa com um custo reduzido e só se torna rigorosa quando há trabalho real. O Orkas começa por verificar se algo mudou, depois obtém o bloqueio de sincronização da conta, recalcula as alterações enquanto mantém o bloqueio, transfere o conteúdo, pede ao servidor que confirme as operações do índice e, por fim, atualiza o estado de referência do dispositivo.

Ciclo de vida de uma passagem
Verificação preliminarVerifique e obtenha os metadados mais recentes do índice da nuvem.
Bloqueio de sincronizaçãoReserve a via de sincronização da conta para este dispositivo.
Verificar novamenteRecalcular as alterações após obter o bloqueio.
TransferirCarregar, transferir, combinar ou preparar eliminações.
ConfirmarO servidor valida a revisão, a quota e o esquema da nuvem.
Estado de referênciaRegiste o novo estado sem alterações pendentes após a conclusão bem-sucedida.
A segunda comparação é importante: a vista da verificação preliminar pode já estar desatualizada quando o trabalho começar.

Bloqueio de sincronização e confirmação

O bloqueio de sincronização e a verificação da confirmação resolvem problemas diferentes. O bloqueio de sincronização reduz o desperdício de trabalho simultâneo entre dispositivos. O bloqueio do lado do servidor serializa as escritas do índice. A verificação da revisão esperada na nuvem evita que uma leitura mais antiga se torne o próximo estado de referência. As verificações de quota e esquema são executadas no mesmo processo de confirmação sob responsabilidade do servidor.

O ponto de controlo da confirmação
O dispositivo perguntaA via de sincronização da conta está disponível?
Bloqueio concedidoA passagem obtém uma janela curta para sinais de atividade.
Objetos prontosOs bytes de conteúdo já foram carregados ou obtidos.
Bloqueio do servidorA gravação do índice é serializada por conta.
Verificação de versãoRejeite se a revisão da nuvem for alterada.
PublicarEscreva o próximo índice e atualize o uso.
Os dispositivos transferem bytes; o servidor publica o estado de referência.

Regras antes dos conflitos

A maioria das decisões de sincronização não são conflitos. O dispositivo compara o estado de referência, os dados atuais do dispositivo e o índice da nuvem. Se apenas a nuvem mudou, transfira os dados para o dispositivo. Se apenas o dispositivo mudou, envie os dados para a nuvem. Se ambos foram alterados, encaminhe-os por tipo de conteúdo. Se algo desapareceu, siga o processo de proteção contra eliminações em vez de remover os dados imediatamente.

Mecanismo de decisão
Estado de referênciaO que este dispositivo confirmou pela última vez.
Dados do dispositivo agoraO que este dispositivo tem atualmente.
Nuvem agoraO que o índice do servidor declara.
AçãoTransferir, enviar, combinar, marcar para eliminação, confirmar ou restaurar.
O estado de referência torna possível uma regra simples: os lados inalterados não precisam de ser combinados.

Tratamento de conflitos

Quando ambos os lados mudaram efetivamente, o Orkas não se limita a fazer prevalecer a última escrita. Os registos que só permitem acrescentar entradas podem ser combinados acrescentando as entradas em falta. As listas podem ser combinadas através da identidade estável dos registos. O JSON estruturado pode usar contadores de versão e marcas de data/hora. O tratamento de Markdown e de ficheiros binários é conservador: se o sistema não conseguir comprovar uma combinação sem perdas, mantém uma cópia completa da versão preterida.

Para conflitos ambíguos em texto ou conteúdo estruturado, o produto pode agrupar as versões relevantes para tratamento assistido por modelo. O modelo pode explicar o conflito, redigir uma versão combinada ou ajudar o utilizador a escolher. Não é a única proteção: a validação determinística, os originais arquivados e a recuperação visível para o utilizador continuam a fazer parte do processo.

Processo de resolução de conflitos
ClassificarDetetar o formato do ficheiro e os metadados da versão disponível.
Combinação por regrasUse a combinação determinística quando for seguro.
Assistência do modeloExplicar conflitos de texto ambíguos ou redigir propostas de resolução.
ArquivarMantenha os originais quando a segurança for incerta.
ValidarVerifique o esquema, a identidade e a forma esperada.
PublicarConfirmar apenas o resultado aceite.
A assistência do modelo melhora a qualidade da resolução, enquanto as verificações determinísticas a mantêm limitada.

Confirmação de eliminação

As eliminações são tratadas como transições de estado. Uma eliminação remota torna-se um marcador de eliminação. Uma eliminação do lado do dispositivo torna-se uma operação candidata. O Orkas verifica as escritas recentes, observa grandes vagas de eliminações e interrompe a passagem para pedir confirmação quando a quantidade de dados do utilizador que desaparecem parece arriscada.

Processo de confirmação de eliminação
Eliminação detetadaUm item de dados está em falta ou marcado para eliminação.
Escrita recenteVerifique se foi recriada ou editada.
Verificação de vagasDeteta lotes de eliminação excecionalmente grandes.
AvisarPeça confirmação quando o risco for elevado.
ConfirmarConfirmar marcas de eliminação após aprovação.
CancelarRecuperar cópias da nuvem quando a eliminação for acidental.
Uma eliminação arriscada pode ser interrompida; o utilizador pode escolher antes de esta se tornar um estado duradouro na nuvem.

Reciclagem e recuperação

Antes de uma eliminação válida remover uma cópia do dispositivo, o Orkas move-a para a reciclagem de sincronização. As versões preteridas nos conflitos são arquivadas para revisão. Os carregamentos pendentes são preservados se a confirmação falhar, para que a passagem seguinte possa reutilizar os bytes. Se um utilizador limpar deliberadamente os dados da nuvem, os outros dispositivos verão um marcador de limpeza e deixarão de reenviar conteúdo desatualizado.

Mecanismos de recuperação
ReciclagemAs cópias eliminadas do dispositivo continuam a poder ser recuperadas.
Arquivo de conflitosAs versões preteridas são mantidas quando a combinação é incerta.
Carregamentos pendentesOs carregamentos de objetos bem-sucedidos podem ser reutilizados após uma falha na confirmação.
Marcador de limpezaAs contas cujos dados foram limpos na nuvem não repõem dados antigos silenciosamente.
A recuperação da sincronização não é uma funcionalidade; são várias pequenas saídas de emergência colocadas nos pontos de falha.

O que isto nos traz

O resultado é um sistema de sincronização com limites claros. Os dispositivos preparam e verificam o conteúdo. O armazenamento de objetos contém bytes cifrados. O servidor publica o índice. O bloqueio de sincronização da conta e o bloqueio do servidor mantêm as passagens ordenadas. As regras tratam dos casos comuns. A assistência do modelo ajuda nos conflitos ambíguos. A confirmação de eliminação e a reciclagem protegem os utilizadores dos erros mais dispendiosos.

Este é o padrão de que o Orkas precisa para a sincronização na nuvem: não é magia, não é um espelho cego, mas um mecanismo cuidadoso que permite que os dados do utilizador passem de um dispositivo para outro e continuem a parecer consistentes.