3 piriineos

尚未进行身份认证

暂无相关简介

等级
TA的排名 12w+

InnoDB MVCC解析

innodb的多版本控制主要是依靠readview+undo log实现的,其中readview为事务当前系统的可见性视图,即当前时刻的事务系统trx_sys快照,通过readview来判断记录对当前事务的可见性;undo log以链表的形式按新旧顺序存储一行记录的历史数据。下面分别解析readview和undo log原理。Readviewinnodb中的插入、修改或者删除操作总是直...

2019-03-25 23:19:32

CockroachDB集群搭建和配置

CockroachDB集群搭建和配置下载 上crdb官网https://www.cockroachlabs.com/docs/releases/v2.0.5.html 找二进制包 Production releases是已经GA的版本,Testing是最新的测试版本。 选一个版本下载二进制包或者源码包: wget -q https://binaries.cock...

2018-08-29 22:46:19

CockroachDB中一个query是如何执行的?

CockroachDB  CockroachDB架构: Postgres wire protocolclient和客户端之间用pgsql的协议通信,用户连接由pgwire包的pgwire.v3conn.serve()维持,它负责读取query,将query发给sql.Executor处理,然后收集结果返回给client。 SQL Executorsql.execut...

2018-08-11 21:33:30

CockroachDB分布式事务解析

事务层事务层实现了对并发操作的ACID事务支持。 CRDB事务分为两个阶段: write & reads,即事务执行阶段,当进行写操作时,CRDB并不会直接对硬盘的数据进行修改,而是使用另外两个东西来进行辅助,这两个东西也避免了锁的使用: Transaction record,存储在range第一个被修改的key处,表明了修改当前key...

2018-08-11 21:21:27

高性能CockroachDB--如何获得更好的性能

 Gain better performance for CRDB 节点参数设置: --attrs,标记node的特点,比如ram大小,硬盘种类,大小等。主要跟replication zone配合使用,zone能通过这些特点来进行库、表、行级别的数据分离存储。比如限制某个表的数据只能存储在attrs硬盘为ssd的store上。 --cache,分给rocksdb...

2018-07-22 00:07:18

CockroachDB分布式SQL层架构解析

SQL 层SQL层主要用来将SQL语句转化为K-V操作,并将操作送给事务层。SQL Parser, Planner, Executor,CRDB通过yacc将语句解析为抽象语句树(AST),yacc是描述CRDB支持的语法的文件;通过生成的AST,CRDB将其生成计划树,计划树的节点是planNodes,每个planNodes都包含一系列K-V操作,可以通过EXPLAIN查看计划树的具体情况,比如...

2018-07-15 00:12:55

CockroachDB生产环境成功应用案例

百度云业务类型业务分成三部分:在线交易、轻量级的在线分析(例如实时营销类业务根据用户画像推送相关联的产品)、重量级的离线分析(例如构建用户画像)。在线交易和轻量级分析直接由CockroachDB集群处理,离线分析部分由Spark集群通过CockroachDB提供的KV接口读取数据运行离线分析,把离线分析业务和在线业务之间的影响降到最低,同时二者共享一份数据。数据量两个产品布置在百度云上,一共30个...

2018-07-15 00:09:51

Galera replication原理详解

转载自:http://www.gpfeng.com/?p=603这篇文章总结了之前对Galera replication的调研,内容包括Galera特性,原理,Galera cluster配置,参数及性能等Galera replication是什么MySQL DBA及开发应该都知道MySQL源生复制及semi-sync半同步复制,它们都基于MySQL binlog,原生复制是完全异步的,maste...

2018-06-29 21:16:25

Galera vs Group Replication的区别

这篇文章翻译自percona blog:https://www.percona.com/blog/2017/02/24/battle-for-synchronous-replication-in-mysql-galera-vs-group-replication/Multi-Master vs. Master-SlaveGalera has always been multi-master by ...

2018-06-29 21:12:26

MySQL高可用框架--组复制(group replication)搭建测试

一、框架搭建      1.首先备份主库数据,有两种方法,冷备份和热备份。冷备份需要先停止master服务,sudo/etc/init.d/mysql stop,然后通过cp或者scp等命令将数据文件传输到指定文件夹,这里我选择在一台服务器上启动三个实例来搭建组复制,所以就用sudo cp -R /var/lib/mysql /home/piriineos/data/mysql/data1/来复制...

2018-06-29 20:41:58

mysql复制发展历程(从5.1到8.0版本)

       mysql5.1之前的版本网上基本上都查不到什么资料了,官网上也只有5.5之后的文档。所以就从5.1开始了解复制的发展历史。MySQL 5.1       mysql5.1版本对于复制的新特性就是引入了基于行的复制,当服务器使用混合模式复制时,基于语句的复制是默认的,在运行时会根据具体情况动态的改变binlog格式。当使用混合模式复制时,如下几种情况会从基于语句的binlog切换到基...

2018-06-17 22:32:00

主从复制的问题与解决方案

       *日志损坏。当主库日志损坏时,备库会因为读取不到目标偏移量的语句而停止,需要找出主库正常的首个语句的偏移量然后备库change master to重新定位。当备库日志损坏时通过最后执行的日志位置(execmaster log pos)找到主库对应的位置然后change master to重新定位。       日志损坏的类型:1.数据改变,但sql仍然有效,这种损坏不容易找出来,不过...

2018-06-16 10:56:17

MySQL主从复制的拓扑结构

复制拓扑       *所有拓扑都应该遵循一个备库只能拥有一个主库,每个备库只能有一个server id的规则。       *一主多备。简单的拓扑,但是能够满足大部分需求:1.为不同的角色使用不同的备库。2.选用一个备库当作待用主库,以备主备切换。3.可以用于灾难恢复。4.可以将一个备库用作测试。对于这种结构需要关注多个备库的延迟,对于延迟特别严重的需要进行一些处理。另外就是虽然多个备库可以缓解...

2018-06-16 10:55:35

高性能MySQL读书笔记--主从复制

    总的来说在复制的时候你需要做的事情:1.使用pt-table-checksum保证主备数据一致。2.监控备库延迟保证它们没有过于延迟。3.理解复制的异步本质,设计你的应用避免或者容忍从备库读取脏数据。4.不要写入超过一个服务器,把备库变为只读。5.选用对复制更安全的参数(sync master info等)。你可以带着疑问读下面的文章。复制概述       *mysql支持两种复制方式:基...

2018-06-16 10:53:51

innodb下的记录锁,间隙锁,next-key锁

你需要知道的 之前我们介绍了排他锁,其实innodb下的记录锁(也叫行锁),间隙锁,next-key锁统统属于排他锁。行锁 记录锁其实很好理解,对表中的记录加锁,叫做记录锁,简称行锁。生活中的间隙锁 编程的思想源于生活,生活中的例子能帮助我们更好的理解一些编程中的思想。 生活中排队的场景,小明,小红,小花三个人依次站成一排,此时,如何让新来的小刚不能站在小红旁边,这时候只要将小红和她前面的小明之间...

2018-06-16 00:03:38

reset master和reset slave解析

RESET MASTER 删除所有index file 中记录的所有binlog 文件,将日志索引文件清空,创建一个新的日志文件,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库,注意  reset master 不同于purge binary log的两处地方1 reset master 将删除日志索引文件中记录的所有binlog文件,创建一个新的日志文件 起始值从000001 开始,然而p...

2018-06-16 00:03:16

mysqldump的master-data和single-transaction选项解析

1 mysqldump导出数据主要有两种控制:一种是导出的全过程都加锁 lock-all-tables, 另一种则是不加。前者会在导出开始时执行 FLUSH TABLES WITH READ LOCK; 也就是加全局读锁,会阻塞其它写操作,以保证导出是一致性的;因此只有在导出测试数据时或导出时没有业务连接操作时可不加 lock-all-tables .至于说一致性导出的另一种方式 single-t...

2018-06-16 00:02:12

show engine innodb status详解

转载自:http://blog.51cto.com/louisyang/1379813,修正了部分错误或者过时信息。Header这部分简单的打印,输出的时间,以及自从上次输出的间隔时间。1 =====================================2 07091310:31:48 INNODB MONITOR OUTPUT3 ============================...

2018-06-12 10:12:14

Spin lock(自旋锁)与mutex 的区别

转载自:https://blog.csdn.net/kyokowl/article/details/6294341POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Crit...

2018-06-11 21:06:06

myisam增删改查过程学习

MyISAM引擎*MyISAM引擎的索引与数据分开存储,分别存储为.MYI和.MYD。每个表只有一个MYI文件,因而该表所有的索引都存储在这个文件中,索引文件由五个部分组成:state,base,keydef,recinfo以及key blocks。state存储在文件最前面,主要的用途是标明索引文件的状态,比如包括几个索引,其根指针为多少,当前索引文件大小等。其中一些重要的参数如下:option...

2018-06-11 15:20:56

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!