Designing Data-Intensive Applications
Title: Designing Data-Intensive Applications
Author: Martin Kleppmann
Publication date: March 2017
Print length: 616 pages
Author: Martin Kleppmann
Publication date: March 2017
Print length: 616 pages
Chapter 1
Thinking About Data Systems
- There are datastores that are also used as message queues (Redis), and there are message queues with database-like durability guarantees (Apache Kafka). The boundaries between the databases, queues, caches, etc. are becoming blurred
- Increasingly many applications now have such demanding requirements that a single tool can no longer meet all of its data processing and storage needs. Instead, the work is broken down into tasks that can be performed efficiently on a single tool, and those different tools are stitched together using application code.
- If you are designing a data system or service, a lot of tricky questions arise. How do you ensure that the data remains correct and complete, even when things go wrong internally? How do you provide consistently good performance to clients, even when parts of your system are degraded? How do you scale to handle an increase in load? What does a good API for the service look like?
- Reliability roughly means "continuing to work correctly, even when things go wrong."
- systems that anticipate faults and can cope with them are called fault-tolerant or resilient.
- fault is not the same as a failure. A fault is usually defined as one component of the system deviating from its spec, whereas a failure is when the system as a whole stops providing the required service to the user
- it can make sense to increase the rate of faults by triggering them deliberately. by deliberately inducing faults, you ensure that the fault-tolerance machinery is continually exercised and tested
- Scalability is the term we use to describe a system’s ability to cope with increased load
- Defining load on your system by determining an appropriate load parameter for your data systems is key
- When measuring performance, averages are not a good metric. It is better to use percentiles of 95 or higher. This will allow you to determine the outliers in your measurement.
Now that we have discussed the parameters for describing load and metrics
https://learning-oreilly-com.dclibrary.idm.oclc.org/library/view/designing-data-intensive-applications/9781491903063/ch01.html
Comments
Post a Comment