自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 海山数据库(He3DB)源码解读:海山PG 死锁处理实现

按照功能划分,锁管理分为锁功能模块,锁级别管理模块,死锁处理模块。锁功能模块:针对三种类型的锁功能,自旋锁,轻量级锁,事务锁。锁级别管理模块:针对四种不同级别的锁管理器,表级别、页级别、元组级别、事务级别。死锁处理模块:包括死锁检测功能和死锁处理功能。图1 锁管理模块介绍徐元慧,移动云数据库高级系统架构师,负责云原生数据库He3DB的架构设计与研发。oftEdges, int *nSoftEdges) | 死锁环递归检测 |

2024-07-26 09:06:31 240

原创 海山数据库(He3DB)源码解读:海山PG 事务锁实现

按照功能划分,锁管理分为锁功能模块,锁级别管理模块,死锁处理模块。锁功能模块:针对三种类型的锁功能,自旋锁,轻量级锁,事务锁。锁级别管理模块:针对四种不同级别的锁管理器,表级别、页级别、元组级别、事务级别。死锁处理模块:包括死锁检测功能和死锁处理功能。图1 锁管理模块介绍徐元慧,移动云数据库高级系统架构师,负责云原生数据库He3DB的架构设计与研发。

2024-07-26 09:05:54 318

原创 海山数据库(He3DB)源码解读:海山PG SpinLock实现

按照功能划分,锁管理分为锁功能模块,锁级别管理模块,死锁处理模块。锁功能模块:针对三种类型的锁功能,自旋锁,轻量级锁,事务锁。锁级别管理模块:针对四种不同级别的锁管理器,表级别、页级别、元组级别、事务级别。死锁处理模块:包括死锁检测功能和死锁处理功能。图1 锁管理模块介绍徐元慧,移动云数据库高级系统架构师,负责云原生数据库He3DB的架构设计与研发。

2024-07-26 09:05:23 264

原创 海山数据库(He3DB)源码解读:海山PG LWLock实现

按照功能划分,锁管理分为锁功能模块,锁级别管理模块,死锁处理模块。锁功能模块:针对三种类型的锁功能,自旋锁,轻量级锁,事务锁。锁级别管理模块:针对四种不同级别的锁管理器,表级别、页级别、元组级别、事务级别。死锁处理模块:包括死锁检测功能和死锁处理功能。图1 锁管理模块介绍徐元慧,移动云数据库高级系统架构师,负责云原生数据库He3DB的架构设计与研发。

2024-07-26 09:04:47 179

原创 海山数据库(He3DB)性能优化方案解析

前端优化是一个永恒的话题,每个前端开发者都希望自己的页面能够快速加载,给用户良好的体验。但往往事与愿违。因此,本文从编码优化、构建优化、部署优化三方面入手进行web页面性能优化。

2024-07-26 09:04:16 220

原创 海山数据库(He3DB)技术解析:海山数据库智能调参技术实践

调整数据库系统以在给定工作负载上实现最佳性能是数据库社区中长期存在的问题。LlamaTune作为一种简单高效的DBMS 参数微调方法,除了在微调时间上较传统的SMAC方法降低了超50%,但是其参数微调之后的SQL平均运行时间缩短了超过20%,具有稳定优势。此外人工挑选的少量参数,在经过Llamatune和smac微调之后,SQL的平均运行时间基本没什么变化,说明少量参数在经过算法模型微调后效果有限,其参数之间的关联性和约束不易捕捉。

2024-07-26 09:03:44 129

原创 海山数据库(He3DB)技术解析:海山Redis定时任务与持久化管控设计

针对这类共性问题,定时任务和持久化管控组件应运而生,通过定时任务的动态规划和数据持久化的管控分发,尽可能减少某一时刻持久化任务密集的情况,从而确保云盘服务的稳定性。本文将从源码设计层面通过问答的形式分析移动云Redis产品定时任务与持久化管控组件的设计思路。定时任务与持久化管控组件基于K8s的选主机制,通过pod自管的方式实现了多副本容灾功能,并且确保定时任务和实例持久化在设定时间只会执行一次,有效避免多副本多次执行同一任务的情形,确保了云盘服务的稳定性,减少了云上数据库实例的告警报障。

2024-07-26 09:03:12 277

原创 海山数据库(He3DB)技术解析:海山PG FSM实现机制

时丕显,移动云数据库内核研发工程师,负责云原生数据库海山PostgreSQL版的功能设计与研发。

2024-07-26 09:02:38 161

原创 海山数据库(He3DB)技术分享:海山MySQL备份redo被覆盖问题分析

根据上述表格,大概可以总结出以下结论:redo写入速率越快,备份报错时间越短,我们通过获取备份时间内的redo写入大小除以备份报错时长得到redo写入速率,再根据redolog的总大小除以备份报错时长得到redo拷贝速率,两者相减得到偏差速率(即每秒未完成拷贝的redo大小)。通过计算redo写入速率和偏差速率的比率,得到1个相对平均的比率值约等于0.56,即redo写入速率 * 0.56 ≈ 偏差速率。

2024-07-26 09:02:04 159

原创 海山数据库(He3DB)技术分享:海山MySQL 5.7版本GTID丢失问题分析及解决方案

3.先反向扫描,获取最后一个binlog中包含的最新GTID EVENT和Previous-GTIDs。

2024-07-25 11:04:23 495

原创 海山数据库(He3DB)从方法到实践,构建以场景为中心的体验管理体系

竞品分析,为的不是死磕对手,而是思考产品本质,是为自身服务,知己知彼,才能洞悉竞争格局,紧跟市场步伐。为了从更多视角发现更多体验问题,产品每个季度进行一次交叉走查或专家走查,扩大走查人员的范围,发动不同的角色参与到产品的体验中,发现一些被忽略和隐藏的问题,并从6个维度对产品进行评分,进而为产品优化助力。为了从更多视角发现更多体验问题,产品每个季度进行一次交叉走查或专家走查,扩大走查人员的范围,发动不同的角色参与到产品的体验中,发现一些被忽略和隐藏的问题,并从6个维度对产品进行评分,进而为产品优化助力。

2024-05-23 19:23:00 897

原创 海山数据库(He3DB)数据仓库发展历史与架构演进:(一)传统数仓

数据仓库的演进变革的因素有很多,例如快速的业务模式与群体规模的数据量带来的大数据处理技术、互联网的发展带来的数据源及数据类型的增多、人工智能的发展带来数智的融合、云计算交付模式的出现需要的细粒度的资源管理与隔离等,业务实时性的要求等都会带来数据仓库架构的变化。随着业务的发展,单机数据仓库的数据存储和计算模式不能满足大量数据处理的需求,在这个背景下基于MPP架构的数据仓库成为主流的解决方案,这阶段的数仓产品以在2000年代后出现的Teradata、Greenplum、Vertica等为代表。

2024-05-23 19:22:00 1151

原创 海山数据库(He3DB)数据仓库发展历史与架构演进:(三)云数仓

数据仓库的演进变革的因素有很多,例如快速的业务模式与群体规模的数据量带来的大数据处理技术、互联网的发展带来的数据源及数据类型的增多、人工智能的发展带来数智的融合、云计算交付模式的出现需要的细粒度的资源管理与隔离等,业务实时性的要求等都会带来数据仓库架构的变化。传统数仓将计算与存储部署在同一个节点,集群的扩容复杂,需要进行数据的迁移,同时架构存在木桶效应,单节点故障会影响整体的性能,且资源管理不灵活,无法满足不同场景下资源隔离及动态调整的需求。,这些产品之间的功能基本相同,只是在技术细节的实现各有不同。

2024-05-23 19:21:11 1118

原创 海山数据库(He3DB)数据仓库发展历史与架构演进:(二)大数据数仓

但是数据仓库从概念上看是一个面向主题、集成、相对稳定和反映历史变化的数据集合,在数据仓库中信息是在不同的业务系统中进行集成,并经过一系列加工、整理和汇总等过程,形成规范性的关于确定主题的一致的全局信息,可以对这些数据进行频繁的可重复的分析。数据仓库的演进变革的因素有很多,例如快速的业务模式与群体规模的数据量带来的大数据处理技术、互联网的发展带来的数据源及数据类型的增多、人工智能的发展带来数智的融合、云计算交付模式的出现需要的细粒度的资源管理与隔离等,业务实时性的要求等都会带来数据仓库架构的变化。

2024-05-23 19:20:16 1130 1

原创 海山数据库(He3DB)代理ProxySQL使用详解:(一)架构说明与安装

后端的MySQL实例可根据用途配置到不同的hostgroup中,由ProxySQL基于7层网络协议,将来源于APP的流量路由到对应的hostgroup内,从而实现负载均衡或者读写分离。通常用于黑名单功能,即如果匹配该规则后,如果其error_msg不为空,则客户端的操作将会接受到error_msg设置的错误信息;transaction_persistent:表示是否持久化事务,设置为1表示开启一个事务后,该事务的所有操作均在同一个hostgroup中操作完成,其会忽略设置的任何查询规则;

2024-05-23 19:15:47 812

原创 海山数据库(He3DB)代理ProxySQL使用详解:(二)功能实测

后面启动会就不会读取proxysql.cnf文件了!如果想要让proxysql.cnf文件里的配置在重启proxysql服务后生效(即想要让proxysql重启时读取并解析proxysql.cnf配置文件),则需要先删除/var/lib/proxysql/proxysql.db数据库文件,然后再重启proxysql服务。这样就相当于初始化启动proxysql服务了,会再次生产一个纯净的proxysql.db数据库文件(如果之前配置了proxysql相关路由规则等,则就会被抹掉)。

2024-05-23 19:14:21 462

原创 海山数据库(He3DB)线程池方案详解

同时,由于保留了一定数量的连接,当业务端新请求到达时可直接复用、无需新建连接,节省业务侧建连时间。判断当前请求是否属于高优先级队列,若属于,则放入高优先级队列,反之,则放入低优先级队列;移动云优化后的线程池会将工作线程数控制在一定范围内,随着并发数的增加,性能基本与最高点持平,无明显下降趋势。线程池的不足在于当请求偏向于慢查询时,工作线程阻塞在高时延操作上,难以快速响应新的请求,导致系统吞吐。的状态,同时,对延迟的容忍度较低,因此,线程池节流效果不太理想。不过,即使在这种情况下,也可以通。

2024-05-23 19:13:11 453

原创 He3DB MySQL计算下推优化设计

计算下推是数据库优化器优化查询性能的一种常见手段,早期的数据库系统提及的计算下推一般是指谓词下推,其。谓词下推是指将查询语句中的过滤表达式尽可能下推到距离数据源最近的地方做计算,以尽早完成数据的过滤,进。层做查询优化时,为了避免下推后导致结果集有误,需先判断是否满足下推条件(单表查询、的同时,还可以把数据存放在其他的存储引擎上。之间直接比较的效率,在这种情况下,条件被下推到存储引擎做计算。这种采用经典火山模型的关系型数据库,最常见的就是谓词下推。念逐步流行,计算下推的涵盖范围由此从基本的谓词。

2024-05-20 13:45:51 1016

原创 云原生数据库海山(He3DB)PostgreSQL版核心设计理念

薛港,移动云高级研发工程师,负责云原生数据库海山PostgreSQL版架构设计。拥有逾十年数据库内核开发经验,在云计算基础设施与数据库整合领域具备丰富的实践知识。

2024-04-12 17:14:11 700

原创 海山数据库(He3DB)Redis技术实践:继承开源Redis精髓,强化升级企业级服务

数字化转型中的企业数据的处理速度和效率直接关系到企业的竞争力,Redis作为业界广泛使用的开源键值对存储系统,以其卓越的性能和丰富的数据结构,成为了众多开发者和企业的首选。

2024-04-11 15:08:28 1968

原创 海山数据库(He3DB)原理剖析:浅析OLAP数据库计算引擎中的统计信息

张步涛,中国移动云能力中心数据库产品部-OLAP数据库开发工程师。主要参与OLAP内核研发/湖仓一体研发相关工作。

2024-04-10 10:48:06 1626

原创 海山数据库(He3DB)原理剖析:浅析Doris跨源分析能力

张步涛,中国移动云能力中心数据库产品部-OLAP数据库开发工程师。主要参与OLAP内核优化/湖仓一体分析的研发。

2024-04-09 13:09:02 914

原创 海山数据库(He3DB)技术干货:StarRocks Compaction机制解析及性能调优

本文以StarRocks新发布的3.2.1版本为基准,介绍了新架构下生产者-消费者模型的Compaction任务管理框架。针对任务管理框架的核心问题,即如何挑选rowset进行Compaction,介绍了基于大小分层的rowset挑选策略,并分析了Compaction紧迫程度评估指标Score的影响因素,总结了该策略的优点;其次阐述了Compaction的调度执行流程;最后,从两个典型场景角度出发,作了Compaction性能调优的思考。

2024-04-08 14:48:29 920

原创 数据仓库发展历史与架构演进

但是数据仓库从概念上看是一个面向主题、集成、相对稳定和反映历史变化的数据集合,在数据仓库中信息是在不同的业务系统中进行集成,并经过一系列加工、整理和汇总等过程,形成规范性的关于确定主题的一致的全局信息,可以对这些数据进行频繁的可重复的分析。数据仓库的演进变革的因素有很多,例如快速的业务模式与群体规模的数据量带来的大数据处理技术、互联网的发展带来的数据源及数据类型的增多、人工智能的发展带来数智的融合、云计算交付模式的出现需要的细粒度的资源管理与隔离等,业务实时性的要求等都会带来数据仓库架构的变化。

2024-04-07 17:45:24 1770

原创 移动云海山数据库(He3DB)-SQL语句执行流程(2)

该函数会在很多地方被调用,这是因为SQL Rewrite的过程中,列会发生变化(例如derive table、subquery),生成表的列优化为物理表的列。调用init_read_record() 在records.cc中 读取第一条记录、提供了多种set up的方式 rr_unpack_from_buffer、rr_from_pointers、rr_unpack_from_tempfile、rr_from_tempfile、rr_from_cache、rr_quick、rr_sequential。

2024-01-03 14:15:40 832

原创 移动云海山数据库(He3DB)-SQL语句执行流程(1)

Mysqld_socket_listener *mysqld_socket_listener 此类表示Mysqld_socket_listener,它准备侦听器套接字以接收来自客户端的连接事件。void Global_THD_manager::add_thd(THD *thd) 在mysql_thd_manager.cc中 将该线程加入list中。关键调用函数: thd_manager->add_thd(thd) 在connection_handler_per_thread.cc中。

2024-01-03 14:15:09 376

原创 移动云海山数据库(He3DB)-MySQL关键类之row_search_mvcc

/索引//索引查询条件//当前游标//聚集索引(主键索引)

2024-01-02 10:38:32 340

原创 移动云海山数据库(He3DB)-MySQL关键类之THD

父类2:Query_arena 看它的元素定义Item * m_item_list,它内部一定维护着一个很大的列表 而Item又继承自Parse_tree_node,所以它内部一定维护着Query语句(存储过程)的相关解析后的元素,也就是抽象语法树的结节。MDL_context 元数据锁的上下文,维护元数据的锁,mdl.h代码中有其详细描述:元数据库锁的上下文信息,每个server都有这样一个上下文。THR_LOCK_INFO 线程锁信息,thr_lock.h代码中有其详细描述:拥有锁的线程的描述。

2023-12-29 16:15:42 421

原创 移动云海山数据库(He3DB)-MySQL关键类之Lex

unit是整个表达式 fake:Helper query block for query expression with UNION or multi-level ORDER BY/LIMIT select是一个个查询块,通过链表连接all_select_list连接连接 第一个select查询块是unit的salve、unit是select的master节点。TABLE_LIST **query_tables_last: 指向前序链表中next_global数据的最后一个元素。执行案例:联表子查询。

2023-12-28 14:00:25 942

原创 移动云海山数据库(He3DB)-MySQL关键类之Handler

xxx_hton;其他ha_index_next ha_index_prev ha_index_first ha_index_last,调用相应的index_*函数,本质上存储引擎都有对应的实现 下图以innodb的index_next为例。调用index_read_last_map()函数,本质调用存储引擎层的index_read_last()函数。调用存储层函数:result= index_init(idx, sorted) 该方法首先在handler.h中定义的虚拟方法,调用时由上面的ha_

2023-12-26 17:06:27 408

原创 移动云海山数据库(He3DB)-InnoDB启动

1、重置start state为02、判断是否以只读模式启动3、阻止二次启动InnoDB4、将InnoDB正在启动状态设置为ture5、将是否使用native AIO设置为false5.1为false则使用线程创建的模拟AIO6、注册performance schema stages性能模式阶段7、文件刷新模式设置为FSYNC同步刷新8、设置可以在InnoDB内等待信号量的最大线程数。

2023-12-25 09:55:56 875

原创 移动云海山数据库(He3DB)-InnoDB后台线程(PurgeThread)

Purge Thread主要工作为回收已经使用并分配的undo页。InnoDB1.1开始,purge操作可以从Master Thread中独立到Purge Thread中进行;InnoDB1.2开始,支持多个Purge Thread,;默认为1个协调线程、3个工作线程,协调线程也会充当工作线程角色。

2023-12-22 12:02:25 836

原创 移动云海山数据库(He3DB)-InnoDB后台线程(MasterThread)

Master Thread是非常核心的后台线程,具有最高的线程优先级,主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括:脏页的刷新;合并插入缓冲;undo页的回收等。

2023-12-22 12:01:41 339

原创 移动云海山数据库(He3DB)-服务端启动流程&客户端连接认证

【代码】移动云海山数据库(He3DB)-服务端启动流程&客户端连接认证。

2023-12-21 10:56:17 415

原创 移动云海山数据库(He3DB)-客户端连接认证

server 监听端口client 向server建立TCP连接server 向client发送挑战码报文(mysql认证采用的是CHAP 协议,即挑战握手认证协议,挑战码用于加密client输入的密码,从而避免了网络传输明文密码)client 使用挑战码加密密码,将加密后的密码包含在回包中,发送给serverserver 根据client的回包解密,检查是否与预期的结果相同,给client发送ok包或error包。

2023-12-21 10:55:44 817

转载 实力上榜!移动云海山数据库(He3DB)两项成果入选“星河”案例

近日,中国信息通信研究院、中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)连续七年共同组织的大数据“星河(Galaxy)”案例征集活动发布公示——。

2023-12-13 11:13:00 16

转载 移动云海山数据库(He3DB)选型调研-浅析Doris跨源分析能力

现在流行的数据湖格式如Iceberg,其最亮眼的地方莫过于其多版本元数据管理能力,基于其多版本元数据,上层计算引擎可以做很多有意思的功能,比如timetravel、比如git风格的branch&tag特性,版本回滚等高阶能力。另一个更重要的是pipeline可以精细化控制单个节点内的资源管理,以及可以对算子进行更多的控制,比如大查询需要用的spill task(算子落盘,轻量级容错能力)来进行稳定查询,那么有了pipeline框架,就可以做更好的资源管理、算子控制,可以更多地稳定数据湖的海量数据查询。

2023-12-01 09:59:45 143

转载 移动云海山数据库(He3DB)-数据仓库发展历史与架构演进

数据仓库从概念提出后随着用户使用需求的变化、新技术的出现等多种因素架构在不断演进,在这个过程中不同的厂商针对各自的观点和需求,例如原始数据(数据湖)、实时性、多模数据及机器学习等,不断的在进行架构优化和新技术的引入,针对数仓的概念也在不断的重新定义,下图对这些概念进行了总结:在图中数据库、数据仓库与数据湖是界限相对清晰的产品体系,但是随着技术的发展产品也在相互借鉴融合。数据仓库由于对数据实时性的需求演进到了实时数仓,在这个过程中数据的实时接入框架、查询性能的提升、交互式查询等能力让数仓的实现复杂化;

2023-12-01 09:46:11 100

转载 CCF ChinaSoft 2023 论坛巡礼 | 云计算标准化论坛

云原生绿色化既是端到端推动算力产业实现国家双碳目标的重要一环,也是助力企业解决高效发展问题的关键手段,目前业界头部公司已积极探索该方向。蚂蚁集团基于云原生技术不断演进发展,构建了以“高质量、绿色化、经济性”为特征的通用绿色计算体系,目前已在内部大规模应用并取得较大成效。在此基础上,蚂蚁集团积极探索绿色度量衡,实现业务碳排放的可量化;面向未来,蚂蚁集团也希望与业界共建云原生层面的绿色计算标准体系,共同推动计算绿色化的产业发展。

2023-11-30 11:59:49 94

转载 He3DB 系统架构02

RDS成本和云原生数据库产品力之间存在一个权衡,而正是这种权衡,促使我们决定研发He3DB,我们希望He3DB既能向下占据部分RDS市场,又能向上承接部分云原生数据库业务。以Aurora为代表的云原生数据库,通过架构改造,能够极大的改善了RDS存在的一些问题,例如读写性能相比RDS提升3-5倍,容量支持64T,支持实时备份并保证备份速率高效等能力。开发过程中,不会考虑任何高可用,性能,异常处理。

2023-10-24 10:23:44 40

空空如也

空空如也

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

TA关注的人

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