Intel CPU自上而下的微架构性能分析方法

Intel CPU自上而下的微架构性能分析方法
原文:https://www.intel.com/content/www/us/en/develop/documentation/vtune-cookbook/top/methodologies/top-down-microarchitecture-analysis-method.html   现代CPU一般都采用了流水线、硬件线程、乱序执行、指令级并行等技术来高效利用CPU内的各种资源。但有很多软件和算法在实现上并不能很好地利用好CPU,比如非常常见的链表会带来间接地址访问,影响硬件预取的效果,导致读数据的时候流水线...

RocksDB演进

RocksDB演进
《Evolution of Development Priorities in Key-value Stores ServingLarge-scale Applications: The RocksDB Experience》FAST'20 这篇文章是讲述Facebook大规模部署RocksDB的经验,主要是RocksDB优化目标的演变。 RocksDB应用比较广,除了作为KV产品服务业务,也在很多其他系统中作为存储组件。 Streaming Processing: Flink, Kafaka Stream, Samba, Facebook's Stylus. Logging/Queuing Service: Fa...

LB+Tree:面向3DXPoint优化的B+Tree

LB+Tree:面向3DXPoint优化的B+Tree
  《LB+Trees: Optimizing Persistent Index Performance on 3DXPoint Memory》(VLDB20')   这是个设计非常巧妙的数据结构,这里简单描述下核心内容,读者可以直接读原文,行文非常清晰。   Abstract 3DXPoint的有些硬件特性,跟常规NVM差不多: 3DXPoint的访存粒度是64字节Cache Line 3DXPoint比DRAM慢2倍,比SSD快几个数量级 3DXPoint的写比读慢 使用clwb/sfence等特殊指令将数据从CPU...

RUM Conjecture

RUM Conjecture
《Designing Access Methods: The RUM Conjecture》 这篇论文从读、写、存储空间开销角度总结了access method设计,并提出了一个RUM猜想,认为针对其中两个开销优化,则会导致第三个优化困难。 就RUM猜想本身的可信程度而言,我个人觉得一般,不过这种三角可视化的总结非常有趣,可以一读。   What is RUM Conjecture 作者总结了Access Method的一些trade off,审视了RUM三种开销:R是read overhead,...

漫谈复制状态机的几个有趣的问题

漫谈复制状态机的几个有趣的问题
读过Paxos等论文的读者,应该对复制状态机(Replicated State Machine)的概念并不陌生。复制状态机在分布式系统中是一个很简单却很强大的模型,也是一种很有价值的思想。 模型一句话描述就是:多个节点上,从相同的初始状态开始,执行相同的一串命令,产生相同的最终状态。 这里有几个有趣的问题。   复制状态机保持一致是什么意思? 实际上,与其说是一致,其实可以泛化为分布式的两个节点状态存在某种...

Redis简介

Redis简介
  Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。   Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 产品特征 ...

Extensible/Rule Based Query Rewrite Optimization in Starburst

Extensible/Rule Based Query Rewrite Optimization in Starburst
      《Extensible/Rule Based Query Rewrite Optimization in Starburst》SIGMOD 1992 这篇文章是介绍Starburst的基于规则的优化器实现框架。 背景 很多业务的SQL语句或类SQL语句,尤其是中间件软件自动生成的SQL语句,主要面向业务模型,如果不做query rewrite,可能执行非常慢。 例如: 12345678 DISTINCT PFROM Patient p IN Patient_S...