share-Nothing原理

 Share nothing理论在数据库设计和优化中的实践应用

  首先介绍share nothing概念。最早接触它是在 DataBaseManagentSystem一书的并行数据库章节中。

  并行数据库要求尽可能的去并行执行数据库操作,从而提高性能。在并行计算体系结构实现中有很多可选的体系结构。包括:

  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特性;在设计可扩展的数据库应用的时候也要注意到这点。

文件转载来自http://oracle.chinaitlab.com/optimize/39626.html

转载于:https://www.cnblogs.com/opina/archive/2013/01/22/2870982.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux查看逻辑卷命令,Linux命令--逻辑卷管理

往卷组中添加新的物理卷10.vgcfgbackup备份卷组中各物理卷的VGDA信息到/etc/vmconf目录的文件中11.vgcfgrestore从文件中恢复卷组中物理卷的VGDA12.vgchange改变卷组属性13.vgck检测卷组中VGDA的一致性14.vgdisplay显示卷组信息15.vgexport输出卷组使系统不能识别该卷组16.vgim…

python怎么创建文件夹_如何使用python在文件夹中创建文本文件?

我试图在一个不是运行脚本的目录的文件夹中创建一个.txt文件。我有一个脚本所在的文件夹,我可以在脚本所在的同一个目录中创建该文件夹,但它不会在该文件夹中创建文本文件。我通常遇到两个错误中的一个:PermissionError: [Errno 13] Permissi…

顺利搭建了oracle

哈哈转载于:https://www.cnblogs.com/zzzzw/p/5182224.html

php 计算n天后

法一:date("Y-m-d",mktime(0,0,0,date("m"),date("d")7,date("Y"))); 法二:date("Y-m-d H:i:s",strtotime("-7 day"));转载于:https://www.cnblogs.com/kwishly/archive/2013/01/23/2872834.html

返回对应对象的克隆方法

代码 usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Collections;usingSystem.Reflection;namespaceCommon.CloneObjBase{ ///<summary>///BaseObject类是一个用来继承的抽象类。 ///每一个由此类继承而来的类将自动支持克隆方法…

linux磁盘使用情况脚本,技术|用 Linux Shell 脚本来监控磁盘使用情况并发送邮件...

市场上有很多用来监控 Linux 系统的监控工具&#xff0c;当系统到达阀值后它将发送一封邮件。它监控所有的东西例如 CPU 利用率、内存利用率、交换空间利用率、磁盘空间利用率等等。然而&#xff0c;它更适合小环境和大环境。想一想如果你只有少量系统&#xff0c;那么什么是最…

markdown 语法_Markdown 基本语法

Markdown 是一种轻量级的标记语言&#xff08;markup language&#xff09;&#xff0c;由 John Gruber&#xff08;1973 ~&#xff09;与 Aaron Swartz &#xff08;1986 ~ 2013&#xff09;于2004年创造&#xff0c;被网站用于编写说明文件&#xff08;readme&#xff09;、技…

原来fb可以在一个工程里面输出多个swf模块

转载于:https://www.cnblogs.com/wonderKK/archive/2013/01/23/2873555.html

MYSQL的全表扫描,主键索引(聚集索引、第一索引),非主键索引(非聚集索引、第二索引),覆盖索引四种不同查询的分析...

文章出处&#xff1a;http://inter12.iteye.com/blog/1430144 MYSQL的全表扫描&#xff0c;主键索引(聚集索引、第一索引)&#xff0c;非主键索引(非聚集索引、第二索引)&#xff0c;覆盖索引四种不同查询的分析 1.前置条件&#xff1a; 本次是基于小数据量&#xff0c;且数据块…

控件(View)之TextSwitcher, Gallery, ImageSwitcher, GridView, ListView, ExpandableList【转】

在 Android 中使用各种控件(View) TextSwitcher - 文字转换器控件&#xff08;改变文字时增加一些动画效果&#xff09;Gallery - 缩略图浏览器控件ImageSwitcher - 图片转换器控件&#xff08;改变图片时增加一些动画效果&#xff09;GridView - 网格控件ListView - 列表控件E…

linux下php反编译apk,php反编译

Host IP&#xff1a;运行APP的Host侧IP地址。 Compile Path&#xff1a;推理场景为ATC的执行路径&#xff0c;训练场景为脚本执行路径。用于存储算子编译中间生成的输出件和pbtxt&#xff0c;一般为“kernel_meta”文件的父路径(例如&#xff1a;~/model_convert)。 图1 参数配…

13 对话一 【96】

13 对话一 【96】 This line is taking forever! It sure is. But lunch hour is the busiest time of day. That’s true. Especially at the end of the month. Mm-hmm. You know, you look really familiar. Don’t I know you from somewhere? I’m not sure. I think we…

程序员狂想曲

【前序】博客园首页对博文的规定有&#xff1a;原创精品、排版整齐、有足够的篇幅、与程序员相关、能够让读者从中学到知识的基本要求。我心想&#xff0c;除非不同时空&#xff0c;否则这绝对是我原创的&#xff1b;段落分明排版自然问题不大&#xff1b;一千三百来字的文章远…

python异常处理的语法格式_Python异常处理

Python异常处理 一. 异常的概念 程序在运行时&#xff0c;如果 Python 解释器 遇到 到一个错误&#xff0c;会停止程序的执行&#xff0c;并且提示一些错误信息&#xff0c;这就是 异常。 程序停止执行并且提示错误信息 这个动作&#xff0c;我们通常称之为&#xff1a;抛出(ra…

Cheatsheet: 2010 04.26 ~ 04.30

Web Telling robots about your crawl-able Ajax apps Scrollin’ Scrollin’ Scrollin’ to the NextPoint The Big List of JavaScript, CSS, and HTML Development Tools, Libraries, Projects, and Books Database MongoDB vs. SQL Server 2008 Performance Showdown Raven…

linux防ddos 软件下载,linux下防DDOS工具

DDoS deflate是一款免费的用来防御和减轻DDoS攻击的脚本。它通过netstat监测跟踪创建大量网络连接的IP地址&#xff0c;在检测到某个结点超过预设的限 制时&#xff0c;该程序会通过APF或IPTABLES禁止或阻挡这些IP.DDoS deflate官方网站&#xff1a;http://deflate.medialayer.…

${oid?c}的使用

编辑器加载中... ${oid?c} 写在js里会报错&#xff0c;其实根本就不用转换&#xff0c;但是如果在非javascript里就要转换 &#xff0c;因为会出现逗号问题 还有个问题要注意下&#xff1a; var orderId document.getElementsByName("orderId"); 获取的orderId如果…

从零开始山寨Caffe·零:必先利其器

工作环境 巧妇有了米炊 众所周知&#xff0c;Caffe是在Linux下写的&#xff0c;所以长久以来&#xff0c;大家都认为跑Caffe&#xff0c;先装Linux。 niuzhiheng大神发起了caffe-windows项目&#xff08;解决了一些编译、API相异问题&#xff09; 以及willyd大神发起的caffe-wi…

python单例_Python - 单例模式(Singleton)

单例模式(Singleton) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/23374575 单例模式 , 类的实例从始至终, 只 被创建一次 , 这些类可以用来管理一些资源; 需要 继承Object类 , 才可以使用类的方法 super() , 只实例化一次; 参见Python文档: Note super() …

Linux抓eth0网卡包的命令,Linux系统使用tcpdump命令抓包

前提条件&#xff1a;1. 一台安装有Linux的机器….这个是必要的&#xff1b;2. Tcpdump程序;3. 以下所有均是root用户登录操作&#xff0c;且命令不支持直接复制到Linux控制台&#xff0c;请手工输入&#xff01;4.工具以及教程文档下载地址 点我操作步骤&#xff1a…