随笔分类 -  设计理念

摘要:分布式系统的麻烦 在分布式系统中,我们不再处于理想化的系统模型中,我们别无选择,只能面对现实世界的混乱现实。在分布式系统中,尽管系统的其他部分工作正常,但系统的某些部分可能会以某种不可预知的方式被破坏。这被称为部分失效。 关于如何构建大型计算系统有一系列的哲学: 规模的一端是高性能计算(HPC)领域 阅读全文
posted @ 2020-05-20 22:23 Ryan_W 阅读(126) 评论(0) 推荐(0)
摘要:分片 每个分区都是自己的小型数据库,尽管数据库可能支持同时进行多个分区的操作。分区主要是为了可扩展性。不同的分区可以放在不共享集群中的不同节点上。因此,大数据集可以分布在多个磁盘上,并且查询负载可以分布在多个处理器上。 分区目标是将数据和查询负载均匀分布在各个节点上。如果分区是不公平的,一些分区比其 阅读全文
posted @ 2020-02-15 22:59 Ryan_W 阅读(160) 评论(0) 推荐(0)
摘要:复制 复制意味着在通过网络连接的多台机器上保留相同数据的副本。复制的困难之处在于处理复制数据的变更。我们将 讨论三种流行的变更复制算法:单领导者,多领导者和无领导者。几乎所有分布式数据库都使用这三种方法之一。 主从结构 存储数据库副本的每个节点称为副本。当存在多个副本时,会不可避免的出现一个问题:如 阅读全文
posted @ 2020-02-13 23:48 Ryan_W 阅读(194) 评论(0) 推荐(0)
摘要:编码与演化 对于服务端(server side)应用程序,可能需要执行滚动升级 ,一次将新版本部署到少数几个节点,检查新版本是否运行正常,然后逐渐部完所有的节点。这样无需中断服务即可部署新版本,为频繁发布提供了可行性,从而带来更好的可演化性。 对于客户端(client side)应用程序,升不升级就 阅读全文
posted @ 2020-02-03 14:44 Ryan_W 阅读(237) 评论(0) 推荐(0)
摘要:存储与检索 数据库如何存储我们提供的数据,以及如何在我们需要时重新找到数据。 日志结构的存储引擎 可以实现一个简单的数据库,这个数据库只在结尾不断加入数据,在查询的时候返回从结尾找到的第一条数据,这样的数据库成为仅追加式的数据库,也即日志模式。 为了高效查找数据库中特定键的值,我们需要一个数据结构: 阅读全文
posted @ 2020-01-30 13:54 Ryan_W 阅读(197) 评论(0) 推荐(0)
摘要:数据模型与查询语言 多数应用使用层层叠加的数据模型构建。对于每层数据模型的关键问题是:它是如何用低一层数据模型来表示的?例如: 1. 作为一名应用开发人员,你观察现实世界(里面有人员,组织,货物,行为,资金流向,传感器等),并采用对象或数据结构,以及操控那些数据结构的API来进行建模。那些结构通常是 阅读全文
posted @ 2020-01-29 16:12 Ryan_W 阅读(225) 评论(0) 推荐(0)
摘要:数据密集型应用特点 需求 存储数据,以便自己或其他应用程序之后能再次找到——数据库 记住开销昂贵操作的结果,加快读取速度——缓存 允许用户按关键字搜索数据,或以各种方式对数据进行过滤——搜索索引 向其他进程发送消息,进行异步处理——流处理 定期处理累积的大批量数据——批处理 关于数据系统的思考 数据 阅读全文
posted @ 2020-01-29 10:10 Ryan_W 阅读(550) 评论(0) 推荐(0)