Ask HN: Learning about distributed systems?
1–10 of 23 posts
Re: Ask HN: Learning about distributed systems?
#2Re: Ask HN: Learning about distributed systems?
#3I kept asking myself, what would happen if I were to extend on the feature currently presented in the chapter I was reading, only to find out my answers in the next chapter.
Brilliant book
Re: Ask HN: Learning about distributed systems?
#4The book “Designing Data-Intensive Applications” by Martin Kleppman is a fantastic read with such a concise train of thought. It builds up from basics, adds another thing, and another thing. I kept asking myself, what would happen if I were to extend on the feature currently presented in the chapter I was reading, only to find out my answers in the next chapter. Brilliant book
Not only is the main content great, but the references are numerous and open up entirely new sets of material as you progress.
Re: Ask HN: Learning about distributed systems?
#5* The Morning Paper blog's distributed systems tag [2] has a lot of good summaries of research on distributed systems, both from academia and industry.
* I maintain a list of assorted resources on distributed system design and operations on GitHub. [3]
* Also, as mentioned, Designing Data-Intensive Applications is a good starting place.
[1] https://github.com/donnemartin/system-design-primer
[2] https://blog.acolyer.org/tag/distributed-systems/
[3] https://github.com/DylanSp/distributed-systems-resources
Re: Ask HN: Learning about distributed systems?
#6> Bulk Synchronous Parallel: https://en.wikipedia.org/wiki/Bulk_synchronous_parallel .
Many/most (?) distributed systems can be described in terms of BSP primitives.
> Paxos: https://en.wikipedia.org/wiki/Paxos_(computer_science) .
> Raft: https://en.wikipedia.org/wiki/Raft_(computer_science) #Safety
> CAP theorem: https://en.wikipedia.org/wiki/CAP_theorem .
Papers-we-love > Distributed Systems: https://github.com/papers-we-love/papers-we-love/tree/master...
awesome-distributed-systems also has many links to theory: https://github.com/theanalyst/awesome-distributed-systems
- Byzantine fault: https://en.wikipedia.org/wiki/Byzantine_fault :
> A [Byzantine fault] is a condition of a computer system, particularly distributed computing systems, where components may fail and there is imperfect information on whether a component has failed. The term takes its name from an allegory, the "Byzantine Generals Problem",[2] developed to describe a situation in which, in order to avoid catastrophic failure of the system, the system's actors must agree on a concerted strategy, but some of these actors are unreliable.
awesome-bigdata lists a number of tools: https://github.com/onurakpolat/awesome-bigdata
Practically, dask.distributed (joblib -> SLURM,), dask ML, dask-labextension (a JupyterLab extension for dask), and the Rapids.ai tools (e.g. cuDF) scale from one to many nodes.
Re: Ask HN: Learning about distributed systems?
#7https://aws.amazon.com/builders-library/?cards-body.sort-by=...
Re: Ask HN: Learning about distributed systems?
#8The book “Designing Data-Intensive Applications” by Martin Kleppman is a fantastic read with such a concise train of thought. It builds up from basics, adds another thing, and another thing. I kept asking myself, what would happen if I were to extend on the feature currently presented in the chapter I was reading, only to find out my answers in the next chapter. Brilliant book
This was truly one of the greatest, if not the greatest, book on software that I have ever read. I have read it twice at this point and fully intend to read it many more times. It is packed full of incredibly interesting information and written in a way that keeps you interested. Not only is the main content great, but the references are numerous and open up entirely new sets of material as you progress.
I struggled with blog posts on raft, Byzantine fault tolerance, CAP theorem, transactions, serializable, and this book was my enlightenment
Re: Ask HN: Learning about distributed systems?
#9The book “Designing Data-Intensive Applications” by Martin Kleppman is a fantastic read with such a concise train of thought. It builds up from basics, adds another thing, and another thing. I kept asking myself, what would happen if I were to extend on the feature currently presented in the chapter I was reading, only to find out my answers in the next chapter. Brilliant book