Share-Nothing架构
Share nothing理论是在数据库设计和优化中的应用实践,并行数据库要求尽可能的去并行执行数据库操作,从而提高性能。在并行计算体系结构实现中有很多可选的体系结构。
#包括:
1. share-memory:多个cpu共享同一片内存,cpu之间通过内部通讯机制(interconnection network)进行通讯;
2. share-disk:每一个cpu使用自己的私有内存区域,通过内部通讯机制直接访问所有磁盘系统。
3. share-nothing:每一个cpu都有私有内存区域和私有磁盘空间,而且2个cpu不能访问相同磁盘空间,cpu之间的通讯通过网络连接。
#三种体系结构如下图:
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的实现方式。如果使用OracleSequence ,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特性;在设计可扩展的数据库应用的时候也要注意到这点。
作者:liuzx32
链接:https://www.jianshu.com/p/403df7516bdc
来源:简书
Share-Nothing架构相关推荐
- kettle全量抽数据_漫谈数据平台架构的演化和应用
随着科技的发展,数据在当代社会中所起的作用越来越大.阿里巴巴集团创始人马云在2014年提出了DT(Data Technology)的概念:"人类正从IT时代走向DT时代".DT的核 ...
- 从架构特点到功能缺陷,重新认识分析型分布式数据库
写在前面 本文是分布式数据库的总纲文章的第一部分,主要探讨分析性分布式数据库的发展和技术差异:第二部分则是交易性数据库的一些关键特性分析.Ivan开始计划的分布式数据库是不含分析场景的,所以严格来说本 ...
- 最佳实践:HTAP数据库TBase助力某省级单位核心系统IT架构升级
数据存储和处理是一个古老而重要的技术,从远古时期的结绳记事到古人的文本记事,再到计算机诞生后的各种系统,直到E.F.Codd提出关系模型,人类终于有了一种相对高效而统一的数据处理系统--关系数据库. ...
- postgresql 分区视图_PostgreSQL架构集中式到分布式主流架构总结
文章目录 一.PG未来主流架构为什么是分布式二.PostgreSQL集中式到分布式架构总结 一.PG未来主流架构为什么是分布式 如果说5年前DB的分布式还只是一种趋势,如今分布式数据库正逐渐从趋势变成 ...
- 最佳实践 | 腾讯HTAP数据库TBase助力某省核心IT架构升级
数据存储和处理是一个古老而重要的技术,从远古时期的结绳记事到古人的文本记事,再到计算机诞生后的各种系统,直到E.F.Codd提出关系模型,人类终于有了一种相对高效而统一的数据处理系统--关系数据库. ...
- 架构设计 - 自动化运维之架构设计六要点
运维自动化是我们所渴望获得的,但是我们在一味强调自动化能力时,却忽略了影响自动化落地的一个关键因素.那便是跟运维朝夕相处,让人又爱又恨的业务架构. 因为业务架构是决定运维效率和质量的关键因素之一,所以 ...
- GaussDB(for MySQL)如何在存储架构设计上做到高可靠、高可用
摘要: GaussDB(for MySQL)通过ND算子下推解决存储节点和计算节点之间的传输速度,减少网络开销这个难题. 数据库作为高效稳定处理海量数据交易/分析的坚强数据底座,底层架构设计的重要性不 ...
- 守护客户数据价值:企业级NewSQL HTAP分布式云TBase架构详解
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:jasonys,隶属于腾讯技术工程事业群数据平台部,负责TBase数据的技术研发和架构设计,有超过10年的数据库内核开发设计经验,完成 ...
- 可扩展的分布式数据库架构 vs 传统关系数据库
可扩展的分布式数据库架构 7 15th, 2010 | Posted by jacky | Filed under 大话技术 发表评论 | Trackback 本文发表在<程序员>杂志20 ...
- GaussDB架构(中)
在GaussDB架构(上)中我们介绍了GaussDB的发展历史和架构概览,本篇主要介绍GaussDB OLTP数据库架构和GaussDB OLAP数据库架构. GaussDB OLTP数据库架构. O ...
最新文章
- [NOI 2015]荷马史诗
- android 顺序执行任务
- C++ 使用copy_if获得数组vector掩膜
- 腾讯年度性爱报告发布,最后一条数据羞愧了...
- 一些知识点的整理以及面试题记录
- 函数式编程之-bind函数
- git使用:本地分支merge到远程分支
- 小米 android 刷4.0,小米如何刷MIUI4.0系统教程
- 给SAP Spartacus B2B list增加用户提示信息
- 计算机 ieee access,计算机 | IEEE Access 诚邀专刊稿件 (IF:3.557)
- vim中自动添加文件的作者、时间信息、版本等
- 解决Eclipse报errors running builder ‘javascript validator’ on project
- java找出所有缺席人员,GitHub - uxzhen/Java: 假娃会迟到,但不会缺席!http://xuzhen.work:8080/getAll...
- Percona 成为 MariaDB 基金会铜牌赞助商
- java中lock_Java中的锁
- php 字母加1,PHP语法(1)
- r软件读取oracle数据文件,科学网—R软件之读写数据文件 - 刘永辉的博文
- Windows 系统服务优化指南
- 学会Python到底工作三年却被实习生抢了饭碗,有多吃香?
- 职场中职员如何向上管理?
热门文章
- (java版)用邻接表实现无向图的创建
- 压力测试总共需要几个步骤?思路总结篇
- “互联网+”加速推进农业生产发展
- 新的ES6语法01—let:使用let关键字声明块范围的变量
- [转载]英语阅读用到的英文词汇收藏
- Poj 1451 JAVA 个人解题报告
- error C2226: 语法错误 : 意外的“LPSTR”类型
- 【对讲机的那点事】九招帮你轻松选购数字对讲机
- SharePoint2010QuickFlow安装及使用
- 使用Node.js爬取驴妈妈网的数据