2024.05 blog review
2024-05-04
RAMCloud
- 内存分配 Log-Structure模型,减少通用allocator的内存碎片 https://web.stanford.edu/~ouster/cgi-bin/papers/ramcloud-recovery.pdf
- 快速恢复 核心思路就是将数据分成segment,每个segment一个独立的复制组,recover的时候可以从多个节点并行补齐数据。类似aurora那样 https://www.usenix.org/conference/fast14/technical-sessions/presentation/rumble
- SILK:次级索引怎么组织。没什么太多记忆点 https://ramcloud.atlassian.net/wiki/download/attachments/6848671/slik-updated.pdf?version=1&modificationDate=1476908903447&cacheVersion=1&api=v2
neon
- 整体架构 https://neon.tech/blog/architecture-decisions-in-neon
- 读写路径 https://neon.tech/blog/get-page-at-lsn
- 为什么使用Paxos而不是raft https://neon.tech/blog/paxos 因为paxos可以多写,这样方便构造一个完全无状态的计算层,允许有多个proposer,而不需要额外的协同只确定一个proposer
Huge Page
- OSDI‘16 详细分析了大页潜在的一些性能问题,然后做了个感知workload的大页分配系统 https://www.usenix.org/system/files/conference/osdi16/osdi16-kwon.pdf
- ATC'14 Large Pages May Be Harmful on NUMA Systems 大页在NUMA架构下的一些问题
- OSDI'21 基于tcmalloc的huge-page-aware分配器 https://www.usenix.org/system/files/osdi21-hunter.pdf
- SYSTOR'19 Overcoming traditional problems with os huge page management https://www.alexdelis.eu/Publications/MDR-Systor19.pdf
- TiDB Transparent Huge Pages: Why We Disable It for Databases | PingCAP
- PG Why Linux HugePages are Super Important for Database Servers: A Case with PostgreSQL
- PGConf 2019 测试了Huge Page对PG的性能影响 https://wiki.postgresql.org/images/7/7d/PostgreSQL_and_Huge_pages_-_PGConf.2019.pdf
其他许多DB都建议关闭透明的大页(THP),因为它们往往使用疏松的内存访问模式
Oracle:Database Installation Guide
MongoDB:Disable Transparent Huge Pages (THP)
Thinking about A New Mechanism for Huge Page Management https://www.cse.unsw.edu.au/~cs9242/19/exam/paper2.pdf
Cache
- CacheLib & Kangaroo https://www.unidy.cn/articles/cachelib/
- 凯神写的Kangaroo总结 https://zhuanlan.zhihu.com/p/527696328
- Navy是CacheLib中负责与NVM进行交互的模块,对大小对象有不同的存储模式 https://github.com/facebook/CacheLib/tree/main/cachelib/navy
其他乱七八糟的
- How to Read x86 Assembly Language https://wolchok.org/posts/how-to-read-assembly-language/
- Basics of Futexes https://eli.thegreenplace.net/2018/basics-of-futexes/