03 2013 档案
摘要:SMP IRQ affinityLinux 2.4内核之后引入了将特定中断绑定到指定的CPU的技术,称为SMP IRQ affinity.原理当一个硬件(如磁盘控制器或者以太网卡), 需要打断CPU的工作时, 它就触发一个中断. 该中断通知CPU发生了某些事情并且CPU应该放下当前的工作去处理这个事情. 为了防止多个设置发送相同的中断, Linux设计了一套中断请求系统, 使得计算机系统中的每个设备被分配了各自的中断号, 以确保它的中断请求的唯一性. 从2.4 内核开始, Linux改进了分配特定中断到指定的处理器(或处理器组)的功能. 这被称为SMP IRQ affinity, 它可以控制系
阅读全文
摘要:教科书上的B+Tree是一个简化了的,方便于研究和教学的B+Tree。然而在数据库实现时,为了更好的性能或者降低实现的难度,都会在细节上进行一定的变化。下面以InnoDB为例,来说说这些变化。04- Sparse Index中的数据指针 在“由浅入深理解索引的实现(1)”中提到,Sparse Index中的每个键值都有一个指针指向 所在的数据页。这样每个B+Tree都有指针指向数据页。如图Fig.1所示:Fig.1 如果数据页进行了拆分或合并操作,那么所有的B+Tree都需要修改相应的页指针。特别是 Secondary B+Tree(辅助索引对应的B+Tree), 要对很多个不连续的页进行修改
阅读全文
摘要:00 – 背景知识- B-Tree & B+Treehttp://en.wikipedia.org/wiki/B%2B_treehttp://en.wikipedia.org/wiki/B-tree- 折半查找(Binary Search)http://en.wikipedia.org/wiki/Binary_search_algorithm- 数据库的性能问题 A. 磁盘IO性能非常低,严重的影响数据库系统的性能。 B. 磁盘顺序读写比随机读写的性能高很多。- 数据的基本存储结构 A. 磁盘空间被划分为许多大小相同的块(Block)或者页(Page). B. 一个表的这些数据块以链表
阅读全文
摘要:本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。- 事务的原子性(Atomicity)事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行的过程中发生了错误,要回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过。- 原理 Undo Log的原理很简单,为了满足事务的原子性,在操作任何数据之前,首先将数据备份到一个地方 (这个存储数据备份的地方称为Undo Log)。然后进
阅读全文

浙公网安备 33010602011771号