24 Star 105 Fork 32

GVPHe3DB / He3PG

预览版本
2023-07-06 14:48
11485549 tmxk2022 1661852450 wangyao

版本说明

1. 支持prefetch算法
支持表级别数据预取算法,保证关键数据常驻内存,提高内存命中率。
示例:
1)元数据库创建pg_hot_data表用于保存预取策略
create table pg_hot_data(datname name, relname name, crules char, ctype char, indexname name, keyname name, keyvalue name, keytype char, clientname name, clientaddr name, action name, crulessettime timestamp with time zone DEFAULT now(), cachetime timestamp with time zone DEFAULT '2000-10-10 15:55:39.496208+08');
2)业务库创建用户表users
create table users(id int,name varchar(20),primary key(id));
3)用户表users插入数据
insert into users(id, name) select n, 'user_'||n from generate_series(1,1000) n;
4)策略表pg_hot_data插入规则
insert into pg_hot_data(datname, relname, crules, ctype, indexname, keyname, keyvalue, keytype, clientname, clientaddr, action) values('postgres','users','t','t','','','','','master','127.0.0.1:15432','precache');
insert into pg_hot_data(datname, relname, crules, ctype, indexname, keyname, keyvalue, keytype, clientname, clientaddr, action) values('postgres','users','t','i','users_pkey','id','1','n','master','127.0.0.1:15432','precache');
5)触发预取策略
checkpoint;
2. 支持KV操作
支持WAL数据以KV形式存储在tikv
3. 支持mirror
支持PG为主He3DB为备
说明:设置He3DB参数he3mirror=true标记He3DB的角色为PG的备
示例:
primary_conninfo = 'application_name=pushstandby user=repl host=127.0.0.1 port=5432 sslmode=disable sslcompression=0 gssencmode=disable target_session_attrs=any'
hot_standby=on
push_standby=on
wal_recycle=off
fsync=off
wal_keep_size=10000
full_page_writes=off
he3mirror=true
lmdb_page_directory='/tmp/pushpagedb'
lmdb_wal_directory='/tmp/pushwaldb'
4. 备份恢复
支持使用pg_basebackup工具进行备份恢复
示例:
1)从推进节点进行备份(不包括wal,wal持久化在tikv)
pg_basebackup -F p --progress -X none -h 127.0.0.1 -p 15431 -U repl -D bak/bak2
2)恢复
##清空原数据目录
rm -rf primarydata/pgdata/
rm -rf pushdata/pgdata/*
cp -r bak/bak2/* pushdata/pgdata/
rsync -av --exclude pgdata/base --exclude pgdata/global --exclude pgdata/standby.signal pushdata/pgdata ~/primarydata
cd primarydata/pgdata/
ln -s /home/postgres/pushdata/pgdata/base base
ln -s /home/postgres/pushdata/pgdata/global global
cd
设置主备配置文件
##启动主机
pg_ctl -l logfile1 -D primarydata/pgdata start
##启动推进
pg_ctl -l logfile2 -D pushdata/pgdata start
5. 支持opentracing
链路追踪(tracing)即调用链监控,特点是通过记录多个在请求间跨服务完成的逻辑请求信息,帮助开发人员优化性能和进行问题追踪。链路追踪可以捕获每个请求遇到的异常和错误,以及即时信息和有价值的数据。
He3DB以客户端链接的生命周期为一次链路追踪。
6. 并行推进
支持数据版本并行推进
7. 支持热数据本地盘缓存
支持本地盘缓存功能,减少数据页从共享存储中读取,降低远程调用对系统性能造成的抖动。
主库/备库在置换数据页时,将其写入到本地盘缓存;读页操作优先从本地盘中读取,本地盘中未命中再从共享存储中读取。备库在收到wal日志,将涉及到数据页的wal日志写入本地盘缓存,在会话延迟回放数据页时,从本地盘缓存中读取数据页相关的wal日志,避免从tikv中读取。

更新内容

完整的更新日志: https://gitee.com/he3db/he3pg/compare/v0.6.0...v0.9.0

1
https://gitee.com/he3db/he3pg.git
git@gitee.com:he3db/he3pg.git
he3db
he3pg
He3PG

搜索帮助