2024.06 blog review
2024-06-01
SSD
What Modern NVMe Storage Can Do, And How To Exploit It: High-Performance I/O for High-Performance Storage Engines 优化Leanstore以充分发挥SSD的性能,主要手段是使用4K page、SPDK、协程
Fantastic SSD internals and how to learn and use them bench SSD的时候经常会出现一些不好解释的现象(当然 这可能跟厂商的刀法有关),论文从各个角度分析了影响SSD性能的因素,比如并行度、buffer大小、page size等
Hello Bytes, Bye Blocks: PCIe Storage Meets Compute Express Link for Memory Expansion (CXL-SSD) cxl-ssd
Is Garbage Collection Overhead Gone? Case study of F2FS on ZNS SSDs F2FS在ZNS SSD上的一个GC优化。观察到一个现象:F2FS的OP空间预留得越多,空间占用率上来后性能越平稳,合理。
CSAL: the Next-Gen Local Disks for the Cloud 用大容量的QLC ZNS SSD代替HDD,并引入了Optane SSD作为Cache缓解ssd的写放大的问题
Storage
An Empirical Evaluation of Columnar Storage Formats 对比了parquet和orc两种存储格式在不同场景下的使用和性能差别
那些年解的疑难性能问题 — ext4_fsync优化 手机系统ext4遇到的一系列io问题。通过异步discard等一系列方法来优化,还写了整个思考过程,非常nice的文章
GearDB: A GC-free Key-Value Store on HM-SMR Drives with Gear Compaction LSM base on SMR. 一个Zone只存放一个level的sstable,也就是让lifespan相同的文件尽可能被放在一起,GC时能一锅端而不是迁移valid data。 引入了 一个Compation Windows的概念控制GC
Database
Main-Memory Databases In-Memory Database的一个简单综述。简单介绍了下HStore、MonetDB、HyPer、Hekaton等的一些核心思想,适合基于此来DFS。(不过In-Memory Database 感觉是不是要凉了。。
Socrates: The New SQL Server in the Cloud Serverless SQLServer. 存算分离架构,跟Aurora不一样的是单 独拆除来了一个Log Service,跟Neon、GaiaDB这些差不多
CRDT Glossary CRDT的一些语义。看起来总结得比较全,所以作为索引
Why Uber Engineering Switched from Postgres to MySQL Uber放弃PG选择MySQL。主要就是Heap表+非聚集索引带来的写放大
Other
让ringbuffer的吞吐提升20倍 SPSC的RingBuffer,经典实现就是维护一个WriteIndex和ReadIndex,生产者会写WriteIndex和读ReadIndex,消费者会写ReadIndex和读WriteIndex,这会频繁地导致Cache Line被Invalid,然后Cache Miss。这篇blog的优化就是并不用每次都读ReadIndex或WriteIndex,可以读一次,Cache起来
深入理解DPDK程序设计 科普了下DPDK的一些核心设计
Eurosys'24 Frozen Hot Cache 将Cache中最热的一批数据frozen起来,在接下来的一段时间内这批cache处于只读状态, 不会新增和evict。其中就涉及到决策:要frozen多少数据、frozen哪些数据、frozen多久后需要重建一个新的frozen以适应workload变化等等,文中有具体的算法。亮点是号称只增加100行不到的代码就让RocksDB的Cache吞吐提升了5倍。(就喜欢这种简单有效的paper哈哈哈