自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(37)
  • 收藏
  • 关注

转载 Ceph 自动reweight脚本

Ceph的数据分布是由CRUSH Map解决定的,而CRUSH算法是伪HASH的,所以在一定时间内,数据会存在倾斜,这就需要我们用脚本来进行定期的reweight: #author jesse.js.lyu@g...

2017-06-06 23:46:28 274

转载 Big and Little Endian

转https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html Big and Little EndianBasi...

2017-05-18 13:28:59 204

转载 ext4 时延stap脚本

#!/bin/sh STAP_FILE_PATH="/tmp/moderate-ext4.stp" MOD...

2017-04-07 19:52:24 252

转载 分布式存储高可用设计

一、背景 面对着业务的发展,不管是在线,近线还是离线系统,其所需要的存储规模以及存储成本,成倍上涨。如果还是采取传统的分散式存储管理方式,不但带来高昂的管理分散式存储的成本,而且还会...

2017-04-07 19:47:17 294

转载 InnoDB IO路径源码分析

InnoDB实现IO Flush通过“os_file_flush”宏收敛,macro展开后为”os_file_flush_func”。 接下来,我们重点看一下,还有其它哪些场景会调用到这个os_file_flu...

2017-04-07 19:39:33 128

转载 Ceph源码编译与打包

1.1clone repository 源码打包docker 7u机器: lvjian100081200005.et15sqa ...

2017-04-07 19:31:12 1002

转载 mysql ext4 hack抓取IO 函数

前景:分析底层mysql sync的IO数据大小,用于条带化分析和优化 安装kernel debug info yum install kernel-debuginfo kernel-debugin...

2017-04-05 23:52:01 136

转载 Ceph参数配置参考

[global] fsid = 740988c7-045c-455b-9301-cd50f527f2a2 mon_host=11.180.137.117 #for auth and cr...

2017-04-05 23:47:31 821

转载 RocksDB引擎加载

RocksDB引擎的加载,具体操作是通过DB:Open()方法进行的,具体实现类是DBImpl类。 1.引擎加载call stack Rocksdb引擎注册和加载时call stack: ...

2017-04-05 22:36:30 529

转载 RocksDB重要参数索引

Block配置 #block级别的cache=size,类似于innodb=的buffer=pool ...

2017-04-05 22:30:05 1590

转载 PostgreSQL SQL执行流程

每种数据库都有自己的SQL执行流程图,PostgreSQL也不例外。下面这张图基本上概括了PG处理SQL的整个逻辑。我下面分开来细讲一下: 1.Main...

2015-06-28 22:03:26 2461

转载 PostgreSQL 行锁解读

像其它数据库一样,PostgreSQL数据库不仅有表级别的锁,同时也有行级别的锁。行锁对于提高系统的并行度至关重要。那么PostgreSQL是如何实现行锁的呢? PostgreSQL获取行锁的大致分为以...

2015-06-14 22:48:39 1048

转载 PostgreSQL checkpoint原理

今天来谈一下PostgreSQL 的checkpoint原理。检查点功能在现有流行的数据库中都具备。如Oracle,MySQL等,尤其是Oracle 对检查点功能的实现,非常完善。Oracle不 仅有全...

2015-06-07 21:16:40 211

转载 PostgreSQL源码定制:在线global read only

基于某云上功能需求,最近实现了类似于MySQL global read only的功能。PG的read only功能,也不再需要通过重起PG实现来实现。直接可以online更改PG实例级别 global...

2015-05-24 21:45:31 114

转载 PostgreSQL 事务模型介绍

PostgreSQL有自己的事务实现模型。总体上分为三层:top layer, middle layer和bottom layer。 1. Top Layer Top Layer主要由用户控...

2015-05-17 15:50:10 184

转载 PostgreSQL 物理文件映射解析

我们知道,在PG中,每个relation,也就是表,都有好几个fork对应。存放主表数据的为“MAIN” fork;管理空余空间的为“FSM” fork;存放可视化视图的为“visibility” fork。...

2015-05-10 20:42:51 379

转载 PostgreSQL XID与virtual XID区别

PG中事务号有两个概念,一个就是通常意义上的事务号transaction id。如tuple中的xmin,xmax等。另外一个意义是虚拟事务ID,即virtual transaction ID。那么这两个有...

2015-05-10 15:16:12 1205

转载 PostgreSQL vacuum 内核源码机理

为了能全面理解PG整个vacuum的过程,专门绘制了下面一个完整的过程图,用以记录其内核源码实现机理。整个过程比较复杂。大致分为以下几个部分: 一、pg_ctl 这个...

2015-05-02 16:38:14 302

转载 PostgreSQL Cost Based Vacuum探秘

PostgreSQL cost based vacuum的意思就是指每次 vacuum,进行heap scan时,都会基于IO cost进行sleep。如果IO cost越大,总体sleep的时间就会越长。也就是说...

2015-05-01 12:16:32 158

转载 PostgreSQL vacuum原理—vacuum揭秘

在前面两个章节中,我们讲了vacuum的一些重要参数“PostgreSQL vacuum原理一功能与参数”以及PG发起vacuum的流程“PostgreSQL vacuum原理—启动机制”。这个章节我们重要讲下va...

2015-04-26 19:07:54 1953

转载 Linux semaphore SEMMNI,SEMMSL,SEMMNS简介

无论在Oracle还是DB2,大家在安装数据库之前,都需要对操作系统OS级别的信号量进行设置。尤其是Oracle,如果按默认设置不做更改,那么在precheck时,并不被通过。 其实Po...

2015-04-25 22:49:56 960

转载 PostgreSQL vacuum原理—启动机制

在”PostgreSQL vacuum原理一功能与参数中我在致讲了vacuum的几大功能点,以及相关的一些参数,如何来调整vacuum。那么这一章节主要讲比较内核的一些东西。 1.PG发起vacuum的流程...

2015-04-25 19:01:23 655

转载 PostgreSQL vacuum原理一功能与参数

从上篇“PostgreSQL MVCC 源码实现”中,我们知道,PG并没有像Oracle那样的undo来存放旧版本;而是将旧版本直接存放于relation文件中。那么带来的问题就是dead tuple过多,导致relati...

2015-04-23 00:31:46 1516

转载 PostgreSQL spin 与 lwlock

在PostgreSQL 中,内存锁大致可以分为spin lock, lwlock以及Lock。 1.spin lock 就是自旋锁,实现的成本最低,一般使用TAS(test and set...

2015-04-20 21:12:42 175

转载 PostgreSQL MVCC 源码实现

MVCC对每一个DBA来讲,都不陌生,即多版本控制(Multi-Version-Control)。正因为数据有了多个版本,才实现了读和写在一定程度上的分离,提高数据库每秒处理查询的能力(QPS)。 ...

2015-04-19 13:20:21 433

转载 TAS 指令与PostgreSQL spin lock

TAS: 指Test-And-Set,它是一个原子操作,修改内存的值,并返回原来的值。当一个进程P1对一个内存位置做TAS操作,不允许其它进程P2对此内存位置,再做TAS操作。 P2必须等P1操作完成后...

2015-04-06 14:08:57 182

转载 PostgreSQL QPS 计数器extension实现

一、背景 实现QPS counter的原因,是为了PG也能够有类似MySQL 那样的 "Com_select,Com_update,Com_delete,Com_update" 计数器,方便计算QPS,TPS。...

2015-03-20 22:44:57 2879

转载 MySQL 5.6 drop database时,table metadata lock等待

一个线下库环境,开发人员不提交DML和查询事务,导致drop database时,遭遇表的metadata lock(MDL)等待,而不是SCHEMA上。 即会看到 “Waiting for t...

2015-03-07 18:01:37 185

转载 MySQL 5.6 global read lock 介绍

global read lock Global_read_lock类实现globalread lock。它有两个私有成员,分别在global和commit域保护global read ...

2015-03-03 23:32:57 671

转载 MySQL 5.6 metadata lock 源码解读

一、MDL(MetadataLock) MDL,就是通常所说的表的MetadataLock。5.5.3以及5.6版本,对这块的定义越来越清晰。从5.6来讲,MySQL对MDL分为两个维度来管理:时...

2015-02-27 17:44:08 68

转载 MySQL 5.6 Table cache 简介

一、TableCache MySQL5.6后,引入了“table_cache_instances”参数来控制 tablecache instance的个...

2015-02-14 10:59:05 208

转载 Semaphore vs. Mutex 简单区别

一、前言 最近看了MySQL和PostgreSQL源码对于mutex处理,Semaphore和mutex的关系,有些地方模糊了。想想也是,从大学那会儿学linux内核后,后面很少看那块了,更多的是研究...

2015-02-07 22:02:16 568

转载 PostgreSQL Select源码解析

这张时序图比较大,但是大致上描述了PG 处理简单SQL的大致流程。 由客户端发起SQL 语句,PG服务端进程backend接收到语句后,开始执行exec_simple_query()代码...

2015-01-31 00:36:38 503

转载 PostgreSQL vs. Oracle DML 独立压测

一、压测目的 前面使用Sysbench 默认事务模型,已经对PG和Oracle进行了压测,在性能上没有明显的区分度。 为了更细粒度了解PG和oracle分别在insert,update...

2015-01-06 19:38:08 123

转载 PostgreSQL vs. Oracle 测试

PG vs. Oracle Sysbench 0.5测试 一、目的 此次测试的目的,仅作为Oracle向PostgreSQL迁移的广义性能对比参考,应用针对性测试后续...

2015-01-05 21:12:55 301

转载 PostgreSQL中page页结构

PostgreSQL中page页结构源码解析 在PG中,磁盘存储和内存中的最小管理单位都是page,也是通常所说的block。一般PG页的大小为8K,在源码编译时可以设置。此后都不...

2015-01-01 23:06:12 842

转载 PostgreSQL FSM(Free Space Map) 源码解读

PostgreSQL FSM(Free Space Map) 源码解读 一、FSM设计目的 FSM,即空闲空间管理的设计初衷是为了能够快速找到一个页是否有足够的自由空间用来容纳新增的数据。如果没...

2015-01-01 23:05:05 588

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除