YashanDB数据库是全面自主设计研发,支持集中式、分布式和共享存储部署架构以及混合负载场景的超融合数据库 。本文简要介绍了YashanDB的特性和部署架构,并部署1主1备的测试环境,验证数据库访问操作、主备切换高可用过程,以了解 。
1、YashanDB基本介绍崖山数据库系统YashanDB是一种新型的数据库管理系统,由深圳计算科学研究院自主设计研发 。它在经典数据库理论的基础上,融入了原创的有界计算理论、近似计算理论、并行可扩展理论和跨模融合计算理论 。YashanDB在部署模式上支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,支持大规模并发事务处理和混合事务-分析处理、在线实时分析、海量数据查询加速以及异构数据融合处理场景 。
1.1 YashanDB数据库核心特性YashanDB数据库是全面自研的国产数据库,满足实时性和高并发下的性能和稳定性要求,同时具备主流的信创改造生态 , 符合应用迁移的标准 。主要有以下特性:
- 全面兼容主流的Oracle数据库和MySQL数据库的语法、语义,应用无需大量改造,可以完成低成本的平滑迁移;
- 兼容适配主流的信创软硬件生态 , 包括芯片、操作系统和中间件等,并且内核代码自主可控,实现自主知识产权的核心竞争力;
- 基于NUMA架构设计并行计算框架,实现高性能低成本的性能要求;
- 提供金融级的高可用容灾能力,实现多种部署模式和多中心多活的高可用部署架构;
- 多种存储引擎架构支持混合负载和实时分析等融合数据处理
文章插图
1.2 YashanDB数据库部署架构YashanDB在部署架构上分为单实例的主备部署、分布式部署以及共享集群的部署模式 , 部署架构如下图所示:
- 单实例主备部署:1主多备的主备部署模式,主备实例部署在不同的主机上采用本地存储 , 主备节点之间通过日志同步的方式进行数据同步 。主节点故障时自动切换到备节点,保证服务的高可用 。
- 分布式部署:基于Shared-nothing架构,由多个实例节点组成(包括MN节点、CN节点和DN节点),这些节点部署在不同的机器上
- 共享集群部署:基于聚合内存的技术实现集群数据库各实例之间协同数据页的读写访问以及各种非数据类的并发控制 。共享集群在部署上是多实例多活的架构,多个数据库实例并发的读写同一份共享数据 。在管理组件上多了YCS和YFS,分别对集群数据的高可用和集群的文件系统进行管理 。
文章插图
三种部署模式分别适用于不同的场景 , 各自特性如下:
- 单实例主备架构:集中式数据库处理类型,基于高性能的服务器和存储满足高并发的联机类业务处理,同时1主多备的架构保证了系统的高可用 。不过受限于单台服务器的处理性能和存储限制,适用于非大并发大数据量存储的应用 。
- 分布式架构:原生的分布式数据库架构 , 支持在线交易和实时数据分析混合交易,适用于海量数据分析以及数据仓库类应用
- 共享集群架构:对标Oracle RAC的部署架构 , 满足核心业务场景的高性能、高可靠以及扩展性要求 。适用于核心业务场景的国产化替换 。
文章插图
1.3 YashanDB数据库内核架构
文章插图
YashanDB数据库的内存架构如图,主要包括以下部分:
- 私有内存区域:包括SQL执行区以及SQL算子使用的虚拟内存,这部分内存区域在各个线程运行时分配使用,释放后才能被其它线程使用
- 共享内存区域:包括SQL缓存、日志缓存等内存共享池和全局缓存、全局锁和全局队列等全局共享资源池、数据缓存区域以及有界加速缓存
- 工作线程:处理客户端连接请求的线程,可以为会话专有模式或共享模式
推荐阅读
- 集中式数据库与分布式数据库的战场与战争
- 解读向量数据库
- Python内置数据库:轻量级SQLite
- Oracle数据库存在不可用索引性能问题
- 每个程序员都必须了解的十种数据库
- 深度优化数据库性能:Linux 内核参数调整解析
- 14个开源免费数据库监控工具,MySQL、Oracle、Postgres或MSSQL
- 初识向量数据库与pgvector实践
- 直面数据库的“崖山海战”:YashanDB另辟蹊径站上新高地
- 国内首个向量数据库标准发布