#实例架构
数据库是物理概念,是指在磁盘上存放的各类持久化数据文件的集合。
数据库实例只在运行态存在,包括一组线程和内存空间,YashanDB采取多线程架构,内存空间由共享内存区域和私有内存区域两部分组成。每个正在运行的数据库至少与一个数据库实例相关联。
YashanDB分别支持单机(主备)、共享存储集群(以下简称共享集群)、分布式集群三种部署形态,在不同部署形态下的实例架构略有差异,见下面描述。
# 单机部署实例架构

# 共享集群部署实例架构

# 分布式部署实例架构

# 主要模块介绍
数据库客户端
一般是指客户基于YashanDB驱动开发的应用程序或YashanDB提供的客户端工具。
驱动:应用程序和数据库存储之间的接口,每一个驱动实现某一种开发语言对数据库各类操作指令的调用。
工具:一类软件应用程序或工具集,旨在帮助数据库管理员(DBA)和开发人员管理和维护数据库系统。
插件管理
插件管理是YashanDB提供的一个开发框架,用于与第三方合作开发插件,以拓展更加丰富的功能。
单机数据库服务端
包括数据库实例和一系列持久化文件。
数据库实例只在运行态存在,包括一组线程和内存空间,YashanDB采取多线程架构,内存空间则由共享内存区域和私有内存区域两部分组成。
共享集群数据库服务端
包含数据库实例、集群服务组件和共享存储管理的持久化文件。
YashanDB共享集群是一种单库多实例的多活集群,基于Shared-Disk的架构,各组件描述如下:
数据库服务:多个服务器上的数据库实例采用聚合内存技术,通过全局资源管理、全局缓存管理以及全局锁管理协同多实例对数据页和非数据类资源的访问,对外提供对等的、强一致的并发读写能力。
YCS:集群数据库高可用的核心部件,统一管理集群文件系统、数据库等资源,提供配置、启停、监控等能力,并在各种故障场景下提供仲裁服务,维护全局统一的拓扑状态。
YFS:承担集群文件系统管理职责,直接管理裸设备,并提供强一致的文件系统服务给数据库使用。
分布式数据库服务端
包括数据库实例和一系列持久化文件。
YashanDB分布式集群部署采用存储集群和计算集群分离部署的架构,各服务组件描述如下:
CN Cluster:CN(Compute node)计算集群,包括分布式事务管理、分布式并行执行、集群管理服务、存储管理服务,负责处理业务应用的请求。
分布式事务管理:通过去中心化、全局高精度逻辑时钟同步技术,提供分布式多实例数据实时强一致性能力,避免全局中心事务管理(GTM)的扩展瓶颈问题。
分布式并行执行:计算集群通过分布式并行执行调度,协同多实例共同完成数据计算任务,充分利用分布式多实例资源,加速海量数据分析计算。
集群管理服务:分布式集群高可用的核心部件,统一管理分布式存储文件系统、数据库等资源,提供配置、启停、监控等能力,并在各种故障场景下提供仲裁服务,维护全局统一的拓扑状态。
存储管理服务:承担分布式集群文件系统管理职责,直接管理裸设备,提供存储集群的服务发现能力,并提供强一致的存储管理服务给数据库使用。
DN Cluster:DN(Data node) 存储集群,由多个存储服务器组成,每个服务器部署一个智能存储服务。
- 智能存储服务:包括数据存储介质、存储管理和监控、数据生命周期管理和轻量计算能力。
持久化文件
数据库的持久化文件,确保在掉电等异常关闭场景中数据库仍能启动并正常使用,主要包括:
控制文件:数据库最关键入口信息,保存数据库基础元数据以及持久化相关信息。
数据文件:保存所有系统表、用户表(HEAP表/TAC表/LSC表)以及undo等数据。
切片文件:保存LSC表的冷数据。
redo重做日志文件:保存redo日志,在recovery场景中用于修复脏页,在主备场景中用于向备库复制。
归档日志文件:保存归档的redo日志,在recovery场景中用于结合数据库的备份文件将数据库恢复到特定时间点。
集群配置数据:保存集群的管理配置信息,例如节点、资源等。
集群运行期数据:记录集群运行过程中的相关信息,尤其是在投票时记录相关过程数据。
内存区域
详情请查阅内存体系。
进程与线程
详情请查阅进程线程体系。

