DongSQL数据库内核V1.1.0介绍

引言

京东零售数据库团队持续多年深耕数据库技术领域,团队于今年(2025.9)打磨出了深度优化的自研数据库内核------DongSQL V1.1.0。

[如果对前因后果比较感兴趣,可以移步上一篇文章 《宝剑锋从磨砺出------零售数据库内核,为大促铸剑!》]

本文将深度解析DongSQL在语法扩展、并发控制、查询优化等方面的内核改造,以及在电商场景下的优化实践。

1、DongSQL在语法扩展上的优化

1.1. RETURNING子句功能

▶︎ 语法扩展创新:DongSQL在标准SQL语法基础上扩展了RETURNING子句,这是重要语法创新。RETURNING子句允许DML语句(INSERT、UPDATE、DELETE、REPLACE)在执行数据修改操作的同时返回受影响的行数据,无需额外查询。

传统数据库在执行DML操作后,如果需要获取操作结果,必须执行额外的SELECT查询,这在高并发场景下会产生额外的网络往返开销。DongSQL通过RETURNING子句彻底解决了这一问题。

sql 复制代码
-- INSERT操作返回自增ID
INSERT INTO orders (customer_id, order_date) VALUES (1001, NOW()) RETURNING order_id;

-- UPDATE操作返回更新后的数据
UPDATE products SET price = price * 1.1 WHERE category = 'electronics' 
RETURNING product_id, name, old_price, price;

-- DELETE操作返回被删除的记录
DELETE FROM expired_sessions WHERE expire_time < NOW() 
RETURNING session_id, user_id, expire_time;

▶︎ 性能提升效果:经测试验证,RETURNING子句在不同场景下都能带来显著的性能提升:

固定行更新场景:16并发时TPS提升61%,响应时间降低44%

随机行更新场景:128并发时TPS提升18%

大规模更新测试:2000万次操作中平均TPS提升5-10%

▶︎ 生产落地预期:该功能与DongDAL发号器逻辑高度匹配,有望将发号器性能瓶颈大幅提升(DongDAL团队配套开发推进中)

1.2. Hint语法扩展

▶︎ 多样化Hint支持:DongSQL扩展了Hint语法体系,提供了针对电商场景的专用提示功能,包括并发控制、库存管理等领域特定的优化。

▶︎ Inventory Hint:专门针对电商库存管理场景设计的提示语法,提供目标影响行数控制、自动提交/回滚等特性。

ini 复制代码
-- 库存扣减:确保只影响一行,成功自动提交,失败自动回滚
UPDATE /*+ TARGET_AFFECT_ROW(1) COMMIT_ON_SUCCESS ROLLBACK_ON_FAIL */
inventory SET stock = stock - 5 
WHERE product_id = 1001 AND stock >= 5;

▶︎ 性能提升数据:在16并发的库存扣减场景下,使用Inventory Hint比不使用hint性能提升215%。

2、DongSQL在并发控制上的优化

2.1. CCL并发控制

▶︎ 多维度限流机制:DongSQL实现了CCL(Concurrency Control)并发控制功能,通过多维度的限流策略,有效解决电商秒杀场景下的热点数据访问问题。

传统数据库在面对高并发热点数据访问时,往往会因为激烈的锁竞争导致性能急剧下降,甚至系统雪崩。DongSQL的CCL通过智能排队机制,将无序的并发请求转换为有序处理,从根本上解决了这一问题。

▶︎ 多维度控制策略

基于字段的限流ccl_queue_field(column_name, concurrency),对特定字段值进行并发控制

基于值的限流ccl_queue_value(value, concurrency),对特定数据值进行精准限流

基于SQL指纹的限流ccl_queue_digest(concurrency),对相同SQL模式进行统一管控

sql 复制代码
-- 对商品ID为999的热门商品进行限流,并发度限制为5
SELECT /*+ ccl_queue_value(999, 5) */ * FROM products WHERE product_id = 999;

-- 对库存扣减操作按商品ID进行限流
UPDATE /*+ ccl_queue_field(product_id, 8) */ inventory SET stock = stock - 1 WHERE product_id = ?;

-- 对相同SQL模式进行统一限流
SELECT /*+ ccl_queue_digest(10) */ * FROM hot_products WHERE status = 1;

▶︎ 性能突破数据

秒杀场景优化:在4096并发下,使用CCL限流后TPS从573提升至1337,性能提升133%

系统稳定性:有效防止系统雪崩,将无序并发转换为有序处理

热点缓解:通过队列机制显著降低热点数据的锁竞争

2.2. Statement Outline执行计划及自定义提示管理

▶︎ 企业级计划稳定性:DongSQL提供了Statement Outline功能,用于固化重要SQL的执行计划,防止因数据变化导致的计划不稳定问题。

▶︎ 自定义Hint注入工具:包括但不限于上述秒杀、CCL限流场景的Hint,即使业务研发预期外的过载或者突发流量发生,应急情况下DBA也可以通过Statement Outline功能对问题SQL进行干预

sql 复制代码
-- 为重要SQL固化执行计划
CALL dbms_outln.add_index_outline(
  'test_db', '', 1, 'USE INDEX', 'idx_status', '',
  'SELECT * FROM orders WHERE status = "PAID"'
);

-- 为特定查询添加ccl_queue_digest限流hint,限制并发度为2
CALL dbms_outln.add_optimizer_outline(
  'test_db', '', 1, '/*+ ccl_queue_digest(2) */',
  'SELECT * FROM orders WHERE customer_id = 1001'
);

▶︎ 核心价值

性能稳定性:保障核心SQL性能不因数据变化而波动

智能限流:支持基于SQL指纹的手动限流和自动限流(自动限流默认不开启,需要开启的业务需单独申请)

企业级管理:提供生产级的执行计划管理能力

3、DongSQL在查询优化上的改进

3.1. 单点查询优化

▶︎ 查询路径优化:DongSQL实现了单点查询bypass功能,针对主键等值查询这类高频简单查询,绕过部分SQL层处理逻辑,直接访问存储引擎,大幅提升查询性能。

电商场景中,商品详情查询、用户信息查询等基于主键的简单查询占据了很大比例。虽然这些查询逻辑简单,但在高并发下仍然消耗大量CPU资源。DongSQL的单点查询优化针对这一痛点进行了专项优化。

▶︎ 性能提升数据

不同环境性能提升:容器环境提升20%,物理机环境提升30%

高并发场景:当CPU达到瓶颈时,QPS提升20-28%

资源效率:相同硬件配置下处理能力显著提升

3.2. 线程池优化

▶︎ 高并发处理能力:DongSQL实现了企业级线程池功能,通过智能线程调度和资源管理,显著提升了系统在高并发场景下的处理能力和稳定性。

传统数据库在面对大量并发连接时,会为每个连接创建独立线程,这在高并发下会导致线程切换开销过大、内存消耗激增等问题。DongSQL的线程池优化通过复用线程资源,有效解决了这些问题。

▶︎ 调度机制

线程复用: 通过线程池复用减少线程创建销毁开销

负载均衡: 分配任务到不同线程,避免热点线程

优先级调度: 支持任务优先级,保障重要业务优先处理

▶︎ 性能突破数据(基于8C32G测试环境,sysbench 16张表每张1000万行数据):

只读场景性能对比

低并发优势:32线程时,线程池模式QPS达到141,261,相比传统模式的110,658提升27.6%

高并发稳定性:在512线程高并发下,线程池模式QPS保持131,939,而传统模式仅61,580,性能提升114%

延迟控制:512线程时TP99延迟从传统模式的297.92ms优化到118.92ms,降低60%

纯写场景性能突破

中等并发:64线程时QPS从46,577提升到57,655,性能提升23.8%

高并发场景:512线程时QPS从29,541提升到58,166,性能提升97%

超高并发:4096线程时QPS从28,571提升到54,687,性能提升91%

读写混合场景优化

128线程:QPS从54,870提升到80,244,性能提升46%

256线程:QPS从48,787提升到77,961,性能提升60%

延迟优化:256线程时TP99延迟从196.89ms优化到158.63ms,降低19%

3.3. 其他查询执行优化

▶︎ 执行路径优化:DongSQL在查询执行引擎层面进行了多项优化,包括算子优化、内存管理优化、并行执行优化等。

▶︎ 缓存机制增强:优化了Buffer Pool管理策略,页面mutex优化,提升了数据访问效率,降低了I/O锁冲突。

4、性能基准测试汇总

OLTP标准基准测试

基于标准测试环境的性能数据(16C32G, 16张表,每张表100万行):

测试场景 最佳线程数 TPS QPS TP99延迟 平均延迟
只读查询 64 19,484 311,745 21.50ms 3.28ms
只写操作 256 17,004 102,025 29.72ms 15.05ms
插入操作 256 25,614 25,614 15.83ms 9.99ms
读写混合 128 9,795 195,908 33.12ms 13.06ms
点查询 64 560,933 560,933 0.18ms 0.11ms

电商场景专项性能汇总

优化模块 测试场景 性能提升幅度 关键指标
RETURNING子句 固定行更新 61% TPS: 925→1,490
CCL并发控制 秒杀场景 133% TPS: 573→1,337
Inventory Hint 库存扣减 215% TPS: 1,537→4,843
单点查询优化 主键查询 28% QPS: 76,432→98,470

5、未来规划

1.持续语法扩展:基于业务需求继续扩展SQL语法功能

2.智能优化增强:引入机器学习优化执行计划选择

3.内核级技术支持:具备内核研发能力的团队,持续从最底层为业务研发提供深度优化的数据库解决方案

4.云原生存算分离:继续打造属于京东自己的高性能低成本数据库产品

6、结语

从开源内核到自研DongSQL,京东零售数据库团队始终以"业务价值驱动技术创新"为核心理念。DongSQL作为专为京东电商场景设计的数据库,通过语法扩展、并发控制、查询优化等多个模块的深度创新,为电商业务的快速发展提供了强有力的数据库技术支撑。

这些优化不仅提升了系统性能,更重要的是为集团基础技术底座提供了坚实的基础。未来,京东零售数据库团队将持续深耕数据库内核技术,让数据库更好地服务业务发展。

相关推荐
LibSept24_1 小时前
会议透镜(Meeting Lens):基于 Rokid CXR-M 的 AI 会议纪要实战
后端
课程xingkeit与top1 小时前
高性能多级网关与多级缓存架构落地实战(超清完结)
后端
课程xingkeit与top1 小时前
SpringBoot2 仿B站高性能前端+后端项目(完结)
后端
课程xingkeit与top1 小时前
AI Agent智能应用从0到1定制开发(完结)
后端
Carve_the_Code1 小时前
分布式订单系统:订单号编码设计实战
java·后端
Home1 小时前
23种设计模式之代理模式(结构型模式二)
java·后端
落枫591 小时前
OncePerRequestFilter
后端
程序员西西1 小时前
详细介绍Spring Boot中用到的JSON序列化技术?
java·后端
课程xingkeit与top1 小时前
大数据硬核技能进阶:Spark3实战智能物业运营系统(完结)
后端