MySQL RC级别下并发insert锁超时问题 - 案例验证
本系列打算用三篇文章来聊聊这个事情。这是第三篇,用实际案例来证明假设。第二篇链接:温正湖:MySQL RC级别下并发insert锁超时问题 - 源码分析我们举update为例,因为update可以转化为delete+insert,所以也就包含了insert的场景。仍然采用前述的表dt和其…
MySQL RC级别下并发insert锁超时问题 - 源码分析
本系列打算用三篇文章来聊聊这个事情。这是第二篇,从源码层面来论证所做的假设。第一篇链接:温正湖:MySQL RC级别下并发insert锁超时问题 - 现象分析和解释基于第一篇的假设对于主键索引,最多存在一条主键相同的记录,该记录或者是delete-marked状态,或…
MySQL RC级别下并发insert锁超时问题 - 现象分析和解释
问题描述表dt包含了一个主键,一个复合唯一索引和一个普通索引,存在9条记录。表结构和记录如下:CREATE TABLE `dt` ( `ID` int(10) NOT NULL, `COUPON_ID` varchar(60) NOT NULL, `OPERATION_TYPE` decimal(2,0) NOT NULL, `REMAIN_AMOUNT` decimal(8,…
LevelDB设计与实现 - MVCC等
以RocksDB为存储引擎的MyRocks是近几年流行起来的MySQL分支,在Facebook等公司广泛使用,网易杭研的数据库内核团队从2018年初开始系统研究MyRocks,目前已在内部进行小范围推广使用,效果比较理想。在调研、测试和试用期间,积累了一些经验,包括技术实现等…
LevelDB设计与实现 - Compaction
以RocksDB为存储引擎的MyRocks是近几年流行起来的MySQL分支,在Facebook等公司广泛使用,网易杭研的数据库内核团队从2018年初开始系统研究MyRocks,目前已在内部进行小范围推广使用,效果比较理想。在调研、测试和试用期间,积累了一些经验,包括技术实现等…
LevelDB设计与实现 - 缓存机制
以RocksDB为存储引擎的MyRocks是近几年流行起来的MySQL分支,在Facebook等公司广泛使用,网易杭研的数据库内核团队从2018年初开始系统研究MyRocks,目前已在内部进行小范围推广使用,效果比较理想。在调研、测试和试用期间,积累了一些经验,包括技术实现等…
LevelDB设计与实现 - 读写流程
以RocksDB为存储引擎的MyRocks是近几年流行起来的MySQL分支,在Facebook等公司广泛使用,网易杭研的数据库内核团队从2018年初开始系统研究MyRocks,目前已在内部进行小范围推广使用,效果比较理想。在调研、测试和试用期间,积累了一些经验,包括技术实现等…
LevelDB设计与实现 - 基础篇
以RocksDB为存储引擎的MyRocks是近几年流行起来的MySQL分支,在Facebook等公司广泛使用,网易杭研的数据库内核团队从2018年初开始系统研究MyRocks,目前已在内部进行小范围推广使用,效果比较理想。在调研、测试和试用期间,积累了一些经验,包括技术实现等…
图数据库JanusGraph浅析
JanusGraph简介TinkerPop图生态Apache TinkerPop是一款开源的图计算框架,JanusGraph通过原生支持TinkerPop来提供图数据库(OLTP)和图分析系统 (OLAP)的能力。下图包括了TinkerPop的几个组成部分。最上层是Gremlin Server,为用户提供了访问图数据库的通道,…
图数据库基础
本文尝试以提问回答的方式来介绍笔者所理解的图数据库。包括图数据库的基本定义,图数据库如何表达数据,图数据相比关系型数据库的优势,图数据库使用场景等。 Q:什么是图数据库?A:图数据库是图数据库管理系统的简称,使用图形化的模型进行查询的数据库…
浅谈数据库误删除恢复
不得不说,在使用数据库的过程中,不管是业务开发者还是运维人员,都有可能对数据库进行误操作,运维人员对数据库有最大的操作权限,可以进行schema级别的操作,容易发生误删库或删表等错误的DDL操作。开发人员一般没有这么大的操作权限,但是同样能够造成…
MySQL原生的分库分表方案 - Spider存储引擎
Spider是个数据库存储引擎,MariaDB从10.0.4开始支持Spider,在10.3.7版本宣布Spider已经Stable(即GA了)。目前腾讯在大规模使用(腾讯游戏、腾讯支付等)并提供云服务。简单说来,Spider有3个作用,一是作为分库分表的中间件,二是支持像访问本地数据表一…
MyRocks状态监控参考手册
对MySQL进行监控包括2大维度,一是MySQL Server层监控,包括连接、查询和复制等维度;二是存储引擎层监控,包括引擎层的增删改查、内存占用、数据大小和读写统计等等。应该说MySQL的监控项已经非常丰富,但最近越来越流行的MyRocks还不够完善,本文承接上文(…
MyRocks及其使用场景分析
MyRocks是一种经过空间和写性能优化的MySQL数据库,为您业务的数据库选型提供一种靠谱的选择。本文主要介绍什么是MyRocks,包括其功能特性,重点讲解MyRocks相比InnoDB的优势,详细分析MyRocks适用的各种场景。RocksDB是FaceBook基于Google开源的LevelDB实…
阿里云PolarDB及其存储PolarFS技术实现分析(下)
上篇介绍了PolarDB数据库及其后端共享存储PolarFS系统的基本架构和组成模块,是最基础的部分。本篇重点分析PolarFS的数据IO流程,元数据更新流程,以及PolarDB数据库节点如何适配PolarFS这样的共享存储系统。PolarFS的数据IO操作写操作一般情况下,写操作不…
阿里云PolarDB及其存储PolarFS技术实现分析(上)
PolarDB是阿里云基于MySQL推出的云原生数据库(Cloud Native Database)产品,通过将数据库中计算和存储分离,多个计算节点访问同一份存储数据的方式来解决目前MySQL数据库存在的运维和扩展性问题;通过引入RDMA和SPDK等新硬件来改造传统的网络和IO协议栈来…
xtrabackup throttle参数及相关问题分析
percona提供的在线物理备份工具xtrabackup相信玩mysql的同学都不陌生。其实现原理和潜在的风险网上已经有很多描述(1、
MySQL跨行事务模型
本文是知名技术博客有态度的HBase/Spark/BigData上《数据库事务系列》系列文章的其中一篇数据库事务系列-MySQL跨行事务模型,早就想转载过来。今天有知友投稿了一篇“MySQL事务隔离级别解密”,我觉得2篇文章配合起来看疗效更佳,事不宜迟。原文博主范欣欣…
MySQL Group Replication数据安全性保障
在之前的文章中,介绍了MGR对数据可靠性、可用性和一致性的实现方案。简单来说,MGR通过基于paxos协议的多副本来实现数据的可靠性,通过多副本上的majority机制来实现可用性。对于一致性,主要说的是多主模式下通过基于事务版本的认证机制来确保多节点并发…
MySQL MGR事务认证机制优化
在温正湖:MySQL事务在MGR中的漫游记 - 事务认证中介绍了MGR的事务认证机制,本文进一步展开分析并尝试对其进行优化,优化会分为单主模式(single primary)和多主模式(multi master)两种场景。事务认证机制简介MGR事务认证模块用于决定进入MGR的事务是继…