Op werkdagen voor 23:00 besteld, morgen in huis Gratis verzending vanaf €20

Designing Data–Intensive Applications

Paperback Engels 2017
Verkooppositie 1254
Verwachte levertijd ongeveer 8 werkdagen

Samenvatting

Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?

In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications.

- Peer under the hood of the systems you already use, and learn how to use and operate them more effectively
- Make informed decisions by identifying the strengths and weaknesses of different tools
- Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity
- Understand the distributed systems research upon which modern databases are built
- Peek behind the scenes of major online services, and learn from their architectures

Specificaties

ISBN13:9781449373320
Taal:Engels
Bindwijze:paperback
Uitgever:O'Reilly
Druk:1

Lezersrecensies

Wees de eerste die een lezersrecensie schrijft!

Geef uw waardering

Zeer goed Goed Voldoende Matig Slecht

Over Martin Kleppmann

Martin is a researcher in distributed systems at the University of Cambridge. Previously he was a software engineer and entrepreneur at Internet companies including LinkedIn and Rapportive, where he worked on large-scale data infrastructure. In the process he learned a few things the hard way, and he hopes this book will save you from repeating the same mistakes. Martin is a regular conference speaker, blogger, and open source contributor. He believes that profound technical ideas should be accessible to everyone, and that deeper understanding will help us develop better software.

Andere boeken door Martin Kleppmann

Inhoudsopgave

Preface

Part 1: Foundations of Data Systems
1. Reliable, Scalable, and Maintainable Applications
Thinking About Data Systems
Reliability
Scalability
Maintainability
Summary

2. Data Models and Query Languages
Relational Model Versus Document Model
Query Languages for Data
Graph-Like Data Models
Summary

3. Storage and Retrieval
Data Structures That Power Your Database
Transaction Processing or Analytics?
Column-Oriented Storage
Summary

4. Encoding and Evolution
Formats for Encoding Data
Modes of Dataflow
Summary

Part 2: Distributed Data
5. Replication
Leaders and Followers
Problems with Replication Lag
Multi-Leader Replication
Leaderless Replication
Summary

6. Partitioning
Partitioning and Replication
Partitioning of Key-Value Data
Partitioning and Secondary Indexes
Rebalancing Partitions
Request Routing
Summary

7. Transactions
The Slippery Concept of a Transaction
Weak Isolation Levels
Serializability
Summary

8. The Trouble with Distributed Systems
Faults and Partial Failures
Unreliable Networks
Unreliable Clocks
Knowledge, Truth, and Lies
Summary

9. Consistency and Consensus
Consistency Guarantees
Linearizability
Ordering Guarantees
Distributed Transactions and Consensus
Summary

Part 3: Derived Data
10. Batch Processing
Batch Processing with Unix Tools
MapReduce and Distributed Filesystems
Beyond MapReduce
Summary

11. Stream Processing
Transmitting Event Streams
Databases and Streams
Processing Streams

Part 4: Summary
12. The Future of Data Systems
Data Integration
Unbundling Databases
Aiming for Correctness
Doing the Right Thing
Summary

Index

Managementboek TOP 5

Rubrieken

Populaire producten

    Personen

      Trefwoorden

        Designing Data–Intensive Applications