首先介绍share nothing概念。并行数据库要求尽可能的去并行执行数据库操作,从而提高性能。在并行计算体系结构实现中有很多可选的体系结构。包括:
- share-memory:多个cpu共享同一片内存,cpu之间通过内部通讯机制(interconnection network)进行通讯;
- share-disk : 每一个cpu使用自己的私有内存区域,通过内部通讯机制直接访问所有磁盘系统。
- Share-nothing: 每一个cpu都有私有内存区域和私有磁盘空间,而且2个cpu不能访问相同磁盘空间,cpu之间的通讯通过网络连接。
3种体系结构如下图:
Share disk share nothing share memory
shared memory 体系结构的cpu之间通过主存进行通讯,具有很高的效率;但当更多的cpu被添加到主机上时,内存竞争contetion就成为瓶颈,cpu越多,瓶颈越厉害。Shared disk也存在同样问题,因为磁盘系统由 Interconnection Network 连接在一起。
Shared memory和shared disk的基本问题是interference:当添加更多的cpu,系统反而减慢,因为增加了对内存访问(memroy access)和网络带宽(network bandwidth)的竞争。这样shared nothing体系得到了广泛的推广。
Shared nothing体系是数据库稳定增长,当随着事务数量不断增加,增加额外的cpu和主存就可以保证每个事务处理时间不变。
总的来说,shared nothing降低了竞争资源的等待时间,从而提高了性能。反过来,如果一个数据库应用系统要获得良好的可扩展的性能,它从设计和优化上就要考虑shared nothing体系结构。Share nothing means few contention.它在oracle数据库设计和优化上有很多相同之处。
Share nothing 对数据库应用主要体现在多用户并行访问系统时候,优化数据库操作的response time上。如果数据库操作能够顺利获得所需要的资源,不发生等待事件,自然可以减少response time. 同时也体现在操作尽量少占用资源上,避免浪费时间在无用功上。
如Sequence的实现方式。如果使用Oracle Sequence ,oracle可以缓存sequence,这样最小的降低多个Session获得唯一序列的竞争。如果设计为实体化表存储sequence value方式,每次获得sequence value都需要锁住纪录,这样产生了严重资源竞争,导致hot block.同时增加了Response time.
如存储过程的使用,也体现着share nothing原理。将多个sql 封装在存储过程中,避免了不必要的SQL*Net message from/to client, SQL*Net data from/to client 等等待事件。这体现了设计良好的应用使用最少的资源完成工作。
如在优化sql/表结构设计上,share nothing意味着降低查询的执行成本—— I/O和cpu usage.这主要体现在降低consistent gets上。
在物理设计上,share nothing体现在避免磁盘热点块,协调进程对磁盘的竞争,平衡磁盘利用率上。
Oracle自身设计上很多都体现了Share Nothing特性;在设计可扩展的数据库应用的时候也要注意到这点。
分享到:
相关推荐
在深入理解内容之前,我们首先要明确几个关键概念,比如分布式数据库、工单管理系统,以及share-nothing架构。分布式数据库是指数据库的各个部分分布在不同的计算机上,而这些计算机又通过网络相互连接。工单管理...
TDW的存储和计算引擎都采用share-nothing(SN)结构,SN意味着更少的竞争,这样就可以获得更好的线性扩展能力。随着业务量和数据量的增长,增加节点就可以提高整个系统的存储和计算能力。SN结构是支持分布式存储和...
总结来说,FusionInsight LibrA是一款为企业级大数据分析设计的高性能数据仓库系统,其核心优势在于高效的Share-nothing架构、分布式存储和智能的数据分区策略。通过这些技术,LibrA能够帮助企业快速分析海量数据,...
TDW的存储和计算引擎都采用share-nothing(SN)结构,SN意味着更少的竞争,这样就可以获得更好的线性扩展能力。随着业务量和数据量的增长,增加节点就可以提高整个系统的存储和计算能力。SN结构是支持分布式存储和...
在传统关系型数据库配置中,我们见证了从"Share-everything"架构到更经济、扩展性更好的"Share-nothing"架构的演进。Share-everything架构将计算和存储节点合并,但扩展性和成本效率较低。而Share-nothing架构通过将...
- 高性能:采用Share-nothing架构,实现低延迟的数据读写和查询。 - 高可用:通过数据冗余和故障切换机制,确保服务的连续性和稳定性。 - 高扩展性:支持动态扩缩容,适应业务变化。 2. FusionInsight LibrA 软件...
这部分内容还提到了“share-nothing”设计,这是为了实现懒惰删除而对原有对象共享机制的放弃。 从描述中可以提取的关键知识点包括: 1. Redis中的懒惰删除策略:它是一种内存管理技术,使得在删除数据时,不会...
### 内存为王:DBIM RAC Share-Nothing 架构的挑战和解决方案 #### DBIM概述 Database In-Memory (DBIM) 是 Oracle 在 12.1.0.2 版本中推出的一项关键特性,其设计初衷是为了显著提升分析型 SQL 的执行速度。这一...
OceanBase采用了与传统数据库不同的分布式架构——Share-Nothing架构。这一架构的主要特点是: 1. **Share-Nothing架构**: - 不同的数据被存储在不同的节点上,这意味着每个节点都是独立的,不会共享任何资源。 2...
- **Share-Nothing架构:** 每个处理单元拥有独立的CPU、内存和存储资源,彼此之间通过协议进行通信。这种架构支持良好的并行处理能力和扩展性。 - **Shared-Disk架构:** 各个处理单元使用自己的CPU和内存,但共享...
分布式数据库带来了新的挑战,如Share-nothing架构导致的数据分散存储、跨节点查询成本增加、事务一致性维护、数据分布不均造成的热点问题、SQL执行计划复杂性和调优难度、数据迁移风险等。PolarDB-X 通过精细化的...
它采用大规模并行处理(MPP)架构和无共享(Share-Nothing)设计,专为高效执行复杂的分析查询而设计。本文档旨在为用户提供一系列最佳实践,这些实践能够帮助用户最大化利用GPDB的能力,提高数据处理性能,简化管理...
而按照数据存储共享方式划分,有share-nothing集群和share-everything集群。RAC属于share-everything集群,意味着所有节点共享同一个存储资源,这对于应用而言是透明的。 最后,Oracle ASM(Automatic Storage ...
在具体查询执行过程中,AnalyticDB 2.0使用了一种称为"Share-Nothing"的架构,每个节点都有自己的存储和计算能力,确保低延迟。例如,上述示例查询中展示了从TableScanNode到JoinNode、FilterNode、ProjectNode等...
RDS的基本原理在于采用Share-Nothing架构的MySQL集群,每个数据库服务器都是独立的,通过网络连接,并不共享资源,这样提高了可扩展性和并发处理能力。RDS还支持主从备份和读副本技术,以增强数据的可靠性和处理能力...
EMC Greenplum的数据解决方案基于其大规模并行处理(MPP)架构,这种Share-Nothing架构意味着每个数据库节点都拥有独立的存储,不共享任何资源,从而实现高效并行处理。这种架构使得Greenplum能够轻松扩展,适用于...
- 通过share-nothing架构,提高系统扩展性和效率。 5. 大数据分析的价值: - 提供更全面的分析,提高决策的准确性。 - 通过深度复杂分析(如机器学习、人工智能)揭示潜在模式和趋势。 - 支持实时分析,促进...