随笔分类 -  设计数据密集型应用

第九章:一致性与共识
摘要:分布式系统最重要的抽象之一就是共识(consensus):就是让所有的节点对某件事达成一致。 如果两个节点都认为自己是领导者,这种情况被称为脑裂(split brain),且经常导致数据丢失。正确实现共识有助于避免这种问题。 一致性保证 不一致性是暂时的,最终会自行解决。最终一致性的一个更好的名字可 阅读全文

posted @ 2023-09-03 11:49 Mr.Tan& 阅读(118) 评论(0) 推荐(0) 编辑

第九章:一致性与共识
摘要:分布式系统最重要的抽象之一就是共识(consensus):就是让所有的节点对某件事达成一致。 如果两个节点都认为自己是领导者,这种情况被称为脑裂(split brain),且经常导致数据丢失。正确实现共识有助于避免这种问题。 一致性保证 不一致性是暂时的,最终会自行解决。最终一致性的一个更好的名字可 阅读全文

posted @ 2023-08-11 23:31 Mr.Tan& 阅读(87) 评论(0) 推荐(0) 编辑

第八章:分布式系统的麻烦
摘要:故障与部分失效 如果发生内部错误,我们宁愿电脑完全崩溃,而不是返回错误的结果,因为错误的结果很难处理。因为计算机隐藏了模糊不清的物理实现,并呈现出一个理想化的系统模型,并以数学一样的完美的方式运作。 在分布式系统中,尽管系统的其他部分工作正常,但系统的某些部分可能会以某种不可预知的方式被破坏。这被称 阅读全文

posted @ 2023-08-04 23:08 Mr.Tan& 阅读(102) 评论(0) 推荐(0) 编辑

第七章:事务
摘要:事务是应用程序将多个读写操作组合成一个逻辑单元的一种方式。从概念上讲,事务中的所有读写操作被视作单个操作来执行:整个事务要么成功(提交(commit))要么失败(中止(abort),回滚(rollback))。 事务是为了简化应用编程模型而创建的。通过使用事务,应用程序可以自由地忽略某些潜在的错误情 阅读全文

posted @ 2023-07-29 21:05 Mr.Tan& 阅读(74) 评论(0) 推荐(0) 编辑

第六章:分区
摘要:对于非常大的数据集,或非常高的吞吐量,仅仅进行复制是不够的:我们需要将数据进行分区(partitions),也称为分片(sharding)。 分区(partition),在MongoDB,Elasticsearch和Solr Cloud中被称为分片(shard),在HBase中称之为区域(Regio 阅读全文

posted @ 2023-06-02 23:36 Mr.Tan& 阅读(71) 评论(0) 推荐(0) 编辑

第五章:复制
摘要:如果复制中的数据不会随时间而改变,那复制就很简单:将数据复制到每个节点一次就万事大吉。复制的困难之处在于处理复制数据的变更(change)。 三种变更复制算法:单领导者(single leader),多领导者(multi leader)和无领导者(leaderless)。 领导者与追随者 存储数据库 阅读全文

posted @ 2023-05-27 22:48 Mr.Tan& 阅读(70) 评论(0) 推荐(0) 编辑

第四章:编码与演化
摘要:在大多数情况下,修改应用程序的功能也意味着需要更改其存储的数据:可能需要使用新的字段或记录类型,或者以新方式展示现有数据。 关系数据库通常假定数据库中的所有数据都遵循一个模式:尽管可以更改该模式(通过模式迁移,即ALTER语句),但是在任何时间点都有且仅有一个正确的模式。相比之下,读时模式(sche 阅读全文

posted @ 2023-05-20 22:04 Mr.Tan& 阅读(73) 评论(0) 推荐(0) 编辑

第三章:存储与检索
摘要:当你把数据交给数据库时,它应当把数据存储起来;而后当你向数据库要数据时,它应当把数据返回给你。 驱动数据库的数据结构 我们可以简单的使用键值实现存储功能,然后保存在文本中。 底层的存储格式非常简单:一个文本文件,每行包含一条逗号分隔的键值对,文件尾部追加写入将有很好的性能。 许多数据库在内部使用了日 阅读全文

posted @ 2023-05-19 17:08 Mr.Tan& 阅读(119) 评论(0) 推荐(0) 编辑

第二章:数据模型与查询语言
摘要:数据模型可能是软件开发中最重要的部分,它不仅仅影响着软件的编写方式,而且影响着我们的解题思路。 一个复杂的应用程序可能会有更多的中间层次,每个层都通过提供一个明确的数据模型来隐藏更低层次中的复杂性。 关系模型与文档模型 最著名的数据模型可能是SQL。它基于Edgar Codd在1970年提出的关系模 阅读全文

posted @ 2023-05-18 16:13 Mr.Tan& 阅读(85) 评论(0) 推荐(0) 编辑

第一章:可靠性,可扩展性,可维护性
摘要:现今很多应用程序都是 数据密集型(data-intensive) 的,而非 计算密集型(compute-intensive) 的。 数据密集型应用标准组件: 存储数据,以便自己或其他应用程序之后能再次找到 (数据库(database)) 记住开销昂贵操作的结果,加快读取速度(缓存(cache)) 允 阅读全文

posted @ 2023-05-17 10:16 Mr.Tan& 阅读(281) 评论(0) 推荐(0) 编辑

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示