Consistência

Nesta página, você conhecerá quais operações do Cloud Storage têm consistência forte e quais têm consistência posterior. No caso de objetos armazenáveis em cache e que estão publicamente disponíveis para leitura, você controla o grau de consistência das operações nos objetos.

Operações com consistência forte

O Cloud Storage fornece consistência forte global para as operações a seguir, incluindo em dados e metadados:

  • Leitura após gravação
  • Leitura após atualização de metadados
  • Leitura após exclusão
  • Listagem de intervalos
  • Listagem de objetos
  • Concessão de acesso a recursos usando listas de controle de acesso

Quando você faz o upload de um objeto para o Cloud Storage e recebe uma resposta de operação bem-sucedida, o objeto fica imediatamente disponível para download e operações de metadados realizadas de qualquer local em que o Google ofereça serviço. Isso ocorre quando você cria um objeto novo ou substitui um objeto que já está no Cloud Storage. Como os uploads têm consistência forte, você nunca receberá uma resposta 404 Not Found ou dados desatualizados em operações de leitura após gravação ou leitura após atualização de metadados.

Além disso, quando uma solicitação de upload é bem-sucedida, isso significa que seus dados são replicados em vários data centers. A latência para gravar no repositório globalmente consistente e replicado do Cloud Storage pode ser um pouco mais alta do que a de um repositório não replicado ou não confirmado. Isso ocorre porque uma resposta de operação bem-sucedida é retornada somente quando várias gravações são concluídas, e não apenas uma.

A consistência global forte também se estende às operações de exclusão em objetos. Se uma solicitação de exclusão for bem-sucedida, uma tentativa imediata de fazer o download do objeto ou dos metadados dele resultará em um código de status 404 Not Found. Você receberá o erro 404 porque o objeto não existe mais depois que a operação de exclusão é bem-sucedida.

A listagem de intervalos tem consistência forte. Por exemplo, se você criar um intervalo e imediatamente após realizar uma operação list buckets, o intervalo novo aparecerá na lista de intervalos retornada.

A listagem de objetos também tem consistência forte. Por exemplo, se você fizer o upload de um objeto para um intervalo e imediatamente após realizar uma operação list objects, o objeto novo aparecerá na lista de objetos retornada.

No caso dos intervalos, embora as atualizações de metadados tenham consistência forte nas operações de leitura após atualização de metadados, as alterações de configuração resultantes podem levar algum tempo para serem propagadas. Por exemplo, se você ativar o controle de versão do objeto em um intervalo, aguarde pelo menos 30 segundos antes de excluir ou sobrescrever objetos.

Operações de consistência eventual

As operações a seguir têm consistência posterior:

Normalmente, essas operações produzem efeito em cerca de um minuto. Em alguns casos, pode levar muitos minutos.

Como exemplo de comportamento resultante da consistência posterior, se você remover o acesso de um usuário a um intervalo, essa alteração será refletida imediatamente nos metadados do intervalo. No entanto, o usuário ainda pode ter acesso a ele por um curto período.

Controle de cache e consistência

Os objetos armazenados em cache que estão disponíveis publicamente para leitura talvez não apresentem consistência forte. Se você permitir que um objeto seja armazenado em cache e ele estiver no cache quando for atualizado ou excluído, esse objeto não será atualizado ou excluído até que a vida útil do cache expire.

A vida útil do cache de um objeto é definida pelos metadados Cache-Control associados ao objeto. É possível definir os metadados Cache-Control com um cabeçalho de solicitação Cache-Control incluído no upload inicial do objeto ou em uma atualização subsequente dos metadados. Como você controla os metadados Cache-Control, também controla o grau de consistência dos objetos armazenados em cache. Além disso, embora as solicitações para o objeto possam incluir um cabeçalho Cache-Control próprio, esses cabeçalhos são ignorados pelo Cloud Storage se estiverem definidos para evitar conteúdo em cache.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.