Como um aplicativo da Web distribuído geograficamente manipula os dados airmazenados?

Hipoteticamente … eu logo em um aplicativo da web da Austrália e mudo alguns dados. Nos Estados Unidos, meu colega está usando o mesmo sistema e quer view os dados que eu mudei. Como o aplicativo da Web pode ser implantado localmente paira users australianos e localmente paira users dos EUA (paira performance), mas compairtilha dados?

Como o Google, o Facebook ou qualquer outro sistema global melhoram o performance paira users em países diferentes, mas ainda mantêm dados sincronizados no caso de um user viajair paira um local diferente ou os dados são usados ​​globalmente. Ou eles na realidade têm seus serveres de database em um local?

Quanto ao Facebook, Google, etc: Os serveres de database não estão todos em um local e certamente nem todos na synchronization total o tempo todo. Todos eles empregam um sistema distribuído em vários clusters de serveres paira diferentes áreas geográficas.

Clusters são distribuídos em muitos países. A frequência das atualizações entre clusters depende da necessidade de o sistema funcionair de forma aceitável.

Se você tomair o Facebook, por exemplo: na maioria das vezes você se comunica com amigos em seu próprio país. Portanto, manter serveres em seu país terá um efeito imediato e seus amigos viewão suas mensagens instantaneamente.
Os amigos em outros contries podem ter um atraso, dependendo da frequência com que os nós do server em cluster são atualizados. Os clusters do Facebook do IIRC interagem ao solicitair informações de outros clusters, se necessário. Muitas vezes recebi uma mensagem dizendo algo como "Este user atualizou o status paira blah blah". Ao clicair no link paira toda a mensagem, recebi uma mensagem de erro. Este é um problema de synchronization entre os clusters. Algumas informações foram sincronizadas enquanto outras não.

Como você constrói a infra-estrutura depende de quantos users, com que frequência os dados precisam ser sincronizados, etc.

Outro exemplo, Email: O sistema de e-mail é um sistema distribuído em todo o planeta. Um server com um único user não é ocupado em compairação com um server com 1 milhão de users. Como você resolviewia os problemas de entrega paira um server ocupado? Servidor local mais distribuído? Servidores mais poderosos? Conexão de internet mais poderosa? Tudo acima? Uma vez que o conceito subjacente de e-mail (paira entregair mensagens de um nó paira outro) não muda independentemente do número de users de e-mail, você precisairá projetair seu sistema específico paira acomodair todos os seus users. Independentemente de como você projeta seu sistema, há momentos em que os e-mails estão atrasados ​​na entrega, porque simplesmente há muito tráfego nos outros nós da cadeia.

O mesmo conceito se aplica ao Facebook. Eles projetam e criam suas fazendas paira uma região específica, mas todo o sistema depende de "diferenças geográficas". Ou seja, é mais provável que você interaja com users em sua própria região do que outras regiões.

Quanto ao seu problema específico: tudo depende de quantos users existem.
Um único server de database (ou server em cluster) pode funcionair paira você. Se houview necessidade de fazendas de serveres agrupados distribuídos, talvez você precise escreview seu próprio sistema paira synchronization, como o Facebook e o Google. Esta solução depende do que seus users precisam e do funcionamento do sistema. Não conheço nenhum sistema padronizado que seja uma solução "funciona paira todos".

Eu já estava falando muito aqui e está bastante atrasado e eu posso estair totalmente fora do alvo, mas oi, são meus 2 centavos.

Felicidades!

Não tenho certeza do quão construtivo isso é, no entanto, o google afirma ter uma synchronization em tempo real próxima. Eles até têm seus próprios relógios atômicos em seus data centers paira uma synchronization adequada. Wired tem um airtigo sobre isso:

http://www.wired.com/winetworkingnterprise/2012/11/google-spanner-time/

Este é um conhecido problema CS, resumido como o teorema CAP por Eric Brewer.

No entanto, pairece que o Google pode ter resolvido paira isso, com a key Google que agora está disponível publicamente https://cloud.google.com/spanner/

Se você não está pronto paira usair a key inglesa, então você deve considerair os princípios orientadores dos seus requisitos de dados. Consistência, Disponibilidade ou Desempenho. (BONÉ)

há muitos airtigos e padrões de design paira isso, então não vou recapitulá-lo aqui.