- 博客(31)
- 收藏
- 关注
原创 【问题分析】主机failover后新主在按需回放阶段报错new lsn is less than past lsn
问题产生原因:开启按需回放,主机重启,备机只读,触发主机重启。主机重启reform期间,flushcopy阶段,主机从备机通过flushcopy要来最新页面A,用于加速(跳过)回放,该页面会置标记DMS_NEED_FLUSH,只要有该标记,页面就不会淘汰。主机按需回放reform阶段完成,进入redo阶段,此时大部分页面还没有完成回放,但是可以对外提供服务。
2025-06-10 11:51:35
970
原创 openGaussDDL通用流程
执行器总体流程:DDL走PortalRunMulti流程非DDL走ExecutorRun执行器包括四个主要的子模块,Portal、ProcessUtility、executor和特定功能子模块。Portal是执行SQL语句的载体,每条SQL对应唯一的Portal,不同的查询类型对应的Portal类型也有区别。execotr主要处理用户的增删改查操作、ProcessUtility处理增删改查之外的其他情况(比如DDL)。ProtalRun会识别语句是不是DDL。
2025-06-10 11:41:54
706
原创 openGauss 资源池化switchover降备流程日志梳理
shutdown checkpoint完成后,主机会以备机的方式重启,在此期间会重走StartupXLOG流程,Startup线程退出后,CBSwitchoverDemote流程结束,后续进行原主机释放reform锁并把角色切换为partner,和备机升主流程。checkpoint线程退出,reaper->PrepareDemoteResponse,g_instance.dms_cxt.SSClusterState = NODESTATE_PROMOTE_APPROVE。
2024-12-19 16:05:15
247
原创 openGauss SLRU及multixact缓存管理介绍
openGauss使用SLRU来管理事务相关日志的缓冲区,包括CLOG、CSNLOG、multixact log。SLRU是简化版的LRU,使用数组的方式存储元素,每次换入换出是会遍历数组找到lru count最小的buffer。
2024-12-03 11:16:42
1026
原创 openGauss极致RTO流程讲解及运维方法
极致RTO是openGauss在并行回放的基础上,实现的一个加速回放功能。其主要原理是将record粒度的日志拆分成block粒度的日志进行回放,通过增加流水线和redoworker线程的数量,并且利用相关hash算法,保证同一张表的日志由同一流水线回放,以此提高回放速度和回放并发度。
2024-12-03 11:14:47
804
原创 openGauss 检查点机制分析
openGauss是依靠预写日志实现对数据修改的,每次对页面进行修改时,不会直接将数据刷盘,而是先将对于页面的修改信息生成WAL日志并写入磁盘,然后由后台进程异步的批量的进行页面的刷盘操作。这样一方面可以提高性能:因为磁盘的特点,顺序访问相比随机访问性能要高,所以,通过WAL的方式将大量的刷盘(随机访问)转为了WAL顺序写入可以提高数据库性能;另一方面可以保证安全性:如果数据库被发生崩溃,数据库会使用WAL日志进行恢复,从WAL读取更改并将其重新应用于数据文件。
2024-09-09 16:42:18
1172
原创 【无标题】114514
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2024-05-21 11:40:19
345
原创 【openGauss技术文章征集】openGauss极致RTO日志处理流程简介
极致RTO是openGauss在并行回放的基础上,实现的一个加速回放功能。其主要原理是将record粒度的日志拆分成block粒度的日志进行回放,通过增加流水线和redoworker线程的数量,并且利用相关hash算法,保证同一张表的日志由同一流水线回放,以此提高回放速度和回放并发度。
2024-05-21 11:24:33
1065
原创 leetcode No.49 字母异位词分组
leetcode No.49 字母异位词分组题目题意思路代码题目给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]题意字面意思,就是对所有包含相同字母的字符串聚到一类。写法很笨,主要是为了熟悉JAVA语法。思路使用 list 维护输出,即储存满
2020-12-14 17:54:28
173
原创 某一维线性dp
线性dp题目:Mr. Wang need to get a string which consists of n letters of ‘k’ for his work. Initially the string is empty.He has two methods to modify the string.He can cost x seconds to insert or delete a
2017-03-12 22:12:29
451
原创 #poj 2286 入门级IDA*
poj 2286 IDA*题目:The rotation game uses a # shaped board, which can hold 24 pieces of square blocks (see Fig.1). The blocks are marked with symbols 1, 2 and 3, with exactly 8 pieces of each kind. Init
2016-08-19 10:17:53
484
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人