• Innodb存储引擎中锁的简析

    mariadb

    基本概念

    innodb是MySQL/MariaDB的默认存储引擎,也是最广泛使用的存储引擎。几年前研究MySQL实现的时候,也看过一本关于innodb的书,但是理解并不到位。最近计划补充一下存储方面的知识,这里就从innodb入手研究一下。对于一个五级数据库引擎(实现事务功能),锁的设计是非常重要的,这篇博客的主题也就是学习innodb中锁。

    innodb中有不少锁,这篇blog主要研究一下几个点,前两点是锁的模式,后两个知识点是锁的类型。这里我想强调一下,锁的模式和锁的类型是两个概念,千万不要搞混了。很多资料上,包括MySQL的官方文档上,都把这些知识点混在一起,给我带来了不少困惑。

    • Shared and Exclusive Locks:共享锁和互斥锁
    • Intention Locks:意向锁

    两种类型的锁:

    • Record Locks
    • Gap Locks

    1. Shared and Exclusive
    【查看更多】
  • 初步学习分布式数据库

    写本文的初衷是由于最近在看《大规模分布式存储系统》,期间有不少疑问以及一些新的认识。这里就准备把自己的疑问和认识记录一下,供以后回炉知识点。这里行文的逻辑大致是以不同的数据库产品或者技术展开,可能会显得比较乱。而且,就目前来说,我对各种分布式数据库的理解都还很肤浅,本文权当自娱自乐了,摘抄很多。

    1. Hbase/BigTable

    作者在书中把Hbase定义为分布式表格系统,其实也没有什么毛病。Hbase的事务支持相当有限,只支持行级事务。Hbase的系统架构图如下:

    Hbase

    Client:包含访问HBase的接口,并维护cache来加快对HBase的访问,比如region的位置信息

    Master:为Region server分配region,负责Region server的负载均衡,发现失效的Region server并重新分配其上的region,管理用户对table的增删改查操作… 【查看更多】