原文:buffer busy wait--是写阻塞读还是读阻塞写

如下图一,假设有个进程A正在读 号文件的 号数据块,此时又有一个进程B准备写该数据块。首先获取cbc latch然后复制内存中的 号文件 号块并新增一个buffer header bh ,并把原来的bh中status改为xcur,复制完成后释放cbc latch。然后如图二,获得cbc latch修改原块状态为CR,复制块状态为XCUR并把buffer pin修改为X,然后可以释放latch cb ...

2018-06-20 20:42 0 1155 推荐指数:

查看详情

Hbase为什么

1、Hbase为什么快 (1)根本原因是hbase的存储引擎用的是LSM树,是一种面向磁盘的数据结构:   Hbase底层的存储引擎为LSM-Tree(Log-Structured Merge-Tree)。LSM核心思想的核心就是放弃部分能力,换取写入的最大化能力。LSM Tree ...

Fri Nov 06 05:11:00 CST 2020 0 577
GCD实现多

总结:首先栈栏函数的作用,是执行到当前位置,前面的全部任务都要等待,等待block内部任务执行完成后,继续执行其他任务。(面试时候的问题,用锁不知道能不能实现) ...

Sat Mar 07 04:17:00 CST 2020 0 627
sram的

sram的型号:ISSI IS61LV25616 -10TL 以上是数据手册上的。 对sram的认识:SRAM不需要刷新电路即能保存它内部存储的数据。而DRAM(Dyna ...

Fri Nov 14 04:42:00 CST 2014 0 7445
map可以并发,不能并发

不能并发的原因 元素丢失 // TODO 破坏map的结构 // TODO sync.Map相比RWLock在哪些点减少了加锁的粒度,应该就是上述2点 // TODO sync.Map的原理应该就是减小了锁的粒度, 如果操作既不会造成元素丢失,也不会破坏map结构,就不 ...

Sat Apr 04 07:55:00 CST 2020 0 729
golang——文件和文件

之前聊过,操作文件——读写文件,直接调用接口即可. 如果是一直写入操作,写入操作一直进行的,免不了会有,有时一大批数据过来,有时没有一条数据。 鉴于此场景,选择用select.. ...

Tue Dec 17 21:52:00 CST 2019 0 710
InfluxDB 存储结构、

这篇最早是 2021 年 3 月的,最近又拿出来复习一遍,也补充了一些新的内容。上一篇博客发表过后已经 3 个月没有发表新的博客,就把这篇拿出来了。内容没有完全梳理完毕,算是笔记。先发出来,后续再逐渐完善。 InfluxDB 是开源的时序数据库,采用列式存储。原先有开源集群版本,但在 ...

Sun Aug 01 07:50:00 CST 2021 0 199
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM