DEV Community

Francisco Zanfranceschi
Francisco Zanfranceschi

Posted on • Updated on

[Conceito] - Vertical & Horizontal Scaling de Bancos Relacionais

Conteúdo original nessa thread do Twitter


Dev,

Conhecer possibilidades de escalonamento de bancos relacionais é um assunto fundamental!

Só escala verticalmente? Dá pra escalar horizontalmente tbm?

Hoje vamos conhecer a história de Amy e como as dificuldades a fizeram muito mais forte.

cc @sseraphini @_amyport

🧵

img


Amy era uma típica banco de dados relacional muito tranquila, com um padrão de acesso equilibrado entre leituras e escritas.

Atendia muito bem a uma demanda pequena.

img


Um dia, Amy ficou sabendo que a empresa onde trabalhara receberia alguns bilhões de investimento e isso faria com que o padrão de acesso fosse alterado drasticamente.

Amy sabia de suas limitações – era pequena para tal demanda.

img


Amy era muito estudiosa e manjava dos paranauês – logo colocou-se a pensar numa solução.

Com a expansão da empresa, o padrão de acessos seria diferente. A demanda por escrita seria intensa e constante. Entretanto, a demanda por leitura seria sazonalmente intensa.


Amy sabia que para escrita é muito complicado escalar um banco relacional horizontalmente (adicionar novos nós); sabia que teria que escalar verticalmente para poder atender a alta demanda de escrita.

Começou a malhar loucamente para crescer e ganhar mais CPU, Memória, Disco.

img


Amy – que agora era Maromba – ainda precisava resolver a questão da sazonalidade das leituras intensas.


Amy Maromba sabia que, ao contrário da escrita, para leitura era possível adicionar nós conforme necessário para distribuir a carga. Ela sabia que poderia escalar horizontalmente para leitura, pois existem mecanismos de sincronização de dados para as instâncias!

img


Além do mais, Amy sabia da necessidade de segregar as conexões que seriam para leitura e para escrita. Um load balancer talvez fosse uma boa solução – pensou.


Depois de pronta a solução, Amy olhou orgulhosa para seu trabalho – ela sabia que tinha resolvido o problema que o crescimento traria.

img


Essa thread foi inspirada numa entrevista que fiz anos atrás em que uma das perguntas foi "Como você escalaria um banco de dados relacional?" Respondi seco "Verticalmente!". Senti que alguma coisa estava errada em minha resposta. Ela estava apenas meio certa.


Gostaria de agradecer imensamente a
@_amyport por ter topado pagar esse mico e pelas ideias! Segue ela também.

E você dá um abraço aqui por ter lido tudo! 🤗

Discussion (0)