写点什么

DongSQL 数据库内核 V1.1.0 介绍

  • 2025-11-28
    北京
  • 本文字数:3366 字

    阅读完需:约 11 分钟

引言

京东零售数据库团队持续多年深耕数据库技术领域,团队于今年(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 子句彻底解决了这一问题。

-- INSERT操作返回自增IDINSERT 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:专门针对电商库存管理场景设计的提示语法,提供目标影响行数控制、自动提交/回滚等特性。

-- 库存扣减:确保只影响一行,成功自动提交,失败自动回滚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 模式进行统一管控

-- 对商品ID为999的热门商品进行限流,并发度限制为5SELECT /*+ 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固化执行计划CALL dbms_outln.add_index_outline(  'test_db', '', 1, 'USE INDEX', 'idx_status', '',  'SELECT * FROM orders WHERE status = "PAID"');
-- 为特定查询添加ccl_queue_digest限流hint,限制并发度为2CALL 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 万行):

电商场景专项性能汇总

5、未来规划

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

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

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

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

6、结语

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

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

用户头像

还未添加个人签名 2024-01-12 加入

京东零售那些事,有品、有调又有料的研发资讯,带你深入了解程序猿的生活和工作。

评论

发布
暂无评论
DongSQL数据库内核V1.1.0介绍_京东零售技术_InfoQ写作社区