bit rot 2022-07-30
文件系统 根据 https://www.redhat.com/en/blog/what-bit-rot-and-how-can-i-detect-it-rhel btrfs 和 zfs 支持 探测bit rot.
块层 那, 在块层, RAID1是否能够探测呢? 答:
dm-integrity 可以用来防止 静默数据损坏, 读取告知 io 错误.
lvm命令可以集成 DM integrity. lvcreate --raidintegrity
dm-integrity 也可以用在 Linux Software RAID 的 RAID1.
- 其他 Minio 和 Ceph 支持 erasure code, 所以, 可以处理 bit rot.
从故障场景看paxos 2022-05-01
1. 正常场景
图14-3:Paxos算法:正常执行
在提议阶段中,提议者发送一条Prepare(n)消息(其中n是提议编号).
如果接受者之前已经接受了(收到过Accept!(m,vaccepted)消息)任何其他提案,它将回复一条Promise(m,vaccepted)消息,通知提议者它先前已经接受了编号为m的提案。(m不等于n) awakening-fong: 用来处理 有人当选了,然后,发出复制的指令后,领导者挂掉了。 这里,借这个机会通知新的可能的领导者,过去本该写入的值。
关于Accept!(n,v) 其中的v, 1. 有接受方回复Promise(m,vaccepted), 则,v是收到的回复中, 编号最高的提案对应的值。 2. 如果所有回复均不包含旧的、已接受的提案,那么v可以是提议者自己提出的任何值。
2. 故障
2.1 提议者故障,决定旧值
因果倒置 2021-05-15
如果分析进入死胡同, 可能是分析问题时, 因果倒置了. 比如, 滑动窗口太小, 和 接收慢 之间的关系. 可能是因为 接收慢, 导致了滑动窗口小; 而不是因为滑动窗口小, 导致 接收慢.
模式 05: 大规模系统的一些处理方法 2021-03-14
本篇内容 和 模式 03: 用户态的一些性能优化方法 的内容类似.
这里针对大规模系统, 从更宏观的角度进行描述. (本人目前(2021年3月)未实践过大规模系统, 这里仅是纸上的记录)
分而治之
- 负载均衡: 服务端负载均衡: LVS, DNS; 客户端负载均衡
- 读写分离, 多从 负责读
- 分库分表
低成本处理
==== 缓存
- redis
模式 02: IO性能优化的一些方法 2020-10-17
1 避免 给内存管理添堵
1.1 other
如果 数据 仅使用一次的话.
POSIX_FADV_DONTNEED
and O_DIRECT
2 写 分离
- 日志盘 和 数据盘 分离
- 顺序写 和 随机读写 分离
3 内核参数
- /sys/block/sdx/queue/
- 文件系统参数
- /proc/sys/vm/