崖山数据库YashanDB的共享集群机制初探

简介: YashanDB共享集群是崖山数据库系统的核心特性,支持单库多实例并发读写,确保强一致性与高可用性。基于Shared-Disk架构和Cohesive Memory技术,实现数据页协同访问及资源控制。其核心组件包括YCK、YCS和YFS,提供金融级RPO=0、RTO<10秒的高可用能力。通过自研“七种武器”(如页内锁、去中心化事务管理等),优化性能并解决读写冲突。相比Oracle RAC,YashanDB在TPC-C测试中性能高出30%,适用于金融、电信等关键领域,推动国产化替代进程。

YashanDB共享集群是崖⼭数据库系统(YashanDB)的⼀个关键特性,它是⼀个单库多实例的多活数据库系统。⽤⼾可以连接到任意实例访问同⼀个数据库,多个数据库实例能够并发读写同⼀份数据,同时保证实例之间读写的强⼀致性。这种设计赋予了系统⾼可⽤性、⾼扩展性和⾼性能的特点。

共享集群基于YashanDB内核持续演进,硬件上依赖共享存储实现shared-Disk的架构,同时引⼊了Cohesive Memory核⼼技术实现Shared-Cache能⼒。这使得集群数据库多个实例之间能够协同数据⻚的读写访问以及各种⾮数据类资源的并发控制。

共享集群的核⼼组件主要包括崖⼭集群内核(YCK,Yashan Cluster Kernel)、崖⼭集群服务(YCS,Yashan Cluster Service)和崖⼭⽂件系统(YFS,Yashan File System)。崖⼭集群内核通过聚合内存技术,聚合多实例对数据资源和⾮数据资源的并发访问。崖⼭集群服务负责管理共享集群数据库,包括集群服务器配置管理、资源配置管理、启停、监控服务器以及资源,并在故障时负责投票仲裁并重组集群。崖⼭⽂件系统是YashanDB的专⽤并⾏⽂件系统,提供存储设备管理、存储⾼可⽤、⽂件系统接⼝等功能。

崖山数据库(YashanDB)共享集群的独特性主要体现如下⽅⾯:
核心技术突破:YashanDB共享集群攻克了共享集群的关键技术瓶颈,实现了⾦融级⾼可⽤能⼒,RPO为0、RTO<10秒。
高可用性:YashanDB共享集群具备天然的⾼可⽤优势,任何实例故障后都不影响应⽤的连续性,采⽤了快速恢复和连接连续性技术保证服务端的透明接管和客⼾端的透明切换。
性能优化:YashanDB共享集群在性能⽅⾯有显著优势,经实测,在同等硬件条件下,其TPC-C基准测试表现⽐Oracle RAC⾼30%。
多实例读写:YashanDB⾃研了“七种武器”技术,包括⻚内锁技术、免锁读技术、去中⼼化的事务管理机制等,以解决读写冲突,提⾼读写性能。
自适应异步并⾏调度:YashanDB提出了⾃适应的异步并⾏任务调度机制,⼤幅度降低了多核之间的事务冲突协调开销,提⾼了性能。
共享集群架构:YashanDB共享集群基于YashanDB内核持续演进,引⼊了Cohesive Memory核⼼技术,实现Shared-Cache能⼒,⽀持在线故障⾃动切换和故障⾃动恢复。
全自研共享集群解决⽅案:YashanDB全⾃研共享集群解决⽅案为⽤⼾提供应⽤透明的⾼可⽤和⾼性能数据库能⼒,构建了基于国产应⽤/中间件、共享集群数据库、芯⽚/服务器/存储的⾼端全栈⽅案。
专用并行文件系统:YashanDB⾃研集群⽂件系统,采⽤In memory FAT + Direct access专利技术,实现文件系统元数据常驻内存,提供更⾼效的存储管理能⼒和效率。
原创理论与领先架构:YashanDB拥有世界领先的基础理论作为⽀撑,通过“原创理论+领先架构+⼯程能⼒”三位⼀体的⼯程研发体系,打造技术先进、性能稳定、持续创新的产品内核。
这些独特性使得YashanDB共享集群在数据库国产化替代的浪潮下,能够满⾜⾦融、电信等⾏业核⼼系统对关键技术的需求,推动核⼼系统国产化替换的规模化应⽤。

相对于Oracle数据库共享集群的关键技术总结如下:
1.Oracle RAC (Real Application Clusters):Oracle RAC是Oracle数据库中的⼀项核⼼技术,它允
许多个服务器节点共享访问相同的数据库⽂件,从⽽实现⾼可⽤性和负载均衡。

  1. 缓存融合 (Cache Fusion):这是Oracle RAC的⼀个关键组件,它通过在节点之间共享缓存数据来
    减少磁盘I/O,提⾼数据库性能。
  2. 全局资源管理器 (Global Resource Manager, GRM):GRM负责管理集群中的资源,包括锁定和资
    源的分配。
  3. 投票磁盘 (Voting Disks):在Oracle RAC中,投票磁盘⽤于存储集群的配置信息和状态,帮助在节
    点故障时进⾏决策。
  4. Oracle Clusterware:这是Oracle RAC运⾏所依赖的中间件,负责集群的管理和协调。
  5. 服务和实例:Oracle RAC可以配置多个服务和实例,它们可以在不同的节点上运⾏,以提供⾼可⽤
    性和故障转移。
  6. 存储系统:共享存储是Oracle RAC的基础,它允许多个节点访问相同的数据⽂件。
  7. 网络:高速网络连接是Oracle RAC正常运⾏的关键,它⽀持节点之间的通信和数据共享。

Oracle RAC技术通过这些关键技术实现了数据库的⾼可⽤性、可扩展性和性能优化,使其成为企业级核⼼交易数据库领域的⼴泛应⽤解决⽅案。

共享集群技术最核⼼的难点在于实例间的交互,如何保证多个实例间数据的强⼀致性?如何协调数据之间发⽣的冲突?如何处理⽹络通信的各种异常情况?这对架构设计的挑战⾮常⼤,需要⼀整套协调机制来实现。

YashanDB共享集群中所有数据库实例共享缓存,本地访问⻚⾯时若未命中,可通过⽹络从其他实例拿到最新版本⻚⾯,实现数据交换,应⽤可以连接任意节点访问和使⽤数据库完整能⼒。为解决读写冲突,提⾼读写性能。

我们来初步探索下YashanDB⾃研了“武器”技术。

页内锁技术

在崖⼭数据库系统(YashanDB)中,⻚内锁技术是⼀种⽤于实现并发控制的技术。它通过在数据⻚级别上设置锁来控制对数据的访问和操作,以确保数据的⼀致性和并发性。当⼀个事务需要访问或修改某个数据⻚时,系统会根据事务的需求和当前数据⻚的锁状态来决定是否可以进⾏操作。这种技术可以有效地避免数据的冲突和混乱,保证事务的正确执⾏和数据的完整性。
在崖⼭数据库系统(YashanDB)中,可以通过以下步骤验证⻚内锁技术的有效性:

  1. 创建多个事务并访问同⼀个数据⻚:可以创建多个并发的事务,让它们同时访问同⼀个数据⻚,尝试进⾏读取或写⼊操作。
  2. 观察锁的状态:通过数据库系统的监控⼯具或查询系统视图,观察数据⻚上的锁状态,包括锁的类型、持有者、等待者等信息。
  3. 测试并发控制:在不同事务之间制造数据冲突,例如⼀个事务尝试修改数据⻚上的数据,⽽另⼀个事务同时也在尝试修改相同数据⻚的数据,观察系统如何处理并发访问。
  4. 检查事务的隔离级别:验证⻚内锁技术是否按照事务的隔离级别正确地处理并发访问,确保事务之间的数据操作不会相互⼲扰。
    通过以上步骤可以验证⻚内锁技术在崖⼭数据库系统中的有效性,确保数据的⼀致性和并发控制机制的正确性。

通过以上步骤可以验证⻚内锁技术在崖⼭数据库系统中的有效性,确保数据的⼀致性和并发控制机制的正确性。

去中心化的事务管理机制

崖⼭数据库(YashanDB)采⽤了去中⼼化的事务管理机制,这是其共享集群技术的核⼼特点之⼀。这种机制避免了传统中⼼化事务管理可能带来的性能瓶颈和扩展性问题。在YashanDB共享集群中,所有数据库实例共享缓存,并且通过去中⼼化的事务管理,实现了多个实例间数据的强⼀致性,同时协调数据之间发⽣的冲突和处理⽹络通信的各种异常情况。

利⽤去中⼼化的事务管理机制,可以实现在分布式环境下对事务进⾏管理和控制,确保数据的⼀致性和可靠性。在YashanDB中,可以通过配置实例亲和性和分布式事务处理能⼒来实现去中⼼化的事务管理机制。具体步骤包括:

  1. 配置实例亲和性:根据业务需求和数据分布情况,设置数据表或数据⽂件在特定实例上的存储和处理,以确保相关数据在特定实例上进⾏操作。
  2. 分布式事务处理:利⽤YashanDB原⽣的分布式处理系统,⽀持分布式事务的提交、回滚和并发控制,保证跨多个节点的事务操作的⼀致性和隔离性。
  3. 实现事务ACID特性:通过YashanDB的事务管理功能,⽀持完整事务ACID特性,包括细粒度锁管理、语句读写⼀致性、UNDO⾃管理和多版本并发控制,确保事务的正确执⾏和数据的⼀致性。
  4. 配置⾼可⽤和备份策略:利⽤YashanDB提供的⾼可⽤能⼒,配置⼀主多备、级联备等⾼可⽤架构,保证系统的可⽤性和数据的安全性。

通过以上步骤,可以充分利⽤YashanDB的去中⼼化事务管理机制,实现分布式环境下的⾼效、可靠的事务处理。

此外,YashanDB还采⽤了基于时间戳的多版本并发控制(MVCC)机制,以及实例间通过Lamport消息⽅式实现时间戳同步,确保跨实例的数据交换不会影响事务的可⻅性。这些技术的结合,使得YashanDB能够在保持数据⼀致性的同时,提⾼系统的并发处理能⼒和整体性能。

实例亲和性的空间分配机制

崖⼭数据库(YashanDB)的实例亲和性的空间分配机制是其共享集群技术的⼀部分,旨在提⾼数据库的性能和效率。具体来说,这种机制允许实例间对同⼀张表并⾏导⼊数据时避免空间争⽤,从⽽优化了资源的分配和使⽤。

实例亲和性的空间分配机制是指在数据库系统中,可以通过设置实例亲和性来指定某个表或数据⽂件在特定实例上进⾏分配和存储。这种机制可以确保特定的数据在特定的实例上进⾏处理,提⾼数据访问的效率和性能。

在YashanDB中,配置实例亲和性的空间分配机制需要在建库时根据数据量、并发数、应⽤场景等因素来确定。对于不同⽤途的表空间,应根据数据库性能和每种类型的表空间的关联性来进⾏配置。在创建数据库时,应为所有内置表空间配置合理的初始⼤⼩,以满⾜实际需求。

对于临时类型表空间,建议初始⼤⼩不要配置过⼤,可以打开⾃动扩展功能,除⾮应⽤系统有明确的临时表需求。在YashanDB中,临时表的存储空间采⽤预占⽅式,只有在BUFFER不⾜需要换出时才会被使⽤,并且在数据库重启后会被重置。因此,⽤⼾可以根据需要通过RESIZE或ADD DATAFILE的⽅式增加临时表空间的容量,或者通过SHRINK来释放过剩的空间。

在初始化配置参数时,需要根据应⽤需求和环境资源,为性能参数赋予合适的初始值。⼀些重要的配置参数包括VM_BUFFER_SIZE、REDOFILE_IO_MODE、REDO_BUFFER_SIZE、REDO_BUFFER_PARTS等,这些参数的合理配置对数据库性能⾄关重要。在⾼可⽤的⾃动选举配置中,需要预先规划好参数以便⽇后扩展,确保Raft集群架构能够正常运⾏并实现⾃动选举。

在YashanDB中,可以通过设置实例亲和性来控制数据的分布和存储,以满⾜不同业务需求和性能要求。实例亲和性的空间分配机制可以通过物理属性和表空间设置来实现,确保数据在分布式部署环境中的合理分配和管理。

基于负载缓存⾃动调度策略

基于负载缓存⾃动调度策略是YashanDB共享集群中的⼀项技术,旨在提⾼数据库集群整体的缓存命中率和性能。这种策略通过动态调整和优化缓存资源的使⽤,以适应不断变化的负载情况,从⽽实现更⾼效的数据访问和处理。
以下是该策略可能包含的⼏个关键⽅⾯:

  1. 动态资源分配:根据当前的数据库负载情况,⾃动调整各个实例的缓存⼤⼩和资源分配,以确保资源被有效地利⽤。
  2. 负载预测:通过分析历史数据和实时监控数据,预测未来的负载变化,从⽽提前做出资源调整。
  3. 缓存置换算法:采⽤⾼效的缓存置换算法,确保最常访问的数据被保留在缓存中,减少对磁盘的访问次数。
  4. 并发控制:在多实例环境中,协调不同实例的缓存访问,避免缓存争⽤和冲突,提⾼并发处理能⼒。
  5. 数据局部性优化:通过优化数据存储和访问模式,增强数据的局部性,使得相关数据更可能被⼀起加载到缓存中。
  6. 故障恢复:在发⽣故障时,快速恢复缓存状态,确保系统的连续性和稳定性。
  7. 监控与调优:实时监控缓存的性能指标,根据监控结果动态调整调度策略,以适应不断变化的运⾏环境。
    YashanDB通过实施基于负载的缓存⾃动调度策略,可以显著提⾼数据库系统的响应速度和吞吐量,同时降低延迟和系统资源的消耗。这对于需要处理⼤规模数据和⾼并发请求的企业级应⽤尤为重要。

脏页快传技术

脏⻚快传技术是YashanDB共享集群中⽤于提⾼性能的关键技术之⼀。这项技术主要针对在数据库操作过程中产⽣的脏⻚(即已修改但尚未持久化到磁盘的数据⻚)进⾏优化,以减少因脏⻚写回磁盘造成的延迟。

在传统的数据库系统中,脏⻚需要周期性地被刷新回磁盘以确保数据的持久性,这个过程称为Checkpointing。如果脏⻚数量较多,或者系统负载较⾼,这个过程可能会引⼊显著的延迟,影响数据库的性能。

YashanDB的脏⻚快传技术通过以下⽅式来提⾼效率:
1.遵从**WAL**协议:在确保遵循预写⽇志(Write Ahead Logging,WAL)协议的前提下⼯作,这是数据库保证事务持久性的关键机制。

  1. 减少磁盘I/O等待:通过优化算法减少脏⻚写回操作时对磁盘I/O的等待时间,从⽽降低整体的事务处理延迟。
  2. 快速传递:脏⻚快传技术允许脏⻚在实例间快速传递,⽽不是等待全部修改完成再统⼀写回,这样可以更快地释放内存资源并减少锁的竞争。
  3. 优化的刷盘策略:YashanDB可能采⽤了⼀些智能的刷盘策略,⽐如根据当前系统负载动态调整刷盘频率,或者优先处理最有可能影响性能的脏⻚。
  4. 异步处理:脏⻚的写回操作可能是异步进⾏的,这样就不会阻塞主数据库操作流程,提⾼了数据库的并发处理能⼒。

脏⻚快传技术是YashanDB共享集群技术优势的⼀部分,它帮助YashanDB在保持数据⼀致性和持久性的同时,提⾼了数据库的性能和响应速度。

除此之外,为了提⾼数据库的性能,YashanDB⾃研集群⽂件系统,采⽤ In memory FAT(AllocationTable, ⽂件分区表) + Direct access 专利技术,该技术能实现⽂件系统元数据常驻内存,提供更⾼效的存储管理能⼒和效率。⽂件系统客⼾端程序通过直连共享内存访问 FAT 数据,确保 YashanDB 针对所有持久化⽂件(包括但不限于控制⽂件、数据⽂件以及redo⽂件)的 read/write 操作,不涉及等待磁盘 IO 或⽹络 IO,实现性能最优。

YashanDB共享集群的这些先进性和特殊性机制,使其成为⾼端核⼼交易场景的有⼒竞争者,为⽤⼾提供了⼀个⾼性能、⾼兼容、更开放的数据库解决⽅案。我们对此有更⾼的要求和期待,共享集群后续发展如何,我们拭⽬以待。

相关文章
|
9天前
|
运维 监控 数据可视化
一文拆解 YashanDB Cloud Manager,数据库运维原来还能这么“智能”!
传统数据库运维依赖人工,耗时耗力还易出错。YashanDB Cloud Manager(YCM)作为“智能运维管家”,实现主动、智能、可视化的运维体验。它提供实时资源监控、智能告警系统、自动巡检机制、高可用架构支持和强大的权限管理功能,帮助用户统一管理多实例与集群,减少人工干预,构建现代化数据库运维体系,让企业高效又安心地运行数据库服务。
|
9天前
|
SQL Oracle 关系型数据库
用 YashanDB Migration Platform,数据库迁移不再是“高风险动作”
数据库迁移一直是企业信息化中的难题,耗时长、风险高。YashanDB Migration Platform(YMP)提供一站式解决方案,涵盖评估、改写、迁移与校验全流程。其核心能力包括SQL自动适配、智能对象迁移、高性能数据通道及数据对比校验,显著降低人力成本与业务风险。适合从Oracle、MySQL等迁移到YashanDB的企业,以及需异构整合或国产化替代的集团、政府和国企项目。YMP不仅是工具,更是推动数据库国产化的关键平台。
|
5天前
|
监控 数据库
【YashanDB 知识库】ycm 托管数据库时报错 OM host ip:127.0.0.1 is not support join to YCM
在托管数据库时,若 OM 的 IP 被设置为 127.0.0.1,将导致无法托管至 YCM,并使数据库失去监控。此问题源于安装时修改了 OM 的监听 IP。解决方法包括:将 OM 的 IP 修改为本机实际 IP 或 0.0.0.0,同时更新 env 文件及 yasom 后台数据库中的相关配置。经验总结指出,应避免非必要的后台 IP 修改,且数据库安装需遵循规范,不使用仅限本机访问的 IP(如 127.0.0.1)。
|
5天前
|
存储 安全 数据库
风险防不胜防?看 YashanDB 如何守护你的数据库安全(上篇)
数据库作为信息系统核心,其安全性至关重要。本文聚焦数据库安全机制中的访问管理,涵盖身份认证、访问控制与反入侵措施。YashanDB通过口令认证、操作系统认证及双因素认证确保用户身份安全;实施基于角色(RBAC)和标签(LBAC)的访问控制,实现权限精细化管理;同时利用黑白名单与连接监听机制防范未授权访问和恶意攻击。这些措施共同保障数据的机密性、完整性和可用性,助力企业满足国家合规要求。下期将探讨威胁检测与数据保护内容,敬请期待!
|
9天前
|
SQL 运维 监控
数据库国产化选型?YashanDB 给中大型企业的五个答案
近两年,“国产数据库”成为企业数字化升级的重要议题。YashanDB作为新一代国产关系型数据库,以完整产品矩阵解决企业核心关切:通过图形化工具提升开发效率;提供自动化迁移平台简化数据库切换;云管理工具减轻运维负担;支持复杂业务场景;拥有成熟团队保障企业级服务。YashanDB不仅是“可替代”,更是“更可靠”的选择,助力企业实现高效、可控的数据库升级。
|
5天前
|
存储 SQL 安全
风险防不胜防?看 YashanDB 如何守护你的数据库安全(下篇)
本文深入探讨数据库安全机制中的威胁监测与数据保护。在威胁监测方面,YashanDB 提供权限、行为和角色审计功能,支持异步审计降低性能影响,并通过安全漏洞扫描和硬件防护减少漏洞危害。数据保护部分涵盖通信加密(支持国密标准)、存储加密(表空间透明加密TDE)、备份加密及密钥管理等关键技术。此外,YashanDB 支持热备、增量备份和按时间点恢复,并实现安全销毁防止信息泄露,全面保障数据的机密性、完整性和可用性。
|
5天前
|
监控 Java Shell
【YashanDB 知识库】ycm 托管数据库时,数据库非 OM 安装无法托管
本文主要介绍了因数据库未按规范使用 yasboot 安装导致的问题及解决方法。问题表现为无 yasom 和 yasagent 进程,且目录结构缺失,致使 ycm 无法托管与监控。分析发现可能是数据库版本旧或安装不规范引起。解决方法为先生成配置文件,安装 yasom 和 yasagent,再生成并修改托管配置模板,最终通过命令完成托管至 yasom 和 ycm。总结强调了按规范安装数据库的重要性以避免类似问题。
|
9天前
|
SQL 调度 数据库
开发YashanDB数据库?用 DBeaver for YashanDB 更顺手
数据库开发复杂易错,尤其在企业级场景中。为提升效率,YashanDB 团队基于 DBeaver 开源工具打造专属解决方案——DBeaver for YashanDB。它支持多类型数据库对象管理(表、视图、函数等),适配 YashanDB 特有表结构(HEAP、LSC),提供智能补全、语法高亮、SQL 调试等功能,让开发更高效流畅。推荐用于数据库应用开发团队、高频调试用户及中大型企业统一工具栈场景。
|
9天前
|
SQL 数据可视化 IDE
开发数据库不想写命令?YashanDB Developer Center 帮你轻松搞定
YashanDB Developer Center(YDC)是一款可视化的数据库开发工具,专为提升数据库开发效率而设计。它通过图形化对象管理让数据库对象清晰可见,提供智能SQL编辑器支持语法高亮与自动补全,实现PL调试的图形化操作,帮助快速定位问题。此外,操作记录可追溯,多端灵活部署,适配多种场景。无论是中大型企业研发团队,还是不熟悉命令行的业务开发者,YDC都能显著优化开发体验,堪称YashanDB的“可视化IDE”。
|
9天前
|
Oracle 关系型数据库 Linux
YashanDB异构数据库链接配置
本指南介绍在YashanDB中配置异构数据库链接(DBLINK)的方法,特别是连接至Oracle数据库的前置要求与步骤。需确保YashanDB服务端安装plugin插件包、Oracle Instant Client及libaio库,否则可能导致错误或进程崩溃。文档还提供了Oracle Instant Client和libaio库的具体安装指导,帮助管理员顺利完成配置。

热门文章

最新文章