分布式
Links to this note
Clock Synchronization
tags: Distributed Systems
GitHub: pingcap/talent-plan - open source training courses about distributed database and distributed systemes
tags: Rust,Distributed Systems,Online Tutorial,Learning source: https://github.com/pingcap/talent-plan
Patterns of Distributed Systems
tags: Distributed Systems source: https://martinfowler.com/articles/patterns-of-distributed-systems/
Patterns of Distributed Systems: Quorum
tags: quorum,一致性,Distributed Systems,Patterns of Distributed Systems,Paxos,Patterns of Distributed Systems: Paxos source: martinfowler.com. “Quorum.” Accessed January 7, 2022. https://martinfowler.com/articles/patterns-of-distributed-systems/quorum.html.
Patterns of Distributed Systems: Paxos
tags: Paxos,分布式,Patterns of Distributed Systems source: martinfowler.com. “Paxos.” Accessed January 7, 2022. https://martinfowler.com/articles/patterns-of-distributed-systems/paxos.html.
Wikipedia: Chandy–Lamport algorithm
tags: 分布式 source: https://en.wikipedia.org/wiki/Chandy%E2%80%93Lamport%5Falgorithm
PAPER: Time, Clocks, and the Ordering of Events in a Distributed System
tags: 分布式,一致性 source: https://lamport.azurewebsites.net/pubs/time-clocks.pdf The Big Problem The event order in a distributed system. The defination of a distributed system: the order of its events occurred is unpredictable, sometimes it’s impossiable to say a event occurred before another. How this paper try to solve this problem: use a “happened before” relation to define a partial ordering and distributed algorithm. Background
Raft Understandable Distributed Consensus
tags: Raft,分布式,分布式共识,Online Tools source: http://thesecretlivesofdata.com/raft/
一致性
tags: 分布式
Clock Synchronization with Chris Perl
tags: 分布式,一致性,Clock Synchronization,Multicast source: https://signalsandthreads.com/clock-synchronization/ Electronic Oscillator: Computer itself to Dervie its Notion of Time Computer’s clock are based on a 1 MHz electronic oscillator circuit, that is oscillating at some frequency, and driving an interrupt. So the operating system can use it to derive its notion of time. It helps computer to keep the time correct. But a bad oscillator could be influenced by the heat of CPU, like compiling Linux kernel, etc....
分布式文件系统
tags: 分布式
分布式共识
tags: 分布式
Paxos
tags: 分布式共识,分布式
VSR
tags: Incomplete,分布式,共识算法
链式复制
tags: 分布式,Incomplete
分布式系统挑战
tags: 分布式 故障与部分失效 单节点一般是要么工作要么失效,但是分布式系统多节点面临部分失效,大大提高了分布式系统的复杂性。 单节点软件特性: 硬件正常工作时,相同的操作通常总会产生相同的结果,即确定性。 如果发生了某种内部错误,我们宁愿使计算机全部崩溃,而不是返回一个错误的结果。 云计算和超算 超算:垂直扩展的极端,设置检查点,一点节点故障则全部失效从上一个检查点重新开始(离线批处理),类似单机上内核崩溃。 云计算:水平扩展的极端 传统企业位于两个极端的中间 分布式可靠必然面临部分失效,需要依赖软件系统来提供容错机制。我们需要在不可靠的组件上构建可靠的系统。 不可靠网络 分布式无共享系统:成本低廉。 互联网以及大多数 IDC 内部网络都是异步网络:不保证发送一定到达(排队),等待响应时可能出现任何错误。 现实中的网络故障非常普遍 故障检测:HA、主从切换、保活机制(ICMP,SYN) 超时与无限期的延迟 网络拥塞与排队 网络负载过高会出现拥塞。 数据在发送的过程中分别会在发送端和接收端进行排队:等待发送和等待处理。 TCP 的拥塞控制机制。 虚拟化 CPU 核切换虚拟机 同步与异步网络 同步网络:固定电话网络,一路电话分配固定的电路、有带宽保证,规定延迟内保证完成数据包发送,不会丢弃数据包,成本高,利用率低 异步网络:数据中心网络,共享带宽,无法保证延迟和数据包发送,成本低廉,利用率高 不可靠时钟 单调时钟与墙上时钟 时间同步与准确性 计算机中的石英钟不够精确 NTP 服务器不稳定(网络、防火墙或服务本身) 虚拟机中时钟是虚拟化的。 终端设备不可控:休眠、故意设置 依赖同步的时钟 时钟陷阱: 一天可能不总是 86400 秒 回拨 多个节点上的时间完全不相同 需要精确同步的时钟: 自己监控所有节点上的时钟偏差 某个节点时钟漂移超出上限则将其宣告失效 时间戳与时间顺序 最后写入者获胜 时钟的置信区间 通过直接安装 GPS 接收器或原子(铯)时钟,它的误差范围通常可以查询制造商手册。 全局快照的同步时钟 Google Spanner 根据部署了 GPS 接收器或者原子时钟的 TrueTime API 返回的时钟置信区间。确保读事务足够晚发生,避免与先前事务的置信区间产生重叠。 进程暂停 垃圾回收 虚拟化暂停虚拟机 磁盘 I/O 内存交换分区 手动暂停进程(SIGSTOP/SIGCONT) 响应时间保证 RTOS 系统 调整垃圾回收的影响 知识,真相与谎言 真相由多数决定:Quorum 一致性 主节点与锁 Fencing 令牌 拜占庭故障 理论系统模型与现实 计时方面...
《数据密集型应用系统设计》读书笔记
tags: 读书笔记,Bigdata,分布式,数据库 数据系统基础 可靠、可扩展与可维护的应用系统 数据模型与查询语言 数据存储与检索 数据编码与演化 分布式数据系统 目的:扩展性、容错和高可用、延迟考虑(多机房) 扩展: 垂直扩展:提升单机性能 水平扩展:无共享结构,由软件实现核心逻辑 复制与分区: 复制:多节点冗余 分区:数据库拆分 分片:分区分配给不同的节点 数据复制 数据分区 事务 分布式系统挑战 一致性与共识 派生数据 记录系统:真实数据系统,拥有数据的权威版本。 派生数据系统:从另一个数据系统获取,丢失可以根据数据源重建,如缓存等。 批处理系统 流处理系统