Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Consistência | Acid
Otimização de SQL e Recursos de Consulta

Consistência

Deslize para mostrar o menu

Consistência, no contexto de bancos de dados, refere-se ao princípio que garante que os dados permaneçam precisos e confiáveis ao longo do tempo.

Esse princípio é aplicado quando várias cópias dos dados são armazenadas em diferentes hardwares. Um banco de dados assim é chamado de replicado.
Bancos de dados replicados são amplamente utilizados por empresas cujos produtos são usados globalmente.
Em vez de depender de um único servidor em um local, elas utilizam vários servidores distribuídos pelo mundo para garantir acessibilidade semelhante para usuários de diferentes países.

A consistência desempenha um papel fundamental em bancos de dados replicados, garantindo que todas as cópias ou réplicas dos dados dentro do sistema mantenham uniformidade ao longo do tempo.
Isso significa que, independentemente de qual réplica o usuário acesse, ele verá os mesmos dados atualizados, proporcionando uma experiência coesa e confiável em todo o sistema.

Tipos de consistência

  1. Consistência forte: garante que todas as réplicas tenham os mesmos dados atualizados em todos os momentos. As atualizações são sincronizadas entre as réplicas imediatamente, assegurando o mais alto nível de consistência. No entanto, essa replicação síncrona pode resultar em maior latência e menor disponibilidade;

  2. Consistência eventual: prioriza a disponibilidade em vez da consistência imediata. As réplicas podem diferir temporariamente após as atualizações, mas eventualmente convergem para um estado consistente em um curto período de tempo. As atualizações são propagadas de forma assíncrona, permitindo o processamento local sem aguardar a sincronização;

  3. Consistência fraca: não há garantia de que todos os nós em um sistema distribuído verão os mesmos dados. As atualizações no sistema podem não ser propagadas instantaneamente para todos os nós, levando à possibilidade de diferentes nós observarem diferentes versões dos dados por um longo período de tempo.

Note
Nota

Imagine uma plataforma de mídia social onde postagens e comentários são armazenados em bancos de dados replicados em vários locais.

Agora, devido à forma como esses bancos de dados são configurados, às vezes as atualizações podem demorar um pouco para se propagar por completo.
Por exemplo, se alguém exclui uma postagem popular em uma réplica da plataforma enquanto outra pessoa adiciona um comentário em outra réplica, pode levar um tempo até que essa postagem desapareça de todos os lugares. Assim, os usuários podem acabar vendo postagens excluídas com novos comentários, o que pode ser confuso e tornar a experiência inconsistente para eles.

question mark

Qual modelo de consistência garante que todos os nós em um sistema distribuído tenham a atualização mais recente antes de uma operação de leitura?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Consistência

Consistência, no contexto de bancos de dados, refere-se ao princípio que garante que os dados permaneçam precisos e confiáveis ao longo do tempo.

Esse princípio é aplicado quando várias cópias dos dados são armazenadas em diferentes hardwares. Um banco de dados assim é chamado de replicado.
Bancos de dados replicados são amplamente utilizados por empresas cujos produtos são usados globalmente.
Em vez de depender de um único servidor em um local, elas utilizam vários servidores distribuídos pelo mundo para garantir acessibilidade semelhante para usuários de diferentes países.

A consistência desempenha um papel fundamental em bancos de dados replicados, garantindo que todas as cópias ou réplicas dos dados dentro do sistema mantenham uniformidade ao longo do tempo.
Isso significa que, independentemente de qual réplica o usuário acesse, ele verá os mesmos dados atualizados, proporcionando uma experiência coesa e confiável em todo o sistema.

Tipos de consistência

  1. Consistência forte: garante que todas as réplicas tenham os mesmos dados atualizados em todos os momentos. As atualizações são sincronizadas entre as réplicas imediatamente, assegurando o mais alto nível de consistência. No entanto, essa replicação síncrona pode resultar em maior latência e menor disponibilidade;

  2. Consistência eventual: prioriza a disponibilidade em vez da consistência imediata. As réplicas podem diferir temporariamente após as atualizações, mas eventualmente convergem para um estado consistente em um curto período de tempo. As atualizações são propagadas de forma assíncrona, permitindo o processamento local sem aguardar a sincronização;

  3. Consistência fraca: não há garantia de que todos os nós em um sistema distribuído verão os mesmos dados. As atualizações no sistema podem não ser propagadas instantaneamente para todos os nós, levando à possibilidade de diferentes nós observarem diferentes versões dos dados por um longo período de tempo.

Note
Nota

Imagine uma plataforma de mídia social onde postagens e comentários são armazenados em bancos de dados replicados em vários locais.

Agora, devido à forma como esses bancos de dados são configurados, às vezes as atualizações podem demorar um pouco para se propagar por completo.
Por exemplo, se alguém exclui uma postagem popular em uma réplica da plataforma enquanto outra pessoa adiciona um comentário em outra réplica, pode levar um tempo até que essa postagem desapareça de todos os lugares. Assim, os usuários podem acabar vendo postagens excluídas com novos comentários, o que pode ser confuso e tornar a experiência inconsistente para eles.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 5
some-alt