自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 MinGW64 windows gcc编译器安装

界面左上方 点File。配置path 环境变量。

2024-03-17 14:00:20 360

原创 C++运算符优先级

1 :: 作用域运算符。1 () 改变优先级。1 [] 数组下标。优先级 运算符 功能说明 结合性。() 强制类型转换。+ / 正负号。

2024-03-16 14:46:21 358

原创 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 438

原创 oracle PL/SQL

表函数 table function。

2023-05-05 12:06:20 83

原创 postgresql插件开发

2.插件可以调用内核的c函数(如果内核是opengauss使用的c++编译,则需要插件调用的函数在实现时要添加extern “C”);1.内核不能调用插件中的c函数;

2023-04-27 14:42:02 160

原创 PG postgresql原理基础数据结构总结(数据库内核分析)

是查询编译的第一个模块,包含词法分析、语法分析(生成分析树)和语义分析(得到查询树)三个部分。它将用户输入的SQL命令转换为查询树(Query结构)。词法分析和语法分析分别借助词法分析工具Lex和语法分析工具Yacc(flex)来完成各自的工作。pg_analyze_and_rewrite对分析树进行。和重写(pg_rewrite_query)。操作的开销最大,因此,查询优化要处理的问题。由于在整个查询执行过程中,在于如何计算最后的表连接路径。

2023-02-06 11:40:39 1133

原创 linux 会话打开的文件描述符个数

永久设置 vi /etc/security/limits.conf。ulimit -n 65535 会话临时设置,重启后无效。添加:*右边多输入一个空格。

2023-01-14 11:48:27 78

原创 编译原理----

某个字母表上的一个串(string)是该字母表中符号的一个有穷序列。句子和字常常被当作串的同义词。串s的前缀(prefix)是从s的尾部删除0个或多个符号后得到的串。语言是某个给定字母表上一个任意的可数的串集合。串的后缀(suffix),开始处删除。串的子串(substring)。串s的长度,通常记作|s|。3.3.1 串和语言。空串 长度为0的串。

2022-11-24 18:21:40 73

原创 postgis flex词法分析器 多线程并发执行 bison .l .y 可重入 选项

l 词法规则定义文件。

2022-11-21 17:07:49 147

原创 SPI_execute c程序代码里执行sql语句

调用多次SPI_execute 来执行多条sql。SPI_connect()之后。

2022-11-10 18:09:38 108

原创 CN节点信息 共享内存存储 中心CN

分布式节点

2022-11-10 15:54:29 96

原创 vscode用法

vscode

2022-10-13 16:31:35 61

原创 PG日志级别

WARNING日志打印内容 会写入日志文件,也会显示到应用层,比如psql或数据库jdbc odbc连接客户端;ERROR会导致堆栈跳转重置FATAL会导致服务进程退出

2021-07-14 09:57:29 553

原创 postgresql 会话

一个psql连接到数据库算作一个会话,与一个应用层进程关联。\q退出会话。

2021-06-21 16:13:12 389

原创 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 91

原创 postgresql 查询锁信息

pg_lock_status -> GetLockStatusData

2021-05-04 16:57:30 471

原创 perf总结

安装linux环境打开终端,切换到root用户,执行yum install -y perfperf listperf statperf topperf record/report

2021-04-16 09:04:46 61

原创 git cherry-pick合入一个分支2次提交到另外一个分支

https://zhuanlan.zhihu.com/p/58962086

2021-03-25 10:37:45 238

原创 TortoiseGit操作

切换分支

2021-03-24 09:37:38 75

原创 git术语

stash 存放、储藏、隐藏

2021-03-24 09:15:36 66

原创 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 303

原创 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 1688

原创 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 1041

原创 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 114

原创 代码格式示例

1 垂直对齐*StartPos = XLogBytePosToRecPtr(startbytepos);*EndPos = XLogBytePosToEndRecPtr(endbytepos);*PrevPtr = XLogBytePosToRecPtr(prevbytepos);对齐为:*StartPos = XLogBytePosToRecPtr(startbytepos);*EndPos = XLogBytePosToEndRecPtr(endbytepos);*PrevPtr =

2021-03-17 14:09:03 68

原创 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 76

原创 UNIX编程艺术 UNIX哲学

UNIX哲学起源于Ken Thompson早期关于如何设计一个服务接口简介、小巧精干的操作系统的思考,随着UNIX文化在学习如何尽可能发觉Thompson设计思想的过程中不断成长,同时一路上还从其它许多地方博采众长。是自下而上的,注重实效,立足于丰富的经验。模块原则:使用简洁的接口拼合简单的部件清晰原则:清晰胜于技巧组合原则:设计时考虑拼接组合分离原则:策略同机制分离,接口同引擎分离简洁原则:设计要简洁,复杂度能低则低吝啬原则:除非却无它法,不要编写庞大的程序透明性原则:设计要可见,以便审查

2021-03-13 12:00:16 341 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 414

原创 PostgreSQL WAL文件个数相关变量

min_wal_sizemax_wal_sizewal_keep_segments

2021-03-09 22:42:42 211

原创 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 912

原创 事务退出、提交,相关XLOG全部刷磁盘

调用exec_simple_query finish_xact_command CommitTransactionCommand CommitTransaction RecordTransactionCommit XLogFlush

2021-03-09 16:18:59 66

原创 执行多条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 214 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 255

原创 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 281

原创 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 2039

原创 软件项目进度把控、评估、计划

需求引入/完成概要设计 工作量占比10% 整体进度到达10%,完成详细设计 工作量占比20% 整体进度到达30%,完成代码编写、开发调测 工作量占比40% 整体进度到达70%,完成开发相关功能整体多人联调 工作量占比20% 整体进度到达90%,测试部门系统测试/验收测试 工作量占比10% 整体进度到达100%,后期还需要有性能测试、稳定性测试、实验局测试,最后到正式商用。上面工作量只是一个经验大概评估,每个项目都不一样,有差异性,可酌情调整具体工作量

2021-03-01 14:55:54 387

原创 代码规范、代码大忌、代码坏味道

C、C++语言宏定义宏替换内容部分整体要加括号(),以免宏作为被除数时,运算优先级异常;如果定义宏函数,宏替部分,入参也需要加括号()。宏名建议使用全大写字母,多个单词以_连接。严禁出现重复代码大型项目包含几十万/数百万行代码,重复代码很容易导致修改不一致,从而引起不一致相关问题,导致排查、定位、调试耗时,降低整体维护效率。++ – + - 整数运算溢出问题for (unsigned int i = 2; i>=0; i–){// 导致死循环}整数类型默认转换,无符号有符号整数做

2021-03-01 10:35:40 151

原创 迭代开发规范

开发任务在需求管理系统(redmine)建立总的任务单(包含概要设计文档、详细设计文档、开发子任务、整体验收测试规程),之后根据任务拆分建子任务单,项目开发人员根据各自特长认领开发任务,每个子任务有明显进展及时更新子任务状态,以便项目管理者查看最新项目整体进度。迭代开发 功能单 开发进度状态更新 规范 :1.有的话包含设计文档,2.包含核心代码函数或消息类型,3.包含测试用例和测试结果...

2021-03-01 10:18:57 387

原创 gdb x命令查看内存 postgresql页面内容,hexdump命令查看二进制文件内容

heapgetpage (scan=0x7080318, page=0) at heapam.c:384384 scan->rs_cblock = page;(gdb)386 if (!scan->rs_pageatatime)(gdb)389 buffer = scan->rs_cbuf;(gdb)390 snapshot = scan->rs_snapshot;(gdb)395 heap_page_prune_opt(scan-&g

2021-02-26 17:13:53 478

原创 pgsql 并发下发、执行sql命令,标准错误 重定向到

./uxsql -p 1212 -c “select ux_aocs_relation_filepath(‘t_dns’);” > ux_aocs_relation_filepath.txt& 是后台执行的意思uxsql -c “update t1 set info = ‘PG中的隔离级别遵守了sql标准567’;” &uxsql -p 5433 -c “update t1 set info = ‘PG中的隔离级别遵守了sql标准567’;” &uxsql -p 5

2021-01-29 11:43:04 770

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除