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架构相关推荐

  1. kettle全量抽数据_漫谈数据平台架构的演化和应用

    随着科技的发展,数据在当代社会中所起的作用越来越大.阿里巴巴集团创始人马云在2014年提出了DT(Data Technology)的概念:"人类正从IT时代走向DT时代".DT的核 ...

  2. 从架构特点到功能缺陷,重新认识分析型分布式数据库

    写在前面 本文是分布式数据库的总纲文章的第一部分,主要探讨分析性分布式数据库的发展和技术差异:第二部分则是交易性数据库的一些关键特性分析.Ivan开始计划的分布式数据库是不含分析场景的,所以严格来说本 ...

  3. 最佳实践:HTAP数据库TBase助力某省级单位核心系统IT架构升级

    数据存储和处理是一个古老而重要的技术,从远古时期的结绳记事到古人的文本记事,再到计算机诞生后的各种系统,直到E.F.Codd提出关系模型,人类终于有了一种相对高效而统一的数据处理系统--关系数据库. ...

  4. postgresql 分区视图_PostgreSQL架构集中式到分布式主流架构总结

    文章目录 一.PG未来主流架构为什么是分布式二.PostgreSQL集中式到分布式架构总结 一.PG未来主流架构为什么是分布式 如果说5年前DB的分布式还只是一种趋势,如今分布式数据库正逐渐从趋势变成 ...

  5. 最佳实践 | 腾讯HTAP数据库TBase助力某省核心IT架构升级

    数据存储和处理是一个古老而重要的技术,从远古时期的结绳记事到古人的文本记事,再到计算机诞生后的各种系统,直到E.F.Codd提出关系模型,人类终于有了一种相对高效而统一的数据处理系统--关系数据库. ...

  6. 架构设计 - 自动化运维之架构设计六要点

    运维自动化是我们所渴望获得的,但是我们在一味强调自动化能力时,却忽略了影响自动化落地的一个关键因素.那便是跟运维朝夕相处,让人又爱又恨的业务架构. 因为业务架构是决定运维效率和质量的关键因素之一,所以 ...

  7. GaussDB(for MySQL)如何在存储架构设计上做到高可靠、高可用

    摘要: GaussDB(for MySQL)通过ND算子下推解决存储节点和计算节点之间的传输速度,减少网络开销这个难题. 数据库作为高效稳定处理海量数据交易/分析的坚强数据底座,底层架构设计的重要性不 ...

  8. 守护客户数据价值:企业级NewSQL HTAP分布式云TBase架构详解

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:jasonys,隶属于腾讯技术工程事业群数据平台部,负责TBase数据的技术研发和架构设计,有超过10年的数据库内核开发设计经验,完成 ...

  9. 可扩展的分布式数据库架构 vs 传统关系数据库

    可扩展的分布式数据库架构 7 15th, 2010 | Posted by jacky | Filed under 大话技术 发表评论 | Trackback 本文发表在<程序员>杂志20 ...

  10. GaussDB架构(中)

    在GaussDB架构(上)中我们介绍了GaussDB的发展历史和架构概览,本篇主要介绍GaussDB OLTP数据库架构和GaussDB OLAP数据库架构. GaussDB OLTP数据库架构. O ...

最新文章

  1. [NOI 2015]荷马史诗
  2. android 顺序执行任务
  3. C++ 使用copy_if获得数组vector掩膜
  4. 腾讯年度性爱报告发布,最后一条数据羞愧了...
  5. 一些知识点的整理以及面试题记录
  6. 函数式编程之-bind函数
  7. git使用:本地分支merge到远程分支
  8. 小米 android 刷4.0,小米如何刷MIUI4.0系统教程
  9. 给SAP Spartacus B2B list增加用户提示信息
  10. 计算机 ieee access,计算机 | IEEE Access 诚邀专刊稿件 (IF:3.557)
  11. vim中自动添加文件的作者、时间信息、版本等
  12. 解决Eclipse报errors running builder ‘javascript validator’ on project
  13. java找出所有缺席人员,GitHub - uxzhen/Java: 假娃会迟到,但不会缺席!http://xuzhen.work:8080/getAll...
  14. Percona 成为 MariaDB 基金会铜牌赞助商
  15. java中lock_Java中的锁
  16. php 字母加1,PHP语法(1)
  17. r软件读取oracle数据文件,科学网—R软件之读写数据文件 - 刘永辉的博文
  18. Windows 系统服务优化指南
  19. 学会Python到底工作三年却被实习生抢了饭碗,有多吃香?
  20. 职场中职员如何向上管理?

热门文章

  1. (java版)用邻接表实现无向图的创建
  2. 压力测试总共需要几个步骤?思路总结篇
  3. “互联网+”加速推进农业生产发展
  4. 新的ES6语法01—let:使用let关键字声明块范围的变量
  5. [转载]英语阅读用到的英文词汇收藏
  6. Poj 1451 JAVA 个人解题报告
  7. error C2226: 语法错误 : 意外的“LPSTR”类型
  8. 【对讲机的那点事】九招帮你轻松选购数字对讲机
  9. SharePoint2010QuickFlow安装及使用
  10. 使用Node.js爬取驴妈妈网的数据