Tecnologia da Informação EmÁudio: Resumão EmÁudio sobre MongoDB - Parte II
Olá! E aí jovem, muito bem, vamos lá pra fechar esse super resumão. Hora de falar da replicação! Vamos lembrar isso aí.
Gente, o MongoDB oferece suporte à replicação de modo a prover redundância de dados e alta disponibilidade no sistema. A replicação consiste em se ter várias instâncias do serviço mongod, o servidor do MongoDB que permite manipular os dados, controlar o acesso e realizar atividades de gerenciamento com cópias dos mesmos dados.
No MongoDB, um conjunto de instâncias do mongod que armazenam réplicas dos mesmos dados é chamado de réplica set - Conjunto de réplicas - um réplica set pode ter vários nós, instâncias do mongod que armazenam dados e, opcionalmente, somente um nó árbitro. Um réplica set pode ter até 50 membros. Dentro de um réplica set o nó primário (Primary) é aquele que recebe todas as operações de escrita de dados.
Os comandos enviados pelos clientes são direcionados a esse nó. O nó primário escreve todas as alterações nos dados no blog de operações do MongoDB, que é conhecido como OP log. A partir dessas escritas do nó primário, os nós secundários lêem o OP Log do primário, checam quais foram as operações de escrita de dados que foram realizadas e replicam essas alterações nos seus próprios bancos de dados, para que estes permaneçam idênticos aos do primário.
Essa replicação é assíncrona por natureza. Tá bom, pois os nós secundários precisam esperar o primário realizar suas alterações e escrevê-las no log, para então perceberem a necessidade de atualização e aplicarem as modificações nas próprias bases. No caso de falhas no nó primário, um outro nó secundário é eleito para assumir seu lugar.
Essa eleição se dá através de uma votação que ocorre de forma automática pelos nós participantes do réplica set. De acordo com o protocolo de eleição do MongoDB, tudo bem até aqui? E a técnica de Sharding, lembra dela? Então o MongoDB dá suporte à técnica de Sharding, para prover escalabilidade horizontal.
Escalabilidade horizontal consiste em dividir o conjunto de dados do sistema e a carga de operações de leitura e escrita através de vários servidores, adicionando novos servidores quando for necessário. Sharding, em português, às vezes é chamada de fragmentação ou Particionamento horizontal. Quando aplicamo... Ler mais