Carlos Aguni

Highly motivated self-taught IT analyst. Always learning and ready to explore new skills. An eternal apprentice.


Distributed Systems Study

28 May 2022 »

bytebytego

https://www.linkedin.com/posts/alexxubyte_systemdesign-thankyou-coding-activity-6974745458795503616-lLXD?utm_source=share&utm_medium=member_desktop

https://www.youtube.com/c/ByteByteGo

Algorithms you should know before

https://blog.bytebytego.com/p/algorithms-you-should-know-before

Redis Explained

https://architecturenotes.co/redis/

Fallacies of Distributed Systems

https://architecturenotes.co/fallacies-of-distributed-systems/

Lesson 124 - Challenges of Distributed Architectures

Orchestration vs Choreography

https://stackoverflow.com/questions/4127241/orchestration-vs-choreography#:~:text=The%20choreography%20describes%20the%20interactions,the%20services%20involved%20should%20reside.

orchestration

choreography

Distributed Systems for Practitioners

https://www.educative.io/courses/distributed-systems-practitioners

L16: The CAP Theorem

Linksey Kuper courses

https://www.youtube.com/user/lindseykuper

linkedin

https://www.linkedin.com/posts/jlbernardes_datastore-databaseengineer-cassandra-activity-6930326794768117760-v-dj?utm_source=linkedin_share&utm_medium=member_desktop_web

Um degrau a menos, escadaria ainda longa… Então bora aquecer os cambitos!

MongoDB e Cassandra, duas engines completamente diferentes, em que a única coisa que havia em comum pra mim a 8 meses atrás é que eu PRECISAVA assimilar conhecimento a respeito. Graças a esse maravilhoso material consegui concluir o objetivo de entender e conhecer essa tecnologia. Quem sabe em breve haja janela no cronograma de estudos pra uma certificação.

O povo modernoso classifica esse banco como wide-column store (rapaz, e eu pensava que eu que era bom de inventar nomes para as coisas), os caras até chamavam as tabelas de column family nas primeiras versões. Coisa fina, luxo!

Mas não só de nomes e classificações bonitas que estamos falando, é uma arquitetura absolutamente elegante e disrruptiva: Esse carinha entrega um datastore distribuído de larga escala, altamente disponível e escalável, e “ocasionalmente consistente” (não se assuste, quem já leu sabe do que se trata, e que é muito mais consistente que certos xlsMS, digo, RDBMS).

Os caras tiveram a audácia de jogar no mesmo balde conceitos acadêmicos como:

  • O phi acrual failure detector, de 2006, publicado no instituto de ciência e tecnologia do Japão;
  • As Merkle Trees, coisa fina criada no longínquo século XX, esse daqui se não me engano foi usado nas implementações iniciais do ZFS, e até hoje nos blockchain da vida;
  • E ainda uma implementação de protocolo de gossip (ou epidemic protocol), coisa que quem fez uma cadeira de Sistemas Distribuídos sabe qual é, cujo objetivo é similar ao do ONS no Grid, mas tendo as semelhanças cessando por aí…

Estudar o pouco de Cassandra que estudei, me permitiu ver mais além, e perceber que soluções clássicas são sim estáveis e seguras, mas será mesmo que são as mais adequadas pra cada requisito de negócio? Baita banco! Baita solução!

Similarities and differences of Spark, Dask, and Ray by Holden Karau

Holden Karau

What will be covered?

  • What are distributed systems
  • What are data parallel distributed systems
  • How are they different
  • What are some common parts of data parallel distributed systems
  • tl;dr - We’ve made some bad choices historically, but not all is lost

What are distributed systems?

A distributed systems in one in which the failure of a computer you didn’t even know existed can render your own computer unusable.

https://amturing.acm.org/award_winners/lamport_1205376.cfm

What are some of the core building blocks?

  • Distributed Locks
  • Distributed Clocks
  • Distributed Counters

What are some classes of distributed system problems?

  • File Storage Systems
    • Think HDFS, S3, Minio, etc.
  • “Embarrassingly Parallel”
    • Think Folding @ home, minimal/no coordination
  • Databases
    • Multiple clients, etc
  • API servers
    • Multiple clients, etc
  • Data parallel
    • Dask, Spark, etc.