前言

如果你是一位软件行业从业者,尤其是从事服务器端或者后台系统软件开发,相信近年来一定被层出不穷的商业名词所包围:NoSQL、Big Data、Web-scale、Sharding.Eventual consistency、ACID、CAP理论、云服务、MapReduce和Real-time等,所有这些其实都围绕着如何构建高效存储与数据处理这一核心主题。过去十年,在数据库领域与分布式系统方面涌现了许多引人瞩目的进展,由此深刻地影响了如何构建上层应用系统。

纵使软件千变万化,终有若干理念贯穿其中。无论你用的什么数据系统,如果可以掌握背后的设计理念,何种工具适用于何种场景,如何最佳使用,又有哪些陷阱(坑),诸如此类,自然会胸有成竹,而为了帮助大家完美的解决这个问题,小编在这里分享一份“数据密集型应用系统设计”手册。

本手册旨在帮助大家更好地驾驭处理数据和存储数据的相关技术。它不是针对某个特定软件的介绍手册,也不是纯理论的习题。我们会深入探讨一些成功的数据系统案例,剖析其中的技术要点;或许在很多流行的分布式系统里都有它们的身影,正是这些关键技术有效应对了许多生产环境对扩展性、性能和可靠性的苛刻要求。

内容细节

整份手册分为三大部分: 数据系统基础; 分布式数据系统;派生数据

第一部分 数据系统基础

这部分总结了适用于所有数据系统的基本思想,既包括单机运行环境,也包括分布式集群环境

  • 第1章可靠、可扩展与可维护的应用系统
  • 第2章数据模型与查询语言
  • 第3章数据存储与检索
  • 第4章数据编码与演化

第二部分 分布式数据系统

这部分我们将从单机的数据存储转向跨机器的分布式系统,这是扩展性的重要一步,但随之而来的是各种挑战。所以将依次讨论数据远程复制、数据分区以及事务。接下来的第8章包括分布式系统的更多细节,以及分布式环境如何达成一致性与共识。

  • 第5章数据复制
  • 第6章数据分区
  • 第7章事务
  • 第8章分布式系统的挑战
  • 第9章一致性与共识

第三部分 派生数据

这部分主要针对产生派生数据的系统,所谓派生数据主要指在异构系统中,如果无法用一个数据源来解决所有问题,那么一种自然的方式就是集成多个不同的数据库、缓存模块以及索引模块等。首先第10章以批处理开始来处理派生数据,紧接着第11章采用流式处理。第12章总结之前介绍的多种技术,并分析讨论未来构建可靠、可扩展和可维护应用系统可能的新方向或方法。

  • 第10章批处理系统
  • 第11章流处理系统
  • 第12章数据系统的未来

感兴趣需要获取完整内容学习的朋友,帮忙点赞关注下,【双击此次】即可获取啦