在上一篇的笔记之中,我们讨论了数据模型和查询语言。在第三章之中我们来聊一聊不同的数据引擎内部是如何实现存储和检索的,以及不同设计之间的折中与妥协。 1.键值对数据库 键值对数据库是数据库形式之中最简单的一种模式,我们可以把它简化的实现为下面两个函数: 底层存储格式也十分简单:一个 ...
数据模型是开发软件的最重要的部分,因为它们对应用程序有着深远的影响:不仅是软件的编写方式,而且也影响我们如何解决的问题的方式。第二篇读书笔记,我们聊一聊数据模型的设计。 .数据模型的分层 作为一个开发者来说,在一个复杂的应用程序中,是存在很多分层模型的,但基本思想还是一样的:每一层都提供了一个干净的数据模型,从而隐藏了底层的复杂性。通过这样的抽象来允许不同的人群有效地协同工作。 每个数据模型都包 ...
2017-12-20 11:05 0 1413 推荐指数:
在上一篇的笔记之中,我们讨论了数据模型和查询语言。在第三章之中我们来聊一聊不同的数据引擎内部是如何实现存储和检索的,以及不同设计之间的折中与妥协。 1.键值对数据库 键值对数据库是数据库形式之中最简单的一种模式,我们可以把它简化的实现为下面两个函数: 底层存储格式也十分简单:一个 ...
坦白说也是机缘巧合,在硕士生阶段进入分布式系统领域学习。无论是大规模存储或计算,其核心也是运用分布式技术利用并行性来解决数据密集型应用的需求。最近开始在啃这本《Designing Data-Intensive Applications》大部头,作者Martin Kleppmann在分布式数据 ...
上一篇聊了聊批处理的缺点,对于无界数据来说,流处理会是更好的选择,“流”指的是随着时间的推移逐步增加的数据。消息队列可以将这些流组织起来,快速的在应用程序中给予反馈。但是消息队列与传统的数据库之间又存在着“剪不断,理还乱”的“纠葛”,最后我们将探讨通过消息队列之中与时序有关的一些问题 ...
之前的文章大量的内容在和大家探讨分布式存储,接下来的章节进入了分布式计算领域。坦白说,个人之前专业的重心侧重于存储,对许多计算的内容理解可能不是和确切,如果文章中的理解有所不妥,愿虚心赐教。本篇将和大家聊一聊分布式计算的一个子集:批处理。 批处理系统通常也叫脱机系统,需要大量的输入数据 ...
下面是这本书序言中的大部分内容,本人的英文水平有限,有理解不到位的地方还请大家指教,这算是自己对这本书的读书笔记和总结。 数据是当今系统设计中许多挑战的中心,一些难以解决的问题如系统的可扩展性,一致性,可靠性,有效性和可维护性等需要弄清楚。 另外,面对这些琳琅满目的工具包括关系型数据 ...
基于分布式系统的线性一致性。 1.更强的一致性 大多数分布式数据库至少提供了最终一致性,这意味着如果停止对 ...
相对于读书笔记,本文更像是一篇阅读大纲,在初步阅读本书后,尚有许多疑难,借用此大纲,以后温故而知新 DDIA讲了什么 什么是data-intensive 原文这样定义 Data-intensive applications are pushing the boundaries ...
什么叫不同分布的数据 举几个例子来说明 例子1,要训练一个手机端的猫识别器,现在有 10000 张手机端的照片,并且被人为标记为是不是猫,然后我们可以从互联网上得到 200000 张猫咪图片,网络上的照片和移动手机端的照片就属于不同分布; 例子2,要训练一个语音识别系统,将某个地址转换成 ...