Designing data-intensive applications: the big ideas behind reliable, scalable, and maintainable systems
Saved in:
Main Author: | |
---|---|
Format: | Book |
Language: | English |
Published: |
Beijing ; Boston ; Farnham ; Sebastopol ; Tokyo
O'Reilly
March 2017
|
Edition: | First edition |
Subjects: | |
Links: | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028633181&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
Item Description: | Hier auch später erschienene, unveränderte Nachdrucke |
Physical Description: | xix, 590 Seiten Illustrationen, Diagramme |
ISBN: | 9781449373320 |
Staff View
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV043210024 | ||
003 | DE-604 | ||
005 | 20200428 | ||
007 | t| | ||
008 | 151215s2017 xx a||| |||| 00||| eng d | ||
020 | |a 9781449373320 |c pbk. |9 978-1-449-37332-0 | ||
035 | |a (OCoLC)984361710 | ||
035 | |a (DE-599)BVBBV043210024 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
049 | |a DE-898 |a DE-92 |a DE-83 |a DE-11 |a DE-703 |a DE-523 |a DE-91G |a DE-573 |a DE-1050 |a DE-384 |a DE-M347 |a DE-20 |a DE-2174 |a DE-2070s |a DE-12 |a DE-739 |a DE-29T |a DE-355 | ||
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a ST 252 |0 (DE-625)143627: |2 rvk | ||
084 | |a ST 265 |0 (DE-625)143634: |2 rvk | ||
084 | |a ST 530 |0 (DE-625)143679: |2 rvk | ||
084 | |a DAT 310f |2 stub | ||
084 | |a DAT 620f |2 stub | ||
100 | 1 | |a Kleppmann, Martin |e Verfasser |0 (DE-588)1133517382 |4 aut | |
245 | 1 | 0 | |a Designing data-intensive applications |b the big ideas behind reliable, scalable, and maintainable systems |c Martin Kleppmann |
250 | |a First edition | ||
264 | 1 | |a Beijing ; Boston ; Farnham ; Sebastopol ; Tokyo |b O'Reilly |c March 2017 | |
300 | |a xix, 590 Seiten |b Illustrationen, Diagramme | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
500 | |a Hier auch später erschienene, unveränderte Nachdrucke | ||
650 | 0 | 7 | |a Datenstruktur |0 (DE-588)4011146-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Softwareentwicklung |0 (DE-588)4116522-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Datenbanksystem |0 (DE-588)4113276-2 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Big Data |0 (DE-588)4802620-7 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Skalierbarkeit |0 (DE-588)4520890-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Informatik |0 (DE-588)4026894-9 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Softwareentwicklung |0 (DE-588)4116522-6 |D s |
689 | 0 | 1 | |a Big Data |0 (DE-588)4802620-7 |D s |
689 | 0 | 2 | |a Informatik |0 (DE-588)4026894-9 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Datenstruktur |0 (DE-588)4011146-5 |D s |
689 | 1 | 1 | |a Datenbanksystem |0 (DE-588)4113276-2 |D s |
689 | 1 | 2 | |a Skalierbarkeit |0 (DE-588)4520890-6 |D s |
689 | 1 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Passau - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028633181&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-028633181 |
Record in the Search Index
DE-BY-OTHR_call_number | F 03/ST 252 K64 F 35/ST 252 K64 |
---|---|
DE-BY-OTHR_katkey | 5709361 |
DE-BY-OTHR_location | 02 |
DE-BY-OTHR_media_number | 067004054578 067004054681 067004055115 067004012761 067004012658 067004055002 |
DE-BY-TUM_call_number | 0102 DAT 620f 2017 A 5096 |
DE-BY-TUM_katkey | 2290424 |
DE-BY-TUM_location | 01 |
DE-BY-TUM_media_number | 040008168209 |
_version_ | 1831257048346525696 |
adam_text | Table of Contents Preface..................................................................................................... xiii Parti. Foundations of Data Systems 1. Reliable, Scalable, and Maintainable Applications............................................. 3 Thinking About Data Systems Reliability Hardware Faults Software Errors Human Errors How Important Is Reliability? Scalability Describing Load Describing Performance Approaches for Coping with Load Maintainability Operability: Making Life Easy for Operations Simplicity: Managing Complexity Evolvability: Making Change Easy Summary 4 б 7 8 9 10 10 11 13 17 18 19 20 21 22 2. Data Models and Query Languages............................................................... 27 Relational Model Versus Document Model The Birth of NoSQL The Object-Relational Mismatch Many-to-One and Many-to-Many Relationships Are Document Databases Repeating History? 28 29 29 33 36
Relational Versus Document Databases Today Query Languages for Data Declarative Queries on the Web MapReduce Querying Graph-Like Data Models Property Graphs The Cypher Query Language Graph Queries in SQL Triple-Stores and SPARQL The Foundation: Datalog Summary 38 42 44 46 49 50 52 53 55 60 63 3. Storage and Retrieval............................................................................... 69 Data Structures That Power Your Database Hash Indexes SSTables and LSM-Trees B-Trees Comparing В-Trees and LSM-Trees Other Indexing Structures Transaction Processing or Analytics? Data Warehousing Stars and Snowflakes: Schemas for Analytics Column-Oriented Storage Column Compression Sort Order in Column Storage Writing to Column-Oriented Storage Aggregation: Data Cubes and Materialized Views Summary 70 72 76 80 83 85 90 91 93 95 97 99 101 101 103 4. Encoding and Evolution......................................................................... 111 Formats for Encoding D ata Language-Specific Formats JSON, XML, and Binary Variants Thrift and Protocol Buffers Avrò The Merits of Schemas Modes of Dataflow Dataflow Through Databases Dataflow Through Services: REST and RPC Message-Passing Dataflow Summary viii I Table of Contents 112 113 114 117 122 127 128 129 131 136 139
Part II. Distributed Data 5. Replication......................................................................... ................ 151 Leaders and Followers Synchronous Versus Asynchronous Replication Setting Up New Followers Handling Node Outages Implementation of Replication Logs Problems with Replication Lag Reading Your Own Writes Monotonie Reads Consistent Prefix Reads Solutions for Replication Lag Multi-Leader Replication Use Cases for Multi-Leader Replication Handling Write Conflicts Multi-Leader Replication Topologies Leaderless Replication Writing to the Database When a Node Is Down Limitations of Quorum Consistency Sloppy Quorums and Hinted Handoff Detecting Concurrent Writes Summary 152 153 155 156 158 161 162 164 165 167 168 168 171 175 177 177 181 183 184 192 6. Partitioning........................................................................ ................ 199 Partitioning and Replication Partitioning of Key-Value Data Partitioning by Key Range Partitioning by Hash of Key Skewed Workloads and Relieving Hot Spots Partitioning and Secondary Indexes Partitioning Secondary Indexes by Document Partitioning Secondary Indexes by Term Rebalancing Partitions Strategies for Rebalancing Operations: Automatic or Manual Rebalancing Request Routing Parallel Query Execution Summary 200 201 202 203 205 206 206 208 209 210 213 214 216 216 7. Transactions....................................................................... ................ 221 The Slippery Concept of a Transaction 222 Table of Contents j ix
The Meaning of ACID Single-Object and Multi-Object Operations Weak Isolation Levels Read Committed Snapshot Isolation and Repeatable Read Preventing Lost Updates Write Skew and Phantoms Serializability Actual Serial Execution Two-Phase Locking (2PL) Serializable Snapshot Isolation (SSI) Summary 223 228 233 234 237 242 246 251 252 257 261 266 8. The Trouble with Distributed Systems........................................................ 273 Faults and Partial Failures Cloud Computing and Supercomputing Unreliable Networks Network Faults in Practice Detecting Faults Timeouts and Unbounded Delays Synchronous Versus Asynchronous Networks Unreliable Clocks Monotonie Versus Time-of-Day Clocks Clock Synchronization and Accuracy Relying on Synchronized Clocks Process Pauses Knowledge, Truth, and Lies The Truth Is Defined by the Majority Byzantine Faults System Model and Reality Summary 274 275 277 279 280 281 284 287 288 289 291 295 300 300 304 306 310 9. Consistency and Consensus..................................................................... 321 Consistency Guarantees Linearizability What Makes a System Linearizable? Relying on Linearizability Implementing Linearizable Systems The Cost of Linearizability Ordering Guarantees Ordering and Causality Sequence Number Ordering x j Table of Contents 322 324 325 330 332 335 339 339 343
Total Order Broadcast Distributed Transactions and Consensus Atomic Commit and Two-Phase Commit (2PC) Distributed Transactions in Practice Fault-Tolerant Consensus Membership and Coordination Services Summary Part III. 348 352 354 360 364 370 373 Derived Data 10. Batch Processing.................................................................................... 389 Batch Processing with Unix Tools Simple Log Analysis The Unix Philosophy MapReduce and Distributed Filesystems MapReduce Job Execution Reduce-Side Joins and Grouping Map-Side Joins The Output of Batch Workflows Comparing Hadoop to Distributed Databases Beyond MapReduce Materialization of Intermediate State Graphs and Iterative Processing High-Level APIs and Languages Summary 391 391 394 397 399 403 408 411 414 419 419 424 426 429 11. Stream Processing.................................................................................. 439 Transmitting Event Streams Messaging Systems Partitioned Logs Databases and Streams Keeping Systems in Sync Change Data Capture Event Sourcing State, Streams, and Immutability Processing Streams Uses of Stream Processing Reasoning About Time Stream Joins Fault Tolerance Summary 440 441 446 451 452 454 457 459 464 465 468 472 476 479 Table of Contents | xi
12. The Future of Data Systems........................................................... 489 Data Integration Combining Specialized Tools by Deriving Data Batch and Stream Processing Unbundling Databases Composing Data Storage Technologies Designing Applications Around Dataflow Observing Derived State Aiming for Correctness The End-to-End Argument for Databases Enforcing Constraints Timeliness and Integrity Trust, but Verify Doing the Right Thing Predictive Analytics Privacy and Tracking Summary 490 490 494 499 499 504 509 515 516 521 524 528 533 534 536 543 Glossary..................................................................................................... 553 Index...................................................................................................... 559 xii I Table of Contents
|
any_adam_object | 1 |
author | Kleppmann, Martin |
author_GND | (DE-588)1133517382 |
author_facet | Kleppmann, Martin |
author_role | aut |
author_sort | Kleppmann, Martin |
author_variant | m k mk |
building | Verbundindex |
bvnumber | BV043210024 |
classification_rvk | ST 230 ST 252 ST 265 ST 530 |
classification_tum | DAT 310f DAT 620f |
ctrlnum | (OCoLC)984361710 (DE-599)BVBBV043210024 |
discipline | Informatik |
edition | First edition |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02371nam a2200529 c 4500</leader><controlfield tag="001">BV043210024</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20200428 </controlfield><controlfield tag="007">t|</controlfield><controlfield tag="008">151215s2017 xx a||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781449373320</subfield><subfield code="c">pbk.</subfield><subfield code="9">978-1-449-37332-0</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)984361710</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV043210024</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-898</subfield><subfield code="a">DE-92</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-703</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-1050</subfield><subfield code="a">DE-384</subfield><subfield code="a">DE-M347</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-2174</subfield><subfield code="a">DE-2070s</subfield><subfield code="a">DE-12</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-355</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 252</subfield><subfield code="0">(DE-625)143627:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 265</subfield><subfield code="0">(DE-625)143634:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 530</subfield><subfield code="0">(DE-625)143679:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 310f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 620f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Kleppmann, Martin</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1133517382</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Designing data-intensive applications</subfield><subfield code="b">the big ideas behind reliable, scalable, and maintainable systems</subfield><subfield code="c">Martin Kleppmann</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">First edition</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Beijing ; Boston ; Farnham ; Sebastopol ; Tokyo</subfield><subfield code="b">O'Reilly</subfield><subfield code="c">March 2017</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">xix, 590 Seiten</subfield><subfield code="b">Illustrationen, Diagramme</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Hier auch später erschienene, unveränderte Nachdrucke</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Datenstruktur</subfield><subfield code="0">(DE-588)4011146-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Datenbanksystem</subfield><subfield code="0">(DE-588)4113276-2</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Big Data</subfield><subfield code="0">(DE-588)4802620-7</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Skalierbarkeit</subfield><subfield code="0">(DE-588)4520890-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Informatik</subfield><subfield code="0">(DE-588)4026894-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Big Data</subfield><subfield code="0">(DE-588)4802620-7</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">Informatik</subfield><subfield code="0">(DE-588)4026894-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Datenstruktur</subfield><subfield code="0">(DE-588)4011146-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Datenbanksystem</subfield><subfield code="0">(DE-588)4113276-2</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="2"><subfield code="a">Skalierbarkeit</subfield><subfield code="0">(DE-588)4520890-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028633181&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-028633181</subfield></datafield></record></collection> |
id | DE-604.BV043210024 |
illustrated | Illustrated |
indexdate | 2024-12-20T17:31:14Z |
institution | BVB |
isbn | 9781449373320 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-028633181 |
oclc_num | 984361710 |
open_access_boolean | |
owner | DE-898 DE-BY-UBR DE-92 DE-83 DE-11 DE-703 DE-523 DE-91G DE-BY-TUM DE-573 DE-1050 DE-384 DE-M347 DE-20 DE-2174 DE-2070s DE-12 DE-739 DE-29T DE-355 DE-BY-UBR |
owner_facet | DE-898 DE-BY-UBR DE-92 DE-83 DE-11 DE-703 DE-523 DE-91G DE-BY-TUM DE-573 DE-1050 DE-384 DE-M347 DE-20 DE-2174 DE-2070s DE-12 DE-739 DE-29T DE-355 DE-BY-UBR |
physical | xix, 590 Seiten Illustrationen, Diagramme |
publishDate | 2017 |
publishDateSearch | 2017 |
publishDateSort | 2017 |
publisher | O'Reilly |
record_format | marc |
spellingShingle | Kleppmann, Martin Designing data-intensive applications the big ideas behind reliable, scalable, and maintainable systems Datenstruktur (DE-588)4011146-5 gnd Softwareentwicklung (DE-588)4116522-6 gnd Datenbanksystem (DE-588)4113276-2 gnd Big Data (DE-588)4802620-7 gnd Skalierbarkeit (DE-588)4520890-6 gnd Informatik (DE-588)4026894-9 gnd |
subject_GND | (DE-588)4011146-5 (DE-588)4116522-6 (DE-588)4113276-2 (DE-588)4802620-7 (DE-588)4520890-6 (DE-588)4026894-9 |
title | Designing data-intensive applications the big ideas behind reliable, scalable, and maintainable systems |
title_auth | Designing data-intensive applications the big ideas behind reliable, scalable, and maintainable systems |
title_exact_search | Designing data-intensive applications the big ideas behind reliable, scalable, and maintainable systems |
title_full | Designing data-intensive applications the big ideas behind reliable, scalable, and maintainable systems Martin Kleppmann |
title_fullStr | Designing data-intensive applications the big ideas behind reliable, scalable, and maintainable systems Martin Kleppmann |
title_full_unstemmed | Designing data-intensive applications the big ideas behind reliable, scalable, and maintainable systems Martin Kleppmann |
title_short | Designing data-intensive applications |
title_sort | designing data intensive applications the big ideas behind reliable scalable and maintainable systems |
title_sub | the big ideas behind reliable, scalable, and maintainable systems |
topic | Datenstruktur (DE-588)4011146-5 gnd Softwareentwicklung (DE-588)4116522-6 gnd Datenbanksystem (DE-588)4113276-2 gnd Big Data (DE-588)4802620-7 gnd Skalierbarkeit (DE-588)4520890-6 gnd Informatik (DE-588)4026894-9 gnd |
topic_facet | Datenstruktur Softwareentwicklung Datenbanksystem Big Data Skalierbarkeit Informatik |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028633181&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT kleppmannmartin designingdataintensiveapplicationsthebigideasbehindreliablescalableandmaintainablesystems |
Table of Contents
Order paper/chapter scan
Order paper/chapter scan
Branch Library Mathematics & Informatics
Call Number: |
0102 DAT 620f 2017 A 5096
Floor plan |
---|---|
Copy 1 | Available for loan On Shelf |