[System Design/ OS]Part#1:System Design/OS (DevOps/SRE) Resources Collection
Below are my collection of resources to learn about system design/operating systems related concepts. As I continue on my journey of learning new things, I will keep on adding to this list ! :) Happy Learning !!
p.s. I have created a new post dedicated to “Databases related notes w.r.t system design” — https://svalaks.medium.com/system-design-my-notes-on-database-pros-and-cons-will-keep-updating-151e7be74c4b
IMPORTANT IMAGE TO REMEMBER !! ==>
Practice the below conversion for “Back of envelope estimation”:
Videos upload/play :
(1) https://www.youtube.com/watch?v=aFLU6T15seY&t=327s
(2) https://www.youtube.com/watch?v=IlFmBbeKRXQ&list=PLeqAcoTy5741TeOwbHlOGo3ksABIx5rg-&index=3
(3) https://www.youtube.com/watch?v=7hZXBrI2TjY
Linux Internals:
(1) Paging and Swapping : http://www.learnlinux.org.za/courses/build/internals/ch05s03.html
(2) What happens when you boot your computer?
https://www.youtube.com/watch?v=7D4qiFIosWk
Facebook Timeline:
http://highscalability.com/blog/2012/1/23/facebook-timeline-brought-to-you-by-the-power-of-denormaliza.html
Scale at Facebook:
https://www.infoq.com/presentations/Scale-at-Facebook/
Realtime map-matching algorithm used by Lift:
https://eng.lyft.com/a-new-real-time-map-matching-algorithm-at-lyft-da593ab7b006
Distributed Rate-Limiting Algorithms:
https://medium.com/criteo-engineering/distributed-rate-limiting-algorithms-a35f7e24783
Design News Feed system:
https://liuzhenglaichn.gitbook.io/system-design/news-feed/design-a-news-feed-system
How Facebook configures its millions of servers every day:
https://engineering.fb.com/2018/07/19/data-infrastructure/location-aware-distribution-configuring-servers-at-scale/
System Design:
Building your own price tracking engine => https://aakashgoel.com/a-guide-to-building-your-own-price-tracking-engine-65b2db4b47c7
Database choices:
Relational database
- many-to-many relationships
- data and data relationships need to strictly follow schema
- consistent transactions are important
- hard to scale because relationships are hard to partition effectively
Graph database
- many-to-many relationships (graph structure)
- fast at following graph edges
- suited to complex network analytics
- less mature technology than Relational
Document store
- isolated documents
- retrieve by a key
- documents with different schemas that are easy to update
- easy to scale
Key-value store / object store
- opaque values
- no schema or relationships known to the database
- very simple operations
- easy to scale
Column-family database
- groups related columns for storage (easy to scale)
- memory effective for sparse data
Search engine database
- large amounts of unstructured data
- full text search or fuzzy search service
Time series database
- data is ordered by time
- many data streams
- real time entry ordering functionality