YashanDB 体系架构

简介: YashanDB 体系架构

部署架构
YashanDB 支持三种部署形态,分别是单机(主备)部署(简称:单机部署)、分布式集群部署(简称:分布式部署)和共享集群部署。

单机部署

单机部署一般会在两台服务器上分别运行主实例和备实例,通过主备复制实现主库的修改同步到备库,也有一些场景对高可用要求较低,部署时只使用一台服务器仅运行一个实例。

单机部署是比较常见的形态,适用于大多数场景。

共享集群部署

共享集群在硬件层面需要依赖共享存储,所有实例均可读写,实例之间通过全局缓存实现数据交换。

共享集群部署常应用于对多实例数据库集群多写、高可用、性能以及可扩展能力均有较高要求的高端核心交易场景。

分布式部署

分布式部署中有更多不同类型的程序,包括 MN 组、CN 组和 DN 组,同一服务器上可以同时运行多种不同类型的程序。

分布式部署适用于对处理能力要求较高且有较强线性扩展诉求的场景,例如海量数据分析业务场景。

逻辑架构

YashanDB 的逻辑架构零层视图如下图所示:

单机主要子系统

客户端驱动

包括一系列客户端 API,提供包括建立连接,执行 SQL 语句,获取结果集等一系列能力。

SQL 引擎

SQL 引擎包括解析器、优化器、执行器,负责客户端提交 SQL 文本的解析,生成执行计划,以及具体执行。SQL 引擎提供丰富的内置函数库,方便在 SQL 中直接使用函数做表达式运算。

PL 引擎

PL 引擎提供用户自定义函数、类型管理,自定义类型等能力,包括高级包、存储过程、存储函数、触发器等。PL 对象可持久化,创建后可以多次执行。

存储引擎

负责存储空间管理,采用段区页三级空间管理;负责事务管理,并控制并发访问,提供一致性访问能力;负责关系对象的管理,包括表、索引等。

共享集群主要子系统

在单机形态基础上,共享集群部署形态中新增了集群内核、集群管理和文件系统三个子系统:

共享集群内核

共享集群部署形态中集群运行时的核心组件,通过聚合内存技术负责各服务器运行期内存页面的协调,确保集群多实例高效实现一致性的访问。

文件系统

负责管理存储设备,提供类文件系统接口给数据库使用,处理上层应用的文件读写请求,经过地址转换转化为对存储设备的读写操作。

共享集群管理

共享集群部署形态中负责管理集群,提供配置管理能力。

分布式主要子系统

在单机形态基础上,分布式部署形态中新增了元数据节点管理、协调节点管理和数据节点管理三个子系统:

元数据节点管理

负责分布式集群的节点管理服务、元数据管理服务和全局时钟服务。

协调节点管理

负责处理客户端的连接请求,SQL 命令请求,生成分布式执行计划,然后分发到数据节点执行,最后将执行结果汇总返回给客户端。

数据节点管理

负责持久化数据,以及执行分解后的 SQL 执行计划。

公共基础设施库

基础设施库中是常用的公共基础能力,包括网络通讯、线程管理等。

实例架构

YashanDB 包括数据库和实例两个概念,数据库和数据库实例(简称“实例”)。数据库和数据库实例一般是一对一关系,但在共享集群部署中,数据库与数据库实例是一对多关系,更多详情请查阅部署架构。

数据库

数据库指存放在非易失存储上的一组数据文件,包括控制文件、数据文件和日志文件。若这些数据文件缺失或损坏,数据库实例将无法正常启动和运行。

数据库实例

数据库实例仅在运行期存在,它包括一组内存结构和一个多线程程序,更多详情请查阅实例架构。

通常情况下,我们会用“数据库”同时指代上述两个概念。

相关文章
【YashanDB知识库】如何排查YMP报错:”OCI版本为空或OCI的架构和本地系统的架构不符“
【YashanDB知识库】如何排查YMP报错:”OCI版本为空或OCI的架构和本地系统的架构不符“
【YashanDB知识库】如何排查YMP报错:”OCI版本为空或OCI的架构和本地系统的架构不符“
|
7月前
|
存储 开发框架 缓存
YashanDB实例架构
YashanDB实例架构
|
8月前
【YashanDB 知识库】如何排查 YMP 报错:”OCI 版本为空或 OCI 的架构和本地系统的架构不符“
**问题现象**:迁移预检查时,因OCI版本为空或架构不符报错。通过查看yasdts日志发现缺少libnsl.so.1依赖库。 **排查步骤**: 1. 查看日志确认缺少的依赖库。 2. 检查OCI客户端路径是否已加入LD_LIBRARY_PATH环境变量。 3. 使用`ldd`命令检查其他缺失的依赖库。 **解决方法**: 1. 下载并安装所需的动态库版本。 2. 若无法联网,查找本地是否有相应库。 3. 如本地有高版本库,创建软链接指向所需版本(如`ln -s /lib64/libnsl.so.2 libnsl.so.1`)。
|
27天前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
3月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
179 0
|
10月前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
11月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
283 3
|
11月前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
6月前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
377 12