- 博客(4)
- 收藏
- 关注
原创 MVCC机制原理和技术细节
MVCC的基本观点示DBMS对于数据库中的每个逻辑对象维护多个物理版本,从而允许在同一个对象多个操作并行。这个对象一般是元组(tuple)。多版本控制允许只读的事务获取到元组的老版本并且没有阻止写事务同时产生新版本。核心理念就是,读不阻塞写,写不阻塞读。对,MVCC核心理念就是这么简单。接下来我们将从事务管理设计关键理念开始介绍,1)并发控制协议 2)版本存储 3)垃圾回收 4)索引管理介绍一下,数据库的元数据。
2024-06-12 08:30:00
7380
原创 PostgreSQL buffer标签的介绍
页面的bufferpool是存放页面,那么肯定需要一个"表",这个记录这个buffer,记录哪个页面。当页面完成IO,成功加载到磁盘上,此时我们将BM_IO_IN_PROGRESS去除,然后打上BM_VALID标签,代表页面是一个合法的页面。1)当业务进程需要使用某个页面的时候,根据页面tag,查看是否在hashmap中,如果不在的话,那么在hashmap中创建一个键值对,此时就会打上BM_TAG_VALID标签。BM_DIRTY代表脏页,就是页面被改动,相较于磁盘对应的页面,内存中页面就是脏页。
2024-06-11 23:10:50
1872
1
原创 PostgreSQL buffer的管理
数据会在磁盘上进行存储,操作系统会以页的形式进行管理。当我们修改数据,我们需要将这一页从磁盘上读上来,放在内存中,从而进行对应的修改。为了更好的区分概念,页在磁盘中称之为block,在内存中称之为buffer。如图1所示,磁盘中存了许多文件,每个文件长度不一,按照page进行大小管理(page一般为4K大小)。页面从磁盘加载到内存中的缓存池。当节点又一次还要查看同一个block的内容,我们可以在内存中找到它,无需再从磁盘加载,减少IO时间。
2023-05-07 01:25:32
1171
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅