bdb log为什么 有 region buffer 和 log cursor buf
对bdb log来说, 在共享内存中 有一块 buffer, 同时每一个 log cursor 都自带一个 malloc的buf. why?
我认为: 
region buffer存的是log最末尾, 主要用来写. 毕竟 log 是 顺序写的, 最末尾的 log rec当然最热. 同时 多个 log rec缓存起来 一次写入对io 有极大好处.
log cursor的buf是用来读的. 可以是log 中每一部分. 这里 类似 read ahread(read behind), 每次从disk读, 都是读一整块 log buf size.
好处不言而喻, 但同时 逻辑 就复杂了,
在logc_get() 中, 需要考虑: 
1. 要取的 log rec是否在 cursor buf中? (必须 整个 log rec都在 cursor buf)
2. 要取的 log rec是否在 region buf中? (整个 log rec都在 region buf; 部分在region buf, 部分需要从disk 读的情况)
3. 从disk log file 读log rec
bdb log为什么 有 region buffer 和 log cursor buf的更多相关文章
- 手动创建binary log files和手动编辑binary log index file会有什么影响
		基本环境:官方社区版MySQL 5.7.19 一.了解Binary Log结构 1.1.High-Level Binary Log Structure and Contents • Binlog包括b ... 
- MySQL的redo log结构和SQL Server的log结构对比
		MySQL的redo log结构和SQL Server的log结构对比 innodb 存储引擎 mysql技术内幕 log buffer根据一定规则将内存中的log block刷写到磁盘,这个规则是 ... 
- git log命令全解析,打log还能这么随心所欲!
		git log命令非常强大而好用,在复杂系统的版本管理中扮演着重要的角色,但默认的git log命令显示出的东西实在太丑,不好好打扮一下根本没法见人,打扮好了用alias命令拍个照片,就正式出道了! ... 
- RMAN-06059: expected archived log not found, loss of archived log compromises recoverability
		归档日志被物理删除后执行rman操作报错: RMAN> backup database plus archivelog; Starting backup at -JUL- :: current ... 
- 17.1.1.4 Obtaining the Replication Master Binary Log Coordinates  得到复制master binary log 位置:
		17.1.1.4 Obtaining the Replication Master Binary Log Coordinates 得到复制master binary log 位置: 你需要master ... 
- 17.1.1.4 Obtaining the Replication Master Binary Log Coordinates 获取复制Master Binary Log的坐标:
		17.1.1.4 Obtaining the Replication Master Binary Log Coordinates 获取复制Master Binary Log的坐标: 你需要master ... 
- log.error("异常:", e);与log.error(e.getMessage());区别
		转: log.error("异常:", e);与log.error(e.getMessage());区别 2017年04月28日 14:51:32 行走的soong 阅读数:120 ... 
- rest-assured 将log()中的信息打印到log日志中去的方法
		rest-assured 将log()中的信息打印到log日志中去的方法: ============方法1============== PrintStream fileOutPutStream = n ... 
- MySQL必知必会:简介undo log、truncate、以及undo log如何帮你回滚事物
		目录 一.前言 二.undo log表空间 三.关于undo log默认的配置 四.如何将undo log放到单独的表空间 文章公众号首发,持续更新中 五.rollback segment 六.什么是 ... 
随机推荐
- 提高sevenzipsharp 检查密码的速度(1)
			前言:sevenzipsharp检查密码(包括检查压缩包的有效性)的函数是SevenZipExtractor.check(), sevenzipsharp调用的是7zip的动态链接库,而且不止是7zi ... 
- Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->使用spring framework的IoC容器功能----->方法一:使用XML文件定义beans之间的依赖注入关系
			XML-based configuration metadata(使用XML文件定义beans之间的依赖注入关系) 第一部分 编程思路概述 step1,在XML文件中定义各个bean之间的依赖关系. ... 
- 直接用<img> 的src属性显示base64转码后的字符串成图片
			直接用<img> 的src属性显示base64转码后的字符串成图片 <img src="base64转码后的字符串" ></img> 下面的图片 ... 
- 你不知道的this指向
			javascript中,我们预想的this指向,有时候与预期不一样,直接上经典例子 window.name=2; var test={ 'name':1, 'getName':function(){ ... 
- vue路由的简单实例
			vue2.0 和 vue1.0 路由的语法还是有点稍微的差别,下面介绍一下vue-router 2的简单实例: <!DOCTYPE html> <html lang="en ... 
- ubuntu14.04 安装系统
			p { margin-bottom: 0.1in; line-height: 120% } code.cjk { font-family: "Droid Sans Fallback" ... 
- SQL存储过程删除数据库日志文件的方法
			--日志文件收缩至多少M DECLARE @DBLogSise AS INT SET @DBLogSise=0 --查询出数据库对应的日志文件名称 DECLARE @strDBName AS NVAR ... 
- mysql行列调换方法
			行变列,列变行 财务样式模板: CREATE TABLE `grade` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR ... 
- ue4 UE4Editor.lib找不到
			PublicDependencyModuleNames里加了Launch后,会导致链接UE4Editor.lib, 但这个文件在预编版的引擎里是没有的(奇怪的是自己编译引擎的话会有) 如果只是要头文件 ... 
- c#在主窗体panel 容器内嵌入另一个窗体(子窗体)的实现
			主窗体: 子窗体: 把子窗体嵌入到主窗体的panel 右侧中: 代码: { public MainForm() { InitializeComponent(); } private void Clo ... 
