- 博客(84)
- 收藏
- 关注
原创 centos安装gcc g++
yum install gccgcc --versionyum install gcc-c++g++ --version
2024-09-19 17:15:53 242
原创 云计算技术_课程资源
米哈游 游戏服务器上云 崩坏系列 原神 运行在阿里云上。天崩开局,中国云计算是如何逆袭到世界第二的?第1章 云计算概念及发展历史。
2024-08-29 17:56:27 113
原创 C++运算符优先级
1 :: 作用域运算符。1 () 改变优先级。1 [] 数组下标。优先级 运算符 功能说明 结合性。() 强制类型转换。+ / 正负号。
2024-03-16 14:46:21 383
原创 opengauss多线程 会话
PostmasterMain -> initialize_util_thread /main.cpp main -> PostmasterMain -> ServerLoop -> BackendStartup -> initialize_worker_threadThreadPoolWorker::StartUp -> initialize_worker_thread-> initialize_thread -> InternalThreadFunc -> GetThreadEntry
2023-06-06 15:16:10 483
原创 postgresql插件开发
2.插件可以调用内核的c函数(如果内核是opengauss使用的c++编译,则需要插件调用的函数在实现时要添加extern “C”);1.内核不能调用插件中的c函数;
2023-04-27 14:42:02 188
原创 PG postgresql原理基础数据结构总结(数据库内核分析)
是查询编译的第一个模块,包含词法分析、语法分析(生成分析树)和语义分析(得到查询树)三个部分。它将用户输入的SQL命令转换为查询树(Query结构)。词法分析和语法分析分别借助词法分析工具Lex和语法分析工具Yacc(flex)来完成各自的工作。pg_analyze_and_rewrite对分析树进行。和重写(pg_rewrite_query)。操作的开销最大,因此,查询优化要处理的问题。由于在整个查询执行过程中,在于如何计算最后的表连接路径。
2023-02-06 11:40:39 1248
原创 linux 会话打开的文件描述符个数
永久设置 vi /etc/security/limits.conf。ulimit -n 65535 会话临时设置,重启后无效。添加:*右边多输入一个空格。
2023-01-14 11:48:27 107
原创 编译原理----
某个字母表上的一个串(string)是该字母表中符号的一个有穷序列。句子和字常常被当作串的同义词。串s的前缀(prefix)是从s的尾部删除0个或多个符号后得到的串。语言是某个给定字母表上一个任意的可数的串集合。串的后缀(suffix),开始处删除。串的子串(substring)。串s的长度,通常记作|s|。3.3.1 串和语言。空串 长度为0的串。
2022-11-24 18:21:40 102
原创 PG日志级别
WARNING日志打印内容 会写入日志文件,也会显示到应用层,比如psql或数据库jdbc odbc连接客户端;ERROR会导致堆栈跳转重置FATAL会导致服务进程退出
2021-07-14 09:57:29 618
原创 setjmp longjmp
int setjmp(jmp_buf jmpbuffer); 第一次调用返回值为0,从longjmp调整后setjmp返回非0值,可由longjmp入参retval传递值。void longjmp(jmp_buf jumpbuffer, int retval);
2021-05-11 13:59:22 120
原创 perf总结
安装linux环境打开终端,切换到root用户,执行yum install -y perfperf listperf statperf topperf record/report
2021-04-16 09:04:46 80
原创 WAL XLOG读取 写入 起始/开始 LSN位置 相关全局变量 函数
ReadRecPtr = xlogreader->ReadRecPtr; EndRecPtr = xlogreader->EndRecPtr;Insert->PrevBytePos = XLogRecPtrToBytePos(LastRec);Insert->CurrBytePos = XLogRecPtrToBytePos(EndOfLog);XLogWrite搜索 INSERT @ 可知道在执行 XLogInsertRecordcheckPoint.re.
2021-03-19 17:31:49 333
原创 postgresql打印日志 编译 安装
fprintf(stderr, _(“Try “%s --help” for more information.\n”), progname);fatal_errorelog(LOG, “ReadPageInternal pageptr %X/%X reqLen %d”, (uint32) (pageptr >> 32), (uint32) pageptr, reqLen);ereport(DEBUG1, (errmsg("%s(%s) state:%d", func, c->des
2021-03-18 12:06:00 1758
原创 postgresql pg_waldump报错
pg_waldump: FATAL: error in WAL record at 0/16E46B8: invalid record length at 0/16E46F8: wanted 32, got 0pg_waldump: FATAL: error in WAL record at 0/16E3E78: unexpected pageaddr 0/16C8000 in log segment 000000000000000000000001, offset 7225344 report_i
2021-03-18 09:34:31 1155
原创 hexdump查看分析wal文件xlog 页头
[uxdb@localhost bin]$ hexdump -C -s 0x6E46F8 -n 58 rec1/instances/1/ux_wal/000000010000000000000001006e46f8 3a 00 00 00 00 00 00 00 b8 46 6e 01 00 00 00 00 |:…Fn…|006e4708 01 00 00 00 00 00 00 00 10 08 00 00 c7 94 10 6f |…o|006e4718 ff 18 00 00 0
2021-03-17 18:34:21 151
原创 代码格式示例
1 垂直对齐*StartPos = XLogBytePosToRecPtr(startbytepos);*EndPos = XLogBytePosToEndRecPtr(endbytepos);*PrevPtr = XLogBytePosToRecPtr(prevbytepos);对齐为:*StartPos = XLogBytePosToRecPtr(startbytepos);*EndPos = XLogBytePosToEndRecPtr(endbytepos);*PrevPtr =
2021-03-17 14:09:03 91
原创 cmake编译
也可以下载cmake-3.14.5.tar.gz源码包,上次到Linux环境, tar xzf cmake-3.14.5.tar.gz,cd cmake-3.14.5,执行下面命令手动编译,安装。./bootstrapmakemake installcmake --version
2021-03-15 19:04:30 111
原创 UNIX编程艺术 UNIX哲学
UNIX哲学起源于Ken Thompson早期关于如何设计一个服务接口简介、小巧精干的操作系统的思考,随着UNIX文化在学习如何尽可能发觉Thompson设计思想的过程中不断成长,同时一路上还从其它许多地方博采众长。是自下而上的,注重实效,立足于丰富的经验。模块原则:使用简洁的接口拼合简单的部件清晰原则:清晰胜于技巧组合原则:设计时考虑拼接组合分离原则:策略同机制分离,接口同引擎分离简洁原则:设计要简洁,复杂度能低则低吝啬原则:除非却无它法,不要编写庞大的程序透明性原则:设计要可见,以便审查
2021-03-13 12:00:16 439 1
原创 模块、子系统接口定义原则
Hide implementaion detailsChoose a small orthogonal set of primitivesDon’t reach behind the user’s backDo the same thing the same way everywherefrom 《The Practice of Programming》
2021-03-13 11:19:50 460
原创 write写文件到磁盘、刷盘相关系统函数、标志
O_SYNC 每个write调用会自动将文件数据和元数据刷新到磁盘上,Synchronized I/O file integrity completionO_DSYNC Synchronized I/O data integrity completionO_RSYNCfsync()fdatasync() 可能会减少磁盘I/O操作的次数sync()PostgreSQL 同步磁盘文件参数sync_method.conf文件里配置:#fsync = on
2021-03-09 17:34:28 976
原创 事务退出、提交,相关XLOG全部刷磁盘
调用exec_simple_query finish_xact_command CommitTransactionCommand CommitTransaction RecordTransactionCommit XLogFlush
2021-03-09 16:18:59 92
原创 执行多条shell命令技巧 启动postgresql集群数据块
[uxdb@localhost bin]$ DB_CLUSTER_NAME=OnlineRecovery7 && ./ux_ctl -D $DB_CLUSTER_NAME -o “-c uxdb_rac=on -c instance_id=1 -p 5432” start && sleep 10 && ./ux_ctl -D $DB_CLUSTER_NAME -o “-c uxdb_rac=on -c instance_id=2 -p 5433” start
2021-03-04 15:16:39 255 1
原创 postgresql宏定义 宏函数 格式化打印 数据块标记tag
#define BufferTag_Format “(%u/%u/%u-%d-%u)”#define BufferTag_Print(tag) (tag).rnode.spcNode, (tag).rnode.dbNode, (tag).rnode.relNode, (tag).forkNum, (tag).blockNum
2021-03-02 16:33:19 303
原创 postgresql查询 后台代码定义函数
uxdb=# select get_all_pi_records();get_all_pi_records(1663/13229/16384-0-0:2,0,7)(1 row)uxdb=# select * from get_all_pi_records();PITag | nchain | flag------------------------±-------±-----1663/13229/16384-0-0:2 | 0 | 7(1 row)uxdb
2021-03-02 10:51:06 311
原创 git配置 设置git show tab显示宽度/ 代码缩进使用tab还是空格
git config --global core.pager ‘less -x1,5’ 显示2空格字符宽度git config --global core.pager ‘less’ 默认一个tab字符 显示4个空格字符宽度git loggit show commitId
2021-03-02 10:16:22 2205
原创 软件项目进度把控、评估、计划
需求引入/完成概要设计 工作量占比10% 整体进度到达10%,完成详细设计 工作量占比20% 整体进度到达30%,完成代码编写、开发调测 工作量占比40% 整体进度到达70%,完成开发相关功能整体多人联调 工作量占比20% 整体进度到达90%,测试部门系统测试/验收测试 工作量占比10% 整体进度到达100%,后期还需要有性能测试、稳定性测试、实验局测试,最后到正式商用。上面工作量只是一个经验大概评估,每个项目都不一样,有差异性,可酌情调整具体工作量
2021-03-01 14:55:54 432
原创 代码规范、代码大忌、代码坏味道
C、C++语言宏定义宏替换内容部分整体要加括号(),以免宏作为被除数时,运算优先级异常;如果定义宏函数,宏替部分,入参也需要加括号()。宏名建议使用全大写字母,多个单词以_连接。严禁出现重复代码大型项目包含几十万/数百万行代码,重复代码很容易导致修改不一致,从而引起不一致相关问题,导致排查、定位、调试耗时,降低整体维护效率。++ – + - 整数运算溢出问题for (unsigned int i = 2; i>=0; i–){// 导致死循环}整数类型默认转换,无符号有符号整数做
2021-03-01 10:35:40 184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人