设计数据密集型应用(影印版)

Martin Kleppmann

出版时间

2017-10-01

ISBN

9787564173852

评分

★★★★★
书籍介绍
这本书最打动人的,是它把分布式系统从'黑箱'拆解成可以理性权衡的决策。它不教你某个具体数据库的用法,而是帮你建立一套判断框架:当一致性、可伸缩性、容错性三者发生冲突时,该如何取舍。读者反复提到的,正是这种'豁然开朗'——教科书里晦涩甚至错误的概念,在这里被讲清楚了。它适合所有与数据打交道的后端开发者:无论你是做存储、复制、分片,还是批处理与流处理,都能从中串起零散的知识点。唯一需要注意的是,书中专有名词密集、解释浅尝辄止,它更像一张俯瞰全图的地标索引,真正的金矿藏在参考文献里,值得反复二刷。
作者简介
Martin Kleppmann,是英国剑桥大学的一名分布式系统研究员。在此之前他曾是软件工程师和企业家,在 Linkedin 和 Rapportive 工作过,从事大规模数据基础设施相关的工作。Martin 经常在大会做演讲,写博客,也是开源贡献者。
AI导读
核心看点
  • 深入剖析分布式系统核心概念
  • 权衡一致性、伸缩性与容错性
  • 解析主流在线服务幕后架构
读者共识
  • 体系化梳理,见解独到深刻
  • 深入浅出,比教科书更易懂
  • 经典之作,值得反复研读
精彩摘录
  • "UDP is a good choice in situations where delayed data is worthless. For example, in a VoIP phone call, there probably isn’t enough time to retransmit a lost packet before its data is due to be played over the loudspeakers. In this case, there’s no point in retransmitting the packet—the application m"
  • "For data warehouse queries that need to scan over millions of rows, a big bottleneck is the bandwidth for getting data from disk into memory. However, that is not the only bottleneck. Developers of analytical databases also worry about efficiently using the bandwidth from main memory into the CPU ca"
  • "Sending a packet over a network or making a request to a network service is normally a transient operation that leaves no permanent trace. Although it is possible to record it permanently (using packet capture and logging), we normally don’t think of it that way. Even message brokers that durably wr"
  • "SSI is fairly new: it was first described in 2008 [40] and is the subject of Michael Cahill's PhD thesis. ... it has the possibility of being fast enough to become the enw default in the future."
  • "Detecting writes that affect prior reads (the write occurs after the read)."
  • "In the context of two-phased locking we discussed index-range locks. .. Wee can use a similar technique here, except that SSI don't block other transactions. When a transaction writes to the database, it must look in the indexes for any other transactions that have recently read the affected data. T"
  • "In practice, isolation is unfortunately not that simple. Serializable isolation has a performance cost, and many databases don’t want to pay that price. It’s therefore common for systems to use weaker levels of isolation, which protect against some concurrency issues, but not all. Those levels of is"
  • "One thing that document and graph databases have in common is that they typically don't enforce a schema for the data they store, which can make it easier to adapt applications to changing requirements. However, your application most likely still assumes that data has a certain structure; it's just "
用户评论
真是又一本搞技术的必读书啊,还需实践和再读
真是一本好书,分析问题,解决问题,理论联系实践。有时间要二刷。PS:最后一章最后一节比一般技术书籍真是不知道要高到哪里去。 2019.12.2 二刷完毕,感觉依然那么棒!
条理、逻辑、语言都极度舒服,尤其是每一章都引用了非常多的参考文献,这些参考文献大多数都值得一读。算是分布式系统工程概述性方面写得最好的书籍!
非常好的综述,把数据库、分布式系统、消息中间件、存储系统等都放在一起,比较说明各自的特点和相通之处,非常有启发。
干活能用上的那点东西这本书里基本都能找到
讲的很系统,虽然不是专业做数据系统的,但是一些设计思想,以及数据库的一些原理还是很受用
简明扼要的讲述目前分布式以及高可用等相关设计基于的设计,推荐一看。
屠龙刀
好书,后端开发者都可以读一下,最后一章最后一节升华了主题
极大拓宽了我的眼界,包括 - 如何写一个关系系统 - 通信协议是咋回事、何种数据格式占用字节更少 - 数据库索引的奥秘 - NoSQL 是简化的 Relational DB - 数据表 partition、replication 算法 - 如何保证一致性 - 流计算 已经读了 3 遍,仍常读常新,有空在啃书中参考文献资料
下载
收藏