上一篇主要描述了RDB。这一篇将描述AOF。 简单回顾一下RDB存储的弊端: 数据存储量较大,效率较低:基于快照的思想,每次读写的都是全部的数据,当数据量较大时,效率较低; 大数量下的IO性能较低 基于fork创建子进程,内存产生额外消耗 宕机带来的数据丢失风险 解决思路: 不写全数据,仅记录部分数 ...
分类:
其他好文 时间:
2020-11-17 12:52:44
阅读次数:
9
近一个多月,写了一些MySQL内核的文字,稍作总结,希望对大家有帮助。1.《InnoDB,为何并发如此之高?》文章介绍了:(1)什么是并发控制;(2)并发控制的常见方法:锁,数据多版本;(3)redo,undo,回滚段的实践;(4)InnoDB如何利用回滚段实现MVCC,实现快照读。结论是,快照读(SnapshotRead),这种不加锁的读,是InnoDB高并发的核心原因之一。番外篇:《快照读,在
分类:
数据库 时间:
2020-11-17 12:10:05
阅读次数:
12
昨天挖了一个坑《InnoDB的快照读,到底和什么相关?》,今天来填坑。为了保证文章知识体系的完整性,先简单解释下快照读,读提交,可重复读。快照读(SnapshotRead)MySQL数据库,InnoDB存储引擎,为了提高并发,使用MVCC机制,在并发事务时,通过读取数据行的历史数据版本,不加锁,来提高并发的一种不加锁一致性读(ConsistentNonlockingRead)。读提交(ReadCo
分类:
数据库 时间:
2020-11-17 12:07:32
阅读次数:
8
1.1现象 有个DBA朋友遇到需要分析性能问题,发现DB没有AWR快照??? 观察MMON进程正常,手工创建SNAP 报错 1.2 处理 参考 https://community.oracle.com/tech/apps-infra/discussion/342662/manual-snapshot ...
分类:
其他好文 时间:
2020-11-16 13:43:56
阅读次数:
9
对于redis来说,因为它保存在内存中,是内存性数据库,如果redis重启或者宕机后,其内存中的数据会全部丢失,所以应该想办法将内存中的数据进行持久化保存,等到下次redis重启或者恢复后能够根据这些持久化进行恢复 这里就用到了rdb快照技术,redis会将内存中的数据以rdb文件的形式保存,每当r ...
分类:
数据库 时间:
2020-11-12 14:00:50
阅读次数:
12
福哥答案2020-10-03:#福大大架构师每日一题# 简单回答:satb: snapshot-at-the-beginning,快照。tlab:thread local allocation buffer,线程本地分配缓冲。 中级回答:satb: snapshot-at-the-beginning ...
分类:
编程语言 时间:
2020-11-11 16:13:57
阅读次数:
9
Java命令学习系列(二)——Jstack收录于话题#Linux命令7个jstack是java虚拟机自带的一种堆栈跟踪工具。功能jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。线程出现停顿的时候通过jstack来查看各个
分类:
编程语言 时间:
2020-11-01 21:36:43
阅读次数:
24
1.LVM(逻辑卷管理)跟xfs不能同时混用,可以设置ext4文件系统(xfs不能缩小,xfs_growfs)硬盘合并/扩容缩小分区/快照-lpe的数量,-Llv的大小,-sPE的数量pvcreate/dev/sdb/dev/sdcvgcreatevgtest/dev/sdb/dev/sdclvcreate-nlvol1-L100M/dev/vgtestmkfs.ext4/dev/vgtest/l
分类:
其他好文 时间:
2020-11-01 21:05:52
阅读次数:
16
CopyOnWriteArrayList官方定义CopyOnWriteArrayList是ArrayList的线程安全变体,其中通过创建底层数组的新副本来实现所有可变操作(添加,设置等)。这通常成本太高,但是当遍历操作大大超过突变时,它可能比替代方法更有效,并且当您不能或不想同步遍历但需要排除并发线程之间的干扰时非常有用。“快照”样式迭代器方法在创建迭代器时使用对数组状态的引用。这个数组在迭代器的
分类:
其他好文 时间:
2020-11-01 11:03:49
阅读次数:
17
CopyOnWriteArrayList官方定义CopyOnWriteArrayList是ArrayList的线程安全变体,其中通过创建底层数组的新副本来实现所有可变操作(添加,设置等)。这通常成本太高,但是当遍历操作大大超过突变时,它可能比替代方法更有效,并且当您不能或不想同步遍历但需要排除并发线程之间的干扰时非常有用。“快照”样式迭代器方法在创建迭代器时使用对数组状态的引用。这个数组在迭代器的
分类:
其他好文 时间:
2020-11-01 11:03:24
阅读次数:
17