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,比如非常常见的链表会带来间接地址访问,影响硬件预取的效果,导致读数据的时候流水线...

Hekaton内存引擎

Hekaton内存引擎
Hekaton: SQL Server’s Memory-Optimized OLTP Engine(SIGMOD13') Hekaton是SQL Server的一个纯内存数据引擎,用户可以声明一张表存放在Hekaton上,这张表完全支持原SQL Server所有操作,包括T-SQL。同时如果T-SQL只涉及Hekaton表,T-SQL还可以进一步编译执行,性能更高。   为什么要重新设计Hekaton引擎? 单纯优化现有的SQL Server还能不能有10-100倍吞吐提升? 说到底吞吐提升的三条路:提升sca...

分布式事务性能的FIT取舍

分布式事务性能的FIT取舍
  《FIT: A Distributed Database Performance Tradeoff》 Bulletin of the IEEE Computer Society Technical Committee on Data Engineering 2015   这篇文章不长,内容也不多,介绍了一个分布式数据库性能的tradeoff原则叫FIT。其实也不叫原则,就是一个模糊的设计直觉。   FIT的意思是分布式数据库的Fairness, Isolation, Throughput必须要取舍,最多三选二。 可能CAP三选二在业界影响...

以史为鉴:数据模型变迁史

以史为鉴:数据模型变迁史
这两天看了篇数据模型的论文,What Goes Around Comes Around。这篇论文是2005年Stonebraker和Hellerstein两位泰斗写的,讲的是数据库的数据模型35年的变迁历史,另外论文还总结了一些经验。 这是一个非常有趣的话题,能够让我们更多地去从市场和产品角度看问题,尤其是考虑到不断迭代的甚至是越来越快地迭代的数据库技术。   数据模型Data Model的9个历史阶段: Hierarchical(IMS): 1960年代末到197...

Haketon的高性能并发控制算法

Haketon的高性能并发控制算法
High-Performance Concurrency Control Mechanisms for Main-Memory Databases (VLDB12') 这篇文章是微软Hekaton上的in-memory storage engine的高性能控制算法。   MV Storage Engine 关于事务可串行化的一个洞察和论述 如果事务的读和写逻辑上发生在同一时刻,则事务就是可串行化的。SI隔离级别并不满足这个情况,SI的读实际上是发生在事务开启时(事务开启时取快照,快照一旦确定了,即使读请求是...

代码整洁之道 读书笔记

代码整洁之道 读书笔记
Chapter 1 整洁代码 Lebanc's Law: later equals never. Chapter 2 有意义的命名 Chapter 3 函数 每个函数一个抽象层级 Chapter 4 注释 Chapter 5 格式 Chapter 6 对象和数据结构 Chapter 7 错误处理 Chapter 8 边界 Chapter 9 单元测试 Chapter 10 类 Chapter 11 系统 Chapter 12 迭进 Chapter 13 ...

10 Patterns for Controlling the Cloud in AWS

10 Patterns for Controlling the Cloud in AWS
来源:AWS re: invent 2018 有些地方不大明白 🙁  Pattern 1: checksum all of the things Pattern 2: Cryptgraphic Authentication Encrypt and authenticate everything. Control Planes are powerful and security critical systems. Be able to revoke and rotate every credentials. But also watch out for certificate expiries.[??] Prevent human access to production credentials. Never allow a...

InnoDB源码解析-事务系统

InnoDB源码解析-事务系统
InnoDB事务系统负责InnoDB层事务管理,快照管理,MVCC等。 事务对象 InnoDB层事务对象为 struct trx_t 类型。 12345678910111213141516 // 部分字段struct trx_t {    trx_id_t id; // 事务开启序    trx_id_t no; // 事务提交序    trx_state_t state; // 事务状态  ...

InnoDB源码解析-日志系统

InnoDB源码解析-日志系统
MySQL 5.7中 Log Sys锁冲突比较大,MySQL 8.0对InnoDB Log Sys进行了重构。 我们先描述下5.7的 Log Sys看看锁冲突,然后再介绍8.0的方案以及部分代码实现细节。 mtr mtr 表示 mini-transaction,表示操作的一个最小原子单元,比数据库事务概念要更小。比如一个事务可能插入两行数据,但每插入一行都可能触发B-Tree的叶子分裂,页面的分裂操作涉及多个页面,这些页面的修改必须保持原子(不能发生分裂的第...

Rethink the Scan in MVCC Databases

Rethink the Scan in MVCC Databases
这是SIGMOD'21 上的论文《Rethink the Scan in MVCC Databases》,论文针对像HTAP等场景下可能出现大量versioned data中执行scan慢的问题提出了一种比较有效的方案。   Scan性能问题 首先,论文看到了这种场景下scan慢的一个重要原因: Scan的时候,每一个key都要分别从自己的多个版本里面做一次线性查找,找到当前读快照可见的版本。   这个过程中假如有一种ridgy pointer,用于从key A的可见...