flâneur — a map of the web's best reading

learning-notes/books/designing-data-intensive-applications.md at master · keyvanakbary/learning-notes

github.com · 30,511 words · saved by 1 readers

A fault is usually defined as one component of the system deviating from its spec, whereas failure is when the system as a whole stops providing the required service to the user. You should generally prefer tolerating faults over preventing faults. This is how do we cope with increased load. We need to succinctly describe the current load on the system; only then we can discuss growth questions. Twitter main operations Two ways of implementing those operations: Approach 1, systems struggle to keep up with the load of home timeline queries. So the company switched to approach 2. The average rate of published tweets is almost two orders of magnitude lower than the rate of home timeline reads. Downside of approach 2 is that posting a tweet now requires a lot of extra work. Some users have over 30 million followers. A single tweet may result in over 30 million writes to home timelines. Twitter moved to an hybrid of both approaches. Tweets continue to be fanned out to home timelines but a s

Designing Data-Intensive Applications Reliable, scalable, and maintainable applications Reliability Scalability Maintainability Data models and query language Relational model vs document model Query languages for data Graph-like data models Storage and retrieval Data structures that power up your database Transaction processing or analytics? Column-oriented storage Encoding and evolution Formats for encoding data Modes of dataflow Replication Leaders and followers Problems with replication lag Multi-leader replication Leaderless replication Partitioning Partitioning and replication Partition

Explore this link on the map →

related reading