首页 > TAG信息列表 > ddia
DDIA读书笔记(一)——数据系统基础
1.1 可靠、可扩展与可维护的应用系统 数据密集型应用通常包含了这几个模块:数据库、高速缓存、索引、流式处理以及批处理。 1.1.1 认识数据系统 大多数软件系统都极为关注3个问题: 可靠性(reliability):出现意外(软硬件故障和人为失误)时仍然能够正常运转(功能正确,性能可能会降低)。 可扩《DDIA》读书笔记:事务
目录ACID读已提交快照隔离(可重复读)可串行化 本文是第七章Transaction部分的读书笔记。 这部分包括的内容为: ACID的含义 读已提交和它存在的问题 快照隔离(可重复读)和它存在的问题 可串行化的实现方法 个人感觉这部分的亮点在于对 lost update 和 Write Skew and Phantoms 的分《DDIA》读书笔记:复制(1)
目录复制的同步与异步新增follower处理节点故障复制日志的格式/实现:主从延迟对读follower的影响 本文是第五章Replication中single leader部分的读书笔记。 这部分内容讨论的问题是 以怎样的方式复制(同步 or 异步) 怎么增加新的follower follower或leader故障了怎么办 复制日志该《DDIA》读书笔记:分区
目录partition的方式二级索引rebalancingservice discovery 本文是第六章Partition的读书笔记。 这部分讨论的内容是 怎么partition,发生 热点数据/数据偏斜 的时候怎么办 partition后数据的二级索引怎么管理 rebalancing 重平衡:添加删除节点时分区怎么处理 服务发现:怎么知道自己(DDIA读书笔记)第四章:数据编码与演化
文章目录 前言一、数据编码的格式1.1 JSON,XML和二进制变体1.1.1 二进制编码 二、数据流的类型1.1 数据库中的数据流1.2 服务中的数据流1.2 消息传递中的数据流 总结1. 滚动升级2. 双向兼容:3. 数据流的类型 前言 新旧版本的代码,以及新旧数据格式可能会在系统中同时共DDIA 学习笔记
第一章 可靠性、可扩展性、可维护性 可靠性: 系统在困境(adversity)(硬件故障、软件故障、人为错误)中仍可正常工作(正确完成功能,并能达到期望的性能水准。 可靠性(Reliability) 意味着即使发生故障,系统也能正常工作。故障可能发生在硬件(通常是随机的和不相关的),软件(通常是系统性的BuDDIA Chapter 5 Replication
CREATED 2021 11 13 12:15PM Single-Leader 集群中有一个leader节点和多个follower节点,写操作都必须经过leader节点完成,读操作则都可以处理。 同步复制 (Synchronous Replication) 数据在副本上落盘才返回成功。 优点:保证在副本上的数据有最新数据。 缺点:延迟高,响应慢,如果有节点ddia 第四章 数据编码与演化
随着应用程序的升级,系统需要保持向后兼容(新代码读旧数据)和向前兼容(旧代码读新数据).数据的编码支持更好的兼容性尤为重要. 编码数据 序列化: 将内存中的数据编码成字节序列(才能通过网络发送) 反序列化: 将字节序列解码成内存中的数据 编程语言特定的编码 特定的编程语言内置ddia 第三章 数据检索与存储
哈希索引: key -> offset 通过文件存储,为了避免磁盘空间耗尽,采用合并与压缩段文件,保留最新的键值. 局限: 文件需要放进内存,范围查询效率不高 SSTable(排序字符串表): 每个文件里的键值对有序,压缩时可以采用归并合并.将合并的段生成稀疏的索引,可以进行范围查询. 如何保证文件《DDIA》复制
主从复制: 只有主库可写 从库,从快照开始,更新复制日志至赶上主库 同步/异步写,需要对写从库结果确认。半同步:最快的几个从库写确认 故障恢复: 从库追赶; 主库切换:新主库共识 脑裂: 复制日志实现: WAL:复制与存储引擎紧密耦合 逻辑⽇志复制:关系数据库的逻辑⽇志通常是以⾏的粒度描述对数据DDIA阅读笔记
同事推荐,花了4个月的时间读完DDIA(Designing Data-Intensive Applications) 书中更多的是方法论,比如分布式系统如何设计、数据如何存储、批处理系统和流处理系统的设计理念等等 本书不建议初学者阅读,建议对分布式处理系统、数据库、数据存储有一定基础和理解的人阅读 书中对分布式DDIA学习笔记7——chapter10:批处理
DDIA_Chapter10 学习笔记 不同类型的系统: 服务: 基于Request和Response的系统。系统接收用户发送的Request,系统对其进行处理后返回一个Response。 批处理系统: 一个批处理系统有大量的输入数据,跑一个Job来处理它,并生成一些输出数据,这往往需要一段时间(从几分钟到几天),所以通常不DDIA学习笔记6——chapter9:一致性与共识
DDIA_Chapter9 学习笔记 分布式系统最重要的抽象之一就是共识(consensus):就是让所有的节点对某件事达成一致。 一致性保证: 具有较强一致性的系统可能会比一致性较差的系统具有更差的性能或更少的容错性,需要根据业务进行取舍。 线性一致性(Linearizability):一旦新的值被写入或