Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Fluid Framework fornece aos desenvolvedores estruturas de dados distribuídas (DDSs) que garantem automaticamente que cada cliente conectado tenha acesso ao mesmo estado. As APIs fornecidas pelos DDSes são projetadas para serem familiares aos programadores que já usaram estruturas de dados comuns antes.
Observação
Este artigo pressupõe que você esteja familiarizado com Introdução de estruturas de dados distribuídas no fluidframework.com.
Uma estrutura de dados distribuída se comporta como uma estrutura de dados local. Seu código pode adicionar dados a ele, remover dados, atualizá-los, etc. No entanto, um DDS não é um objeto local. Um DDS também pode ser alterado por outros clientes que expõem o mesmo contêiner pai do DDS. Como os usuários podem alterar simultaneamente o mesmo DDS, você precisa considerar qual DDS usar para modelar seus dados.
Observação
Significado de 'simultaneamente'
Diz-se que dois ou mais clientes fazem uma alteração simultaneamente se cada um fizer uma alteração antes de receber as alterações dos outros do servidor.
Escolher a estrutura de dados correta para seu cenário pode melhorar o desempenho e a estrutura de código do seu aplicativo.
Os DDSs variam entre si por três características:
- Estrutura de dados básica: por exemplo, par chave-valor, uma sequência ou uma fila.
- Autonomia do cliente: Um DDS otimista permite que qualquer cliente altere unilateralmente um valor e o novo valor é retransmitido para todos os outros clientes. Mas um DDS de consenso só permite uma mudança se ela for aceita por outros clientes por um processo de consenso.
- Política de mesclagem: a política que determina como as alterações conflitantes dos clientes são resolvidas.
Abaixo, enumeramos as estruturas de dados e descrevemos quando elas podem ser mais úteis.
Dados de chave-valor
Esses DDSs são usados para armazenar dados de valor-chave. Eles são otimistas e usam uma política de mesclagem de último escritor vence. Embora o valor de um par possa ser um objeto complexo, o valor de qualquer par não pode ser editado diretamente; O valor inteiro deve ser substituído por um novo valor contendo as edições desejadas, todo por todo.
- SharedMap: uma estrutura básica de dados de valor-chave.
Cenários de chave-valor
As estruturas de dados de chave-valor são a opção mais comum para muitos cenários.
- Dados de preferência do usuário.
- Estado atual de uma pesquisa.
- A configuração de uma exibição.
Problemas comuns e práticas recomendadas para DDSs de valor-chave
- Armazenar um contador em um SharedMap terá um comportamento inesperado. Em vez disso, use o SharedCounter.
- Armazenar matrizes, listas ou logs em uma entrada de chave-valor pode levar a um comportamento inesperado porque os usuários não podem modificar partes de uma entrada de forma colaborativa. Tente armazenar os dados da matriz ou da lista em um SharedSequence ou SharedInk.
- Armazenar muitos dados em uma entrada de chave-valor pode causar problemas de desempenho ou mesclagem. Cada atualização atualizará todo o valor em vez de mesclar duas atualizações. Tente dividir os dados em várias chaves.
Sequências
Esses DDSs são usados para armazenar dados sequenciais. Eles estão otimistas. As estruturas de dados de sequência são úteis quando você precisa adicionar ou remover dados em um índice especificado em uma lista ou matriz. Ao contrário das estruturas de dados de valor-chave, as sequências têm uma ordem sequencial e podem lidar com inserções simultâneas de vários usuários.
- SharedNumberSequence: uma sequência de números.
- SharedObjectSequence: uma sequência de objetos simples.
Cenários de sequência
- Listas
- Linhas do tempo
Problemas comuns e práticas recomendadas para DDSs de sequência
- Armazene apenas dados imutáveis como um item em uma sequência. A única maneira de alterar o valor de um item é primeiro removê-lo da sequência e, em seguida, inserir um novo valor na posição em que o valor antigo estava. Mas como outros clientes podem inserir e remover, não há uma maneira confiável de colocar o novo valor na posição desejada.
Cordas
O DDS SharedString é usado para dados de texto não estruturados que podem ser editados de forma colaborativa. É otimista.
-
SharedString-- uma estrutura de dados para lidar com texto colaborativo.
Cenários de cadeia de caracteres
- Editores de texto
Consulte também
Para saber mais sobre DDSs e como usá-los, consulte as seguintes seções do fluidframework.com: