数据库集群原理

简介:

转自http://wangshuxing123-126-com.iteye.com/blog/737484

对于应用服务器集群,应该是非常常见的。通过集群,可以很简单地通过乘法的方式将服务能力扩大(而且这种扩充的成本要远低于垂直扩充,你只要比较一下一个满配4CPU的PC服务器与2台满配2CPU的服务器的价格就知道了),并且,可以提供系统的高可用性,当一台服务器出现问题时,可以由其他服务器提供服务,避免了服务的中断。

而对于数据库服务器,集群就比较少见了,以往只用于高端系统,比如象ORACLE就提供了并行模块。

而ICX的出现,则为SQL SERVER数据库的集群提供了良好的解决方案。(参见:ICX-实现SQL SERVER数据库集群)。

  我们先看一下这种产品的原理:

数据库服务器的集群,之所以比应用服务器复杂,是因为数据库要有一个同步的问题,在两边不仅要读,更有一个写的数据如何一致的问题。如果依靠数据库本身的同步,则效率很低,很难以事务级的方式进行(即同步成功才向前端报告事务完成)

而ICX的原理,则是象一个路由器一样(所以称为数据库路由器),对服务请求进行分发,如果是查询,则象应用服务器那样,分发到某一台数据库服务器,而如果是更新的请求(包括新增、修改、删除等各类),则同时发送到两边的服务器,并且在两边的更新均完成后才报告事务完成。

下面分析一下ICX的性能问题:

首先是提交时的性能,查询是没关系了,因为路由器式的分发相对于查询操作本身时间是很短的,主要要关注的是更新操作。但相对于依靠数据库或文件系统的同步方式而言,ICX的更新是在两边同时进行的,而其他方式是采用A更新-同步-B更新的方式,要做三步工作,所以ICX的效率远高于其他同步方式,可以说其时间基本上就是两台服务器中较慢的一台的时间。(而且注意由于做了负载均衡,这台的速度要比只有一台服务器时还要快)

次是整体的并发处理能力,我们以两台服务器为例。如果只有查询,应该基本上可以处理2倍的并发量。但与应用服务器不同的是,更新的操作是在两边同步进行的。因此,并发能力的提升,实际与更新/查询的比例、复杂程度是相关的,如果更新多、查询少,处理能力的提升相对就小一些。但是,常识上数据库应用查询的比例远大于更新,而且查询的复杂度、占用服务器资源也远大于更新(比如更新经常是单表的,基于索引的,而查询中多表联接、多个条件之类的非常常见),所以,可以大致认为提供1.5-1.8倍左右的处理能力。当然,这个只是个很粗的估计。

另外一点是关于速度的提升。相对于并发而言,对速度的提升相对有限,因为在每台机器上都是对整个数据库进行操作。但是,如果一个数据库服务器的负载少了将近一半,其速度也是可能会有一个明显的提升的。

至于在数据库路由器进行路由分配时的时间与资源消耗,是很小的,可以忽略不计。除非你是做数量极大的特别简单的数据库操作


Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名justrun(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言


本文转自JustRun博客园博客,原文链接:http://www.cnblogs.com/JustRun1983/archive/2012/06/30/2571436.html,如需转载请自行联系原作者

相关文章
|
15天前
|
存储 NoSQL 数据库
Redis 逻辑数据库与集群模式详解
Redis 是高性能内存键值数据库,广泛用于缓存与实时数据处理。本文深入解析 Redis 逻辑数据库与集群模式:逻辑数据库提供16个独立存储空间,适合小规模隔离;集群模式通过分布式架构支持高并发和大数据量,但仅支持 database 0。文章对比两者特性,讲解配置与实践注意事项,并探讨持久化及性能优化策略,助你根据需求选择最佳方案。
46 5
|
28天前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
1月前
|
SQL 关系型数据库 数据库
【YashanDB知识库】OM仲裁节点故障后手工切换方案和yasom仲裁重新部署后重新纳管数据库集群方案
本文介绍了主备数据库集群的部署、OM仲裁故障切换及重新纳管的全过程。首先通过解压软件包并调整安装参数完成数据库集群部署,接着说明了在OM仲裁故障时的手动切换方案,包括关闭自动切换开关、登录备节点执行切换命令。最后详细描述了搭建新的yasom仲裁节点以重新纳管数据库集群的步骤,如生成配置文件、初始化进程、执行托管命令等,确保新旧系统无缝衔接,保障数据服务稳定性。
|
2月前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课13 单机版转换为集群版
本文介绍如何将“本地存储实例”转换为“共享存储实例”,依赖于先前搭建的实验环境。主要步骤包括:准备PFS二进制文件、格式化共享盘为pfs文件系统、启动pfsd服务、停库并拷贝数据到pfs内、修改配置文件,最后启动实例。通过这些操作,成功实现了从本地存储到共享存储的转换,并验证了新实例的功能。相关系列文章和视频链接提供了更多背景信息和技术细节。
52 0
|
2天前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
1月前
|
存储 缓存 Oracle
崖山数据库YashanDB的共享集群机制初探
YashanDB共享集群是崖山数据库系统的核心特性,支持单库多实例并发读写,确保强一致性与高可用性。基于Shared-Disk架构和Cohesive Memory技术,实现数据页协同访问及资源控制。其核心组件包括YCK、YCS和YFS,提供金融级RPO=0、RTO<10秒的高可用能力。通过自研“七种武器”(如页内锁、去中心化事务管理等),优化性能并解决读写冲突。相比Oracle RAC,YashanDB在TPC-C测试中性能高出30%,适用于金融、电信等关键领域,推动国产化替代进程。
崖山数据库YashanDB的共享集群机制初探
|
24天前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
|
1月前
|
存储 缓存 API
自研一款共享集群数据库,有多难?
共享集群数据库管理系统是一种单库多实例的多活数据库管理系统,用户连接任意实例都可以访问同一个数据库,具备透明多写、高可用、高性能等特性。共享集群技术因其开发难度高,一直被国外垄断,也被称为数据库领域的“塔尖”技术。
|
2月前
|
缓存 NoSQL Redis
Redis原理—2.单机数据库的实现
本文概述了Redis数据库的核心结构和操作机制。
Redis原理—2.单机数据库的实现
|
2月前
|
监控 关系型数据库 MySQL
云数据库:从零到一,构建高可用MySQL集群
在互联网时代,数据成为企业核心资产,传统单机数据库难以满足高并发、高可用需求。云数据库通过弹性扩展、分布式架构等优势解决了这些问题,但也面临数据安全和性能优化挑战。本文介绍了如何从零开始构建高可用MySQL集群,涵盖选择云服务提供商、创建实例、配置高可用架构、数据备份恢复及性能优化等内容,并通过电商平台案例展示了具体应用。

热门文章

最新文章

下一篇
oss创建bucket