摘要: Linux: 设计与实现 Linux server x2 Linux api innoDB: 设计 x2 kafka: es: 反应式编程: ddd: 设计模式: Akka: scala: 快学 实用 并发 集合 go: 并发 gc jvm 源码: redis go-redis go-kafka g 阅读全文
posted @ 2020-12-07 15:15 qmchao 阅读(34) 评论(0) 推荐(0)
摘要: chapter 9 db server { client db{ dict } } 维护数据: dict 命中次数||不命中次数 事务:dirty(key) 过期(key):expire字典,删除策略:时间驱动、读时检查 通知(key) LRU:闲置时间(key) 过期key对持久化的影响 RDB: 阅读全文
posted @ 2020-12-07 15:10 qmchao 阅读(45) 评论(0) 推荐(0)
摘要: mark 阅读全文
posted @ 2020-12-06 19:14 qmchao 阅读(41) 评论(0) 推荐(0)
摘要: 事务概念 原子性:事务执行状态:全部执行 || 未执行(回滚) 隔离性:与其他事务串行执行 持久性:提交的事务崩溃后可恢复 一致性:应用层保证 原子性:恢复系统保证必要时事务回滚 持久性:先持久化事务的提交,后由恢复系统崩溃恢复 隔离性:并发控制系统,语义:不可见 原子性与持久性 事务:中止、回滚、 阅读全文
posted @ 2020-12-06 15:32 qmchao 阅读(74) 评论(0) 推荐(0)
摘要: chapter6 任务边界确定 对任务的调度与负载均衡 服务的吞吐量与响应 任务串行执行:可能阻塞:网络拥塞、连通性,文件IO 数据库请求,阻塞影响响应,连锁阻塞 任务-线程一一对应:CPU资源(引入了新的资源管理)有限导致线程切换,线程生命周期开销 excuter:不同的任务执行策略,解耦任务的执 阅读全文
posted @ 2020-12-04 20:51 qmchao 阅读(94) 评论(0) 推荐(0)
摘要: charpter 2 并发控制尝试解决的问题:管理多线程访问共享变量。 线程安全:单线程下数据访问满足各种约束,如前置后置条件,以及过程中的不变性约束,多线程下保持满足。 线程安全类:类中封装了同步,对客户端透明。 原子性:多个线程不干扰彼此执行过程,执行结果等价于串行。执行中间结果不可见。 可见性 阅读全文
posted @ 2020-12-01 18:39 qmchao 阅读(68) 评论(0) 推荐(0)
摘要: 并发控制:同步控制 共享锁 排他锁 事务持有数据项的锁:访问时持有 问题:可能引入死锁 确定为事务分配锁的策略: 保证冲突可串行 两阶段锁协议: 阶段1:获得锁不释放 阶段2:释放不获得 封锁点:事务最后一次获取锁的时间,多个事务根据锁点串行 严格协议:两阶段锁+排他锁事务提交后释放=避免脏读 强协 阅读全文
posted @ 2020-11-15 20:23 qmchao 阅读(156) 评论(0) 推荐(0)
摘要: ⽽分布式⼀致性主要关于,⾯对延迟和故障时,如何协调副本间的状态。 线性一致性:新鲜性保证。效果:一个副本,原子读写 用处:锁 约束 实现:同步读修复的法定人数 顺序的引入:因果(非全序) 复制⽇志定义了与因果⼀致的写操作 序列号⽣成器不能正确地捕获跨节点的操作顺序,所以会出现因果关系的问题 每个节点 阅读全文
posted @ 2020-11-14 18:00 qmchao 阅读(105) 评论(0) 推荐(0)
摘要: 部分失效:不确定的,容错机制 请求无响应:请求丢失,节点不可用,响应关闭 检测故障:路由重分配 过早超时风险 时钟:最近写入,本地时钟 全局时钟:保证事务ID,间隔置信区间 线程暂停: stw 挂起 数据引起的磁盘、网络访问同步 不可依赖单个节点 单节点意识到自己失效 安全性问题,活性问题 阅读全文
posted @ 2020-11-14 14:08 qmchao 阅读(114) 评论(0) 推荐(0)
摘要: 主从复制: 只有主库可写 从库,从快照开始,更新复制日志至赶上主库 同步/异步写,需要对写从库结果确认。半同步:最快的几个从库写确认 故障恢复: 从库追赶; 主库切换:新主库共识 脑裂: 复制日志实现: WAL:复制与存储引擎紧密耦合 逻辑⽇志复制:关系数据库的逻辑⽇志通常是以⾏的粒度描述对数据库表 阅读全文
posted @ 2020-11-14 13:23 qmchao 阅读(112) 评论(0) 推荐(0)