分布式交易型数据库KunDB原理解读系列文章 | 概述

友情链接


引言

KunDB是星环科技自主研发的分布式交易型数据库,高度兼容Oracle和MySQL,提供数据强一致、高可用、高性能、高扩展、应用透明等能力,一站式解决企业数据存储、管理、计算与安全性问题。自发布以来,KunDB帮助金融、政务、能源、医疗、交通、教育等多个行业客户提供高性能、稳定可靠、经济实用的国产化数据库产品。

为了让广大关注和正在做数据库选型、以及已经使用KunDB的用户更详细地了解星环科技KunDB的技术细节、内在原理、技术优势,以及在实际应用中如何充分利用这些技术优势,我们推出了《KunDB原理解读》系列文章,从以下多个不同模块,对星环科技KunDB的技术原理进行介绍:

  • 01 SQL原理解读
  • 02 分片原理解读
  • 03 事务原理解读
  • 04 安全原理解读
  • 05 多租户原理解读
  • 06 存储原理解读
  • … 新模块持续更新中

通过阅读本系列文章,您将全面了解KunDB数据库的基本原理,深入理解各个模块提供的功能与能力。我们将揭示KunDB在每一个模块中的创新设计与独特优化,帮助您更好地理解这款国产自研数据库的技术细节和优势。在阅读这些文章后,您不仅能掌握KunDB在技术上的创新设计,还能获得在实际应用中如何利用这些优势的具体指导。

正文

接下来,我们将简单介绍各个模块的功能、用途以及KunDB在这些模块中的优化设计。

01 SQL原理解读

KunDB拥有业内领先的Oracle与MySQL兼容性,能够完整支持PL/SQL,可实现各个领域业务系统的Oracle与MySQL国产化平滑改造。同时,KunDB拥有极高的性能,这都是得益于KunDB自研的SQL引擎与独创的PL/SQL编译器。

KunDB的SQL引擎基于先进的火山模型优化器,结合向量化执行引擎,大幅提升了查询处理的速度和效率。此外,KunDB还拥有自研的表达式计算引擎,显著提高了表达式和用户定义函数(UDF)的执行效率。

而KunDB的PL/SQL编译器,作为KunDB SQL引擎的重要组成部分,在支持复杂PL/SQL程序的编译和执行方面,展现出比传统解释执行更高的性能。特别是,KunDB原创的数据库中间优化语言TIR,为数据库查询和程序提供了更深层次的优化。TIR可以被转译成LLVM IR,从而借助于LLVM的优化能力,对用户编写的PL/SQL进行优化。除此之外,TIR还拥有一套异常处理机制,增强了程序的稳定性和可靠性。

在《SQL原理解读》的文章中,我们将为大家揭晓KunDB SQL引擎与自研PL/SQL编译器的实现原理。通过对这些核心技术的深入剖析,您将全面了解KunDB如何在兼容性和性能方面做到业内领先的。

友情链接:

02 分片原理解读

数据库分片是一种将大型数据库拆分成多个小型数据库的策略,每个小型数据库成为一个分片,从而提升数据库的性能。KunDB通过Storegroup与Shard的设计与实现,让用户可以在创建表时指定分片键或默认采用主键做分片键,并使用包括哈希取模分片,一致性哈希分片和范围分片等常见分片算法打散数据。

同时,KunDB还支持数据重分布与动态扩缩容,让数据库操作更加灵活与高效。在数据重分布过程中,KunDB能够自动调整数据的存储位置,以确保均衡的负载分布;在动态扩缩容方面,系统可以根据实际需要增加或减少分片数量,从而应对不同的业务需求和数据量变化。此外,KunDB还支持自动按主键进行分片,进一步简化了用户的操作。

在《分片原理解读》的文章中,我们将深入剖析KunDB分片的实现原理,让大家了解KunDB是如何在增强数据扩展能力的同时,提升数据库操作性能的。

03 事务原理解读

事务是数据库中确保一系列操作全部成功或全部失败的机制,遵循ACID原则以保障数据的完整性和一致性。

KunDB通过基于时间戳的分布式事务方案,结合两阶段提交协议,实现了严格的ACID事务,确保了高可用性、高扩展性、高性能和稳定性。基于TSO机制,通过分发唯一递增的时间戳来维护事务的顺序性,无需全局快照,简化了事务管理。此外,KunDB还支持读写分离、高并发事务处理和全局一致的备份与恢复,为运维和监控提供了坚实基础。值得一提的是,KunDB通过创新性地构造全局稀疏等待关系,实现了轻量化的死锁检测机制,进一步优化了事务处理流程,减少了系统资源消耗,提高了事务处理的效率和可靠性。这种死锁检测机制不仅减少了锁的争用,还提升了系统在高并发环境下的稳定性和响应速度。

在《事务原理解读》的文章中,我们将深入剖析KunDB事务的实现原理,揭示其是如何在保障事务的ACID属性的同时,实现高性能、高并发和高可用性的。

04 安全原理解读

数据库安全是确保数据安全、防止未授权访问和保护数据完整性的一系列措施。面临的风险包括数据泄露、误操作、审计失效、身份冒充、恶意代码注入、非法访问和拒绝服务攻击等。

为了应对这些风险,KunDB实现了多种安全功能。首先,KunDB引入了动态脱敏技术,允许用户使用SQL灵活设置规则,通过自动改写逻辑执行计划来保护敏感数据,防止数据泄露。其次,KunDB采用了TLCP通信加密技术,确保数据在传输过程中的安全性。此外,KunDB的密码模块提供了强大的密码策略和加密算法,以增强账户安全。

KunDB还实施了强制访问控制和自主访问控制,这两种控制机制共同构建了一个细粒度的权限管理系统。强制访问控制采用了基于标签的访问控制方案,允许对数据进行行级、列级保护,确保只有授权用户才能访问特定的数据行。而自主访问控制则允许用户根据自己的需求定义访问规则,提供了更大的灵活性。

在《安全原理解读》的文章中,我们将详细介绍KunDB的安全能力及其实现原理。

05 多租户原理解读

多租户架构通过允许多个用户或租户共享硬件和数据库资源,实现了成本的降低和资源利用率的提高。这种架构通过集中管理简化了维护流程,并能够根据租户的不同需求灵活扩展资源。KunDB在某大数据中心的前置库业务中展示了多租户技术的强大优势:在不增加硬件投入的情况下,相比不使用多租户的情况,多部署了32套前置库,同时显著降低了CPU和内存的消耗,使其分别下降23%和43%。

多租户架构的好处是显而易见的,不仅降低了硬件成本,提高了资源利用率,还简化了系统管理,保证了灵活性与扩展性,满足客户不断增长的业务需求,为客户提供了一个经济、可靠的数据库解决方案。

KunDB的多租户架构之所以能够提供如此高效的性价比,得益于其创新的资源管理策略。通过引入资源组概念和会话绑定,以及定义资源使用限额(RU),实现了资源的有效管控。KunDB的多租户技术支持CPU和存储资源的隔离,确保每个租户都能获得专用的资源配额,有效避免了资源争抢和性能瓶颈。此外,KunDB还实现了用户和数据库的隔离,每个租户的用户只能访问属于自己租户的数据库,不仅增强了数据的安全性,也避免了不同租户之间的数据干扰。这种隔离机制确保了即使在多租户共享环境下,每个租户的数据也能得到充分的保护。

在《多租户原理解读》的文章中,我们将带大家探索KunDB究竟是如何实现多租户技术,达到降本增效的目的的。

06 存储原理解读

关系数据库引擎和存储引擎是数据库系统的核心组件,分别负责数据的组织管理和高效存储。KunDB拥有两大自研引擎:关系数据库引擎TMenStore和内存存储引擎MemDB,其具备众多技术创新点。

TMenStore在高可用性和性能方面表现出色。支持创建无主键表,兼容MySQL业务需求,并通过多副本部署确保数据在同城跨机房时的高可用性,即使机房故障也不会丢失数据。TMenStore优化了大事务处理,支持最大2GB事务,并具备闪回功能,减少用户误操作的影响。还解决了小事务压测中的性能波动问题,通过减少快照同步引发的锁冲突,提高了业务QPS的稳定性。此外,TMenStore修复了网络异常抖动情况下的数据库服务问题,多数派一致超时时间可根据事务特性灵活设置,确保小事务和大事务的顺利提交,实现混合负载下的性能平衡。

MemDB作为内存存储引擎,充分利用大内存优势,将内存作为数据主存储。其数据结构采用直接寻址方式,避免了Page Table的开销,并支持多版本内存表。MemDB使用专为内存设计的MassTree索引结构和多版本时间戳(MVTO)并发控制协议,避免全局锁表,极大减少了锁开销。还拥有去中心化的垃圾回收机制,并采用并行组提交日志写入技术,避免顺序写日志带来的事务提交延迟。通过多线程并行日志和检查点恢复技术,MemDB进一步提升了数据处理效率和恢复能力。

在《存储原理解读》的文章中,我们将揭示KunDB关系数据库引擎TMenStore和内存存储引擎MemDB的技术先进性。

结语

KunDB数据库的模块设计蕴含众多细节设计与优化。本文仅对KunDB部分原理解读模块进行了概述,后续将通过系列文章对每个模块进行层层深入解读。同时,我们也将不断推出更多新的模块介绍,帮助大家更好地了解KunDB的实现原理,敬请期待~


扫描下方二维码即可解锁KunDB白皮书

image.png

评论
登录后可评论
发布者
星小环分享号
官方
文章
193
问答
244
关注者
27
banner
关注星环科技
获取最新活动资讯

加入TDH社区版技术交流群

获取更多技术支持 ->

扫描二维码,立即加入