原文:https://www.intel.com/content/www/us/en/develop/documentation/vtune-cookbook/top/methodologies/top-down-microarchitecture-analysis-method.html
现代CPU一般都采用了流水线、硬件线程、乱序执行、指令级并行等技术来高效利用CPU内的各种资源。但有很多软件和算法在实现上并不能很好地利用好CPU,比如非常常见的链表会带来间接地址访问,影响硬件预取的效果,导致读数据的时候流水线...
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...
Visual Studio中的断点:命中计数 调用堆栈函数 条件断点
断点:在VS 调试器中使用命中计数,调用堆栈函数,条件来在某时某位置停下来。主要内容:在任意位置停下,设置断点,使用断点的高级功能,使用代码表达式来设置断点条件,使用设备/进程/线程等来设置断点条件,数据断点,使用追踪点打印到输出窗口等。
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...
Cwinux源码解析(四)
Cwinux中使用Reactor模式来处理底层文件描述符fd上的事件。本文简单介绍Reactor模式。
RUM Conjecture
《Designing Access Methods: The RUM Conjecture》
这篇论文从读、写、存储空间开销角度总结了access method设计,并提出了一个RUM猜想,认为针对其中两个开销优化,则会导致第三个优化困难。
就RUM猜想本身的可信程度而言,我个人觉得一般,不过这种三角可视化的总结非常有趣,可以一读。
What is RUM Conjecture
作者总结了Access Method的一些trade off,审视了RUM三种开销:R是read overhead,...
Percolator论文阅读笔记
Percolator论文解读,Google用于替换MapReduce做页面索引的系统。
漫谈复制状态机的几个有趣的问题
读过Paxos等论文的读者,应该对复制状态机(Replicated State Machine)的概念并不陌生。复制状态机在分布式系统中是一个很简单却很强大的模型,也是一种很有价值的思想。
模型一句话描述就是:多个节点上,从相同的初始状态开始,执行相同的一串命令,产生相同的最终状态。
这里有几个有趣的问题。
复制状态机保持一致是什么意思?
实际上,与其说是一致,其实可以泛化为分布式的两个节点状态存在某种...
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》SIGMOD 1992
这篇文章是介绍Starburst的基于规则的优化器实现框架。
背景
很多业务的SQL语句或类SQL语句,尤其是中间件软件自动生成的SQL语句,主要面向业务模型,如果不做query rewrite,可能执行非常慢。
例如:
12345678
DISTINCT PFROM Patient p IN Patient_S...