自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 移动云大云海山数据库(He3DB)流量回放

从传统数据库向新型国产数据库的迁移,是一项涉及数据、应用与业务的系统工程。海山数据库的流量回放方案,通过“录制-回放-分析”的闭环,将难以量化的兼容性风险和性能风险,转化为可评估、可分析、可解决的具体任务。关键经验表明真实流量是测试的黄金标准:唯有基于生产真实流量的验证,才能覆盖所有边缘案例和复杂查询模式,建立上线前的最终信心。工具的核心在于“转化”与“分析”:SQL/协议的精准转换能力决定回放的广度,而深度、智能的分析报告则决定其赋能业务的深度。这是一项贯穿全周期的持续性保障。

2026-03-19 17:38:35 383

原创 移动云大云海山数据库(He3DB)与PolarDB架构深度对比(一)

本文聚焦二者核心架构能力,从技术演进、整体架构、存储设计、数据访问、持久化、数据一致性六大核心维度,深度拆解海山数据库与PolarDB的底层实现差异、技术选型思路及各自优劣,为企业数据库技术选型、架构设计提供可落地的实操性参考。基于存储架构的差异点,后续将继续拆解海山数据库与PolarDB架构上的区别,分别从数据访问、数据持久化、数据一致性等数据库基本能力表现出发,详细介绍两者的差异,以体现其架构上的不同。对标研发+本土化适配,紧跟行业技术路线,实现核心能力对标,适配通用部署场景。

2026-03-19 17:33:58 551

原创 移动云大云海山数据库分页查询性能优化时间:从16s到2ms

某客户生产环境部署了一套海山数据库PostgreSQl版一主两备高可用集群CPU:Intel Xeon Silver 4210R(32 核)内存:128 GB存储:1.6 TB HDDshared_buffers 配置为1/4(32 GB)业务系统中存在一张核心日志表 warn_msg_tab_test,用于存储消息审计记录。该表采用按时间范围分区(RANGE on mo_time),总数据量已超过10 亿行,单日数据量约 5000 万行。

2026-03-18 17:50:14 578

原创 移动云大云海山数据库存算分离架构下Page页存储正确性校验框架介绍

移动云大云海山数据库采用数据共享存储架构,当用户请求计算节点进行数据查询获取,但是本地数据被淘汰时,没有缓存指定数据时会去共享存储获取数据,在此存算分离场景下,获取的数据可能无法判断正确性,可能存在从共享存储读到的是未来页或者过去页,与计算节点本身应有的数据是不一致的,因此需要一种框架,来发现存在不一致数据页的问题,从而帮助定位问题,提升数据库的正确性。基于以上一些考虑点,所以设计此框架,帮助发现及定位数据正确性问题。

2026-03-11 17:26:46 404

原创 深度解析移动云大云海山数据库(He3DB)WAL机制

在实际生产环境中,建议根据业务对数据安全的要求,合理配置 synchronous_commit、wal_level 等关键参数,在性能和可靠性之间取得平衡。WAL 日志以固定大小的段文件(Segment)组织,默认大小为 16MB(可通过 --wal-segsize 编译时调整)。为防止"部分写"(Torn Page)问题,PG 在检查点后首次修改数据页时,会将整个数据页的内容写入 WAL。这一设计确保了即使在系统崩溃的情况下,已提交的事务也不会丢失,未提交的事务可以被正确回滚。

2026-03-11 17:23:58 451

原创 移动云大云海山数据库(He3DB)的ANALYZE:让优化器看见数据分布、选对执行计划

统计的计算可以允许误差,但统计的写入必须可靠,否则会引入更隐蔽的系统性问题(例如目录更新冲突、部分写入导致的结构不一致)。对这些值做频繁比较、排序、拷贝,成本很高,且往往得不偿失——超宽值通常重复率低,很难成本“最常见值”,对直方图边界也贡献有限。当然,抽样不是免费午餐。这样,当查询条件命中这些热点值时,优化器不会再用“平均每个值出现1/ndistinct”这种粗糙估算,而是直接用MCV的频率,更接近真实。但也坦率承认一个缺点:对特别大的表,样本覆盖的页可能偏少,“每一种可能的样本”并非等概率出现。

2026-03-04 13:49:36 376

原创 移动云大云海山数据库(He3DB)内存上下文分析

移动云大云海山数据库的内存上下文是数据库内核层面向进程内存管理的核心抽象与管控机制,核心职能是统一承载进程内内存的分配、重分配、释放、复用全生命周期管理,实现内存的批量回收与溯源管控;

2026-03-04 10:58:24 377

原创 移动云大云海山数据库(He3DB)B树索引

B树索引是数据库使用场景中最常见的索引。移动云大云海山数据库的B树索引实际上是一种B+树。本文主要介绍数据库的B树索引页面、B树索引结构,以及B树索引创建和插入的过程。在src/backend/access/nbtree/nbtree.c的函数bthandler中,可以找到B树索引的所有入口函数。索引创建:btbuild索引插入:btinsert索引删除:btbulkdelete、btvacuumcleanup。

2026-03-02 10:14:36 690

原创 移动云大云海山数据库(He3DB)前沿探索:HTAP架构技术调研分析

PolarDB 采用分布式集群架构,这里的分布式集群是指主从架构,一个集群版集群包含一个主节点和最多15个只读节点(至少一个,用于保障高可用)。主节点处理读写请求,只读节点仅处理读请求。主节点和只读节点之间采用Active-Active的Failover方式,提供数据库的高可用服务。简单来说 PolarDB=一个单机磁盘超大的 MySQL。

2026-02-28 17:40:42 1200

原创 移动云大云海山数据库(He3DB)前沿探索:Doris StreamLoad架构技术性能分析

数据导入吞吐是 OLAP 系统性能的重要衡量标准之一,高效的数据导入能力能够加速数据实时处理和分析的效率。为提供快速的数据写入支持,Apache Doris 存储引擎采用了类似 LSM Tree 结构。在进行数据导入时,数据会先写入 Tablet 对应的 MemTable 中,MemTable 采用 SkipList 的数据结构。当 MemTable 写满之后,会将其中的数据刷写(Flush)到磁盘。

2026-02-28 17:39:07 774

原创 移动云大云海山数据库(He3DB)存算分离架构下Page页存储正确性校验框架介绍

He3PG采用数据共享存储架构,当用户请求计算节点进行数据查询获取,但是本地数据被淘汰时,没有缓存指定数据时会去共享存储获取数据,在此存算分离场景下,获取的数据可能无法判断正确性,可能存在从共享存储读到的是未来页或者过去页,与计算节点本身应有的数据是不一致的,因此需要一种框架,来发现存在不一致数据页的问题,从而帮助定位问题,提升数据库的正确性。基于以上一些考虑点,所以设计此框架,帮助发现及定位数据正确性问题。

2026-02-12 14:55:07 1161

原创 移动云大云海山数据库(He3DB)云上资源开通与规格变更中的资源治理实践

销毁当前实例 Pod在新的节点上重建实例恢复或同步数据它并不是简单的 kubectl delete pod,而是 Operator 级别的受控生命周期操作。回头看,这个问题并不复杂,但极其典型。节点资源治理能力调度失败后的确定性补救手段Operator 级别的工程化能力关键经验总结(1). 资源必须库存化,而不是“尽量调度”(2). 默认 Scheduler 不是数据库级 SLA 的保证(3). 有状态服务必须具备实例级重建能力。

2026-02-06 18:32:02 810

原创 移动云大云海山数据库(He3DB)三权分立功能

相比于Oracle等其他商业数据库,国产数据库领域,达梦、阿里云PolarDB、华为GaussDB均以国内合规需求为核心,将角色拆分为系统管理员、安全管理员和审计管理员并进行相应的职责华为,实现更加适配本土的业务场景的三权分立功能。

2026-02-05 15:03:14 834

原创 移动云大云海山数据库(He3DB)postgresql_anonymizer插件原理介绍与安装

插件通过扩展PostgreSQL系统表,新增脱敏规则相关的元数据存储结构,如在pg_attribute(列属性表)中关联脱敏函数标识、脱敏策略类型等信息,或创建独立的系统视图(如pg_anonymizer_rules)维护表、列与脱敏规则的映射关系。插件在查询执行时实时脱敏,不修改数据库中存储的原始数据,既保证了生产环境数据的完整性,又确保脱敏后数据的格式与业务场景匹配(如脱敏后的手机号仍为11位,可用于开发测试中的格式校验)。三者协同工作,共同构成完整的数据脱敏防护体系,具体流程如上图所示。

2026-02-05 14:54:50 1241

原创 移动云大云海山数据库(He3DB)基于postgresql_anonymizer插件动态数据脱敏用法

本文将详细介绍 postgresql_anonymizer 插件的核心用法,包括脱敏规则配置(静态绑定与动态绑定)、权限管理、脱敏效果验证、规则维护及高级应用场景,帮助用户快速掌握基于海山数据库实现动态数据脱敏的实操方案,为业务场景中的敏感数据提供全方位保护。李*明 | 139****4321 | 310101********6789 | li****@example.com。王* | 137****3344 | 440101********4321 | wa****@example.com。

2026-01-29 17:34:22 647

原创 大云海山数据库(He3DB)前沿探索:传统数据库的AI进化与实战指南

向量在数学上是一组有序的数字列表,表示为[v₁, v₂, ..., vₙ],其中每个数字称为分量,对应一个维度。在AI领域中,向量是高维空间中的点,用于表示复杂数据的特征。向量嵌入是一种特殊类型的向量,专门用于将单词、句子、图像等复杂数据转换为数字表示,并捕捉其内在含义或语义关系。你可以将向量嵌入理解为一个对象的"数字指纹"或"DNA序列"。

2026-01-28 15:18:06 589

原创 深度解析大云海山数据库(He3DB)FileCache 机制

FileCache 作为 He3DB 数据库 的高性能二级缓存方案,通过 “本地缓存 + 智能淘汰 + 一致性保障”,有效突破了远程数据访问和磁盘 IO 的性能瓶颈。数据根据不同的访问规则,被标记为冷数据,热数据和温数据,存储在相应位置,当filecache 温数据层在实践中配置合理的大小,保证较高的命中率时,将会大大提高数据访问性能,在读多写少的场景中将会有较好的性能表现。

2026-01-28 15:11:09 1021

原创 大云海山数据库(He3DB)集群自动化部署:幂等性与流水线编排

本文探讨了高可用数据库集群部署的关键设计理念。针对传统手工部署存在的顺序复杂、容错性差等问题,提出了四大核心原则:1)幂等性优先,确保操作可安全重试;2)流水线编排,通过依赖分析实现混合调度;3)声明式配置,让用户只需描述最终状态;4)容错与自愈机制,包含断点续传、自动重试等功能。这些设计理念在保证部署正确性的同时,显著提升了效率和可靠性,为复杂数据库集群的自动化部署提供了系统化解决方案。

2026-01-27 09:40:28 961

原创 大云海山数据库(He3DB)AutoVacuum源码解析

AutoVacuum是数据库基于MVCC(多版本并发控制)机制设计的自动化维护功能,其核心价值在于解决MVCC带来的固有问题,规避手动维护短板,保障数据库长期稳定运行,具体原因如下:1、 解决表膨胀问题:数据库执行update/delete操作时,不会直接删除旧元组,仅标记为“死元组”以保障并发事务可见性。这些死元组长期堆积会占用大量磁盘空间,导致表和索引体积膨胀,大幅增加查询扫描范围,降低执行效率,AutoVacuum可及时清理此类无效数据。

2026-01-26 14:32:46 729

原创 大云海山数据库(He3DB)进程管理

Postmaster 本身不处理 SQL 查询,但它是整个海山数据库进程架构的基石。理解了 Postmaster,就理解了海山数据库如何通过精心设计的进程管理、信号处理和状态机,实现高可用性、高可靠性的数据库系统。

2026-01-26 14:28:40 662

原创 大云海山数据库(He3DB)多NUMA架构中同步复制性能优化

摘要:本文针对多NUMA架构下大云海山数据库(He3DB)同步复制的性能瓶颈问题展开研究。通过分析发现,跨NUMA节点内存访问延迟和缓存争抢会显著影响共享内存区域的访问性能,其中SyncRepLock锁争抢成为主要瓶颈。研究提出将被动等待唤醒机制改为主动轮询检查的方案,通过避免锁争抢实现性能优化。实验表明优化后SyncRepWaitForLSN函数调用占比显著降低,整体事务处理能力提升超过100%。该研究为多NUMA环境下的数据库同步复制优化提供了有效解决方案。

2026-01-23 10:37:09 577

原创 大云海山数据库(He3DB) pg_upgrade内核升级原理及核心源码分享

pg_upgrade是PostgreSQL官方提供的跨版本升级工具,通过物理文件传输实现高效升级。其核心流程包括:1)初始化和参数解析;2)环境检查与预处理;3)OID映射生成;4)新集群准备;5)文件传输(支持并行);6)系统目录升级;7)约束重建;8)清理验证。该工具采用ClusterInfo等核心数据结构,通过并行处理优化性能,相比逻辑导出方式显著提升大数据库升级效率,是PostgreSQL版本升级的标准方案。

2026-01-23 10:27:30 618

原创 大云海山数据库(He3DB)源码解读:T_AlterDefaultPrivilegesStmt原理浅析

摘要:本文详细解析了He3DB中ALTER DEFAULT PRIVILEGES命令的执行机制,该命令用于修改数据库对象(如表、函数等)的默认权限设置。文章首先介绍了命令的执行流程,包括SQL解析、权限检查、事务处理等环节;其次分析了核心结构体AlterDefaultPrivilegesStmt和InternalDefaultACL的定义与功能;最后深入解读了ExecAlterDefaultPrivilegesStmt和SetDefaultACL等关键函数的实现逻辑,包括权限合并、ACL比较更新等核心操作。

2026-01-22 15:07:29 1162

原创 大云海山数据库(He3DB) 内核级兼容MySQL timestampdiff函数的实现方案

本文探讨了MySQL向PostgreSQL迁移时timestampdiff函数的内核级兼容实现方案。通过分析MySQL函数特性,在He3DB内核中新增系统表元数据、语法解析支持及核心计算逻辑,完整复现了MySQL的7种时间单位计算、NULL处理、闰年规则等特性。改造涉及pg_proc系统表扩展、datetime.c核心算法开发及语法解析层适配,最终实现功能兼容性100%。该方案为数据库迁移提供高性能原生支持,避免了UDF的性能损耗,并为其他MySQL函数兼容提供了技术范式。

2026-01-22 15:00:47 635

原创 大云海山数据库(He3DB) 内核分析 — pg_migrate源码流程

PostgreSQL原生缺乏online DDL功能,在执行某些DDL操作(如修改列类型)时需要长时间锁表,影响高并发系统。pg_migrate插件通过以下流程实现无锁表结构变更:1)收集表结构信息并创建临时表;2)添加咨询锁和触发器记录增量数据;3)分两阶段拷贝数据到临时表;4)单/多线程重建索引;5)应用增量数据并校验约束;6)短暂持有排他锁完成表名切换;7)清理临时对象。该方案通过连接分离、增量同步和锁优化,显著减少锁表时间,支持并发DML操作。

2026-01-06 16:21:48 701

原创 大云海山数据库(He3DB) 内核分析-子查询优化

文章摘要:本文分析了He3DB中子查询优化的实现,重点探讨了子连接上拉和子查询上拉两种优化技术。子连接上拉主要处理EXISTS_SUBLINK和ANY_SUBLINK类型,将其转换为半连接或反连接;子查询上拉则通过pull_up_subqueries_recurse函数实现,需满足特定条件才能提升简单子查询。文章详细说明了各类子查询的转换条件、处理流程及代码实现逻辑,揭示了He3DB子查询优化的实现机制与限制。

2026-01-04 10:46:31 1074

原创 大云海山数据库(He3DB) 内核分析 — Btree索引篇

本文重点分析了He3DB数据库中B-Tree索引的实现原理。首先介绍了B+Tree的基本结构特点,包括键值存储在叶子节点、叶子节点双向链接等。随后详细阐述了索引的创建过程,包括元组转换、排序、页面填充及B+Tree构建等关键步骤。在查询方面,解释了索引扫描的工作原理及与回表操作的配合机制。对于数据更新,分析了索引插入时的页面分裂处理流程,以及删除操作中标记删除与物理删除的区别。最后总结了B+Tree索引在等值和范围查询中的优势,并指出其内部节点与叶子节点的不同指向特点。

2026-01-04 10:36:23 1042

原创 大云海山数据库(He3DB)兼容 MySQL 日期函数:DATE_ADD的内核实现与复合间隔支持

本文针对大云海山数据库(He3DB)兼容MySQL生态时缺乏DATE_ADD和DATE_SUB函数的问题,提出了一种内核级解决方案。通过在语法解析器和时间处理模块中新增C函数,实现了对MySQL特有的11种复合时间间隔格式的完整支持。该方案采用"语法扩展+格式转换+原生运算"的三层架构,成功实现了与MySQL完全兼容的时间运算功能,显著降低了数据库迁移成本,为异构数据库兼容提供了可复用的技术范式。

2025-12-23 15:29:14 1218

原创 大云海山数据库(He3DB)基于pg_mooncake插件实现列存兼容

摘要:pg_mooncake是一款PostgreSQL列存兼容插件,通过扩展表访问方法接口实现高效的列存储能力。该插件采用分区存储、压缩算法和列存索引优化,支持事务一致性和并行查询,查询效率提升5-10倍,存储空间减少40%-70%。安装需满足PostgreSQL版本和依赖库要求,支持创建列存表并指定压缩策略,与行存表协同工作。适用于OLAP场景,但不适合高频单条操作,建议批量插入并定期维护。

2025-12-23 15:11:29 842

原创 大云海山数据库(He3DB) 负载均衡动态调整流量方案原理说明

本文介绍了He3DB的自适应请求处理机制,通过He3Proxy中间件实现基于节点负载的智能路由。系统采用Prometheus采集DB节点的CPU、内存、磁盘IO等指标,通过加权算法计算节点健康值,Proxy定期更新并选择最优节点处理读请求。测试验证表明,当主节点CPU负载升高时,Proxy能自动将请求路由到备用节点,有效实现了负载均衡。该系统通过实时监控和动态评分机制,确保了数据库集群的高效稳定运行。

2025-12-22 15:58:51 987

原创 从UPSERT功能解读大云海山数据库(He3DB)投影信息构建流程

摘要:本文解析了He3DB中UPSERT功能的实现机制,重点比较了UPSERT与REPLACE INTO在冲突处理时的差异。通过源码分析展示了投影信息构建流程,详细说明了ExecBuildProjectionInfo和ExecBuildUpdateProjection函数的执行步骤,包括表达式初始化、列处理和安全判断等关键操作。文章指出UPSERT操作会额外构建投影信息存储到特定结构中,这是其与普通INSERT在投影信息构建阶段的主要区别。后续将深入探讨投影步骤执行流程的细节实现。

2025-12-22 15:46:11 981

空空如也

空空如也

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

TA关注的人

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