数据存储方案.docx

上传人:b****1 文档编号:13759636 上传时间:2023-06-17 格式:DOCX 页数:14 大小:35.04KB
下载 相关 举报
数据存储方案.docx_第1页
第1页 / 共14页
数据存储方案.docx_第2页
第2页 / 共14页
数据存储方案.docx_第3页
第3页 / 共14页
数据存储方案.docx_第4页
第4页 / 共14页
数据存储方案.docx_第5页
第5页 / 共14页
数据存储方案.docx_第6页
第6页 / 共14页
数据存储方案.docx_第7页
第7页 / 共14页
数据存储方案.docx_第8页
第8页 / 共14页
数据存储方案.docx_第9页
第9页 / 共14页
数据存储方案.docx_第10页
第10页 / 共14页
数据存储方案.docx_第11页
第11页 / 共14页
数据存储方案.docx_第12页
第12页 / 共14页
数据存储方案.docx_第13页
第13页 / 共14页
数据存储方案.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据存储方案.docx

《数据存储方案.docx》由会员分享,可在线阅读,更多相关《数据存储方案.docx(14页珍藏版)》请在冰点文库上搜索。

数据存储方案.docx

数据存储方案

引言

文献是由Rick Cattell撰写的论文,论文讨论了可扩展的结构化数据的、非结构化的(包括基于键值对的、基于文档的和面向列的)数据存储方案(注:

NOSQL是支撑大数据应用的关键所在。

事实上,将NOSQL翻译为“非结构化”不甚准确,因为NOSQL更为常见的解释是:

NotOnlySQL(不仅仅是结构化),换句话说,NOSQL并不是站在结构化SQL的对立面,而是既可包括结构化数据,也可包括非结构化数据)。

论文信息

ScalableSQLandNoSQLDataStores

RickCattellOriginally publishedin 2010,lastrevisedDecember 2011

摘要

ABSTRACT

In this paper, weexamine anumber ofSQLandso-called“NoSQL”data storesdesignedtoscale simple OLTP-styleapplicationloadsovermany servers.

OriginallymotivatedbyWeb2.0applications, thesesystemsaredesignedto scale tothousands ormillionsof usersdoingupdates aswellasreads,incontrast totraditionalDBMSs anddatawarehouses.

Wecontrast thenew systemsontheirdatamodel,consistencymechanisms,storagemechanisms,durability guarantees, availability,querysupport, andotherdimensions.Thesesystems typically sacrificesomeofthesedimensions,e.g.database-widetransactionconsistency,inordertoachieve others,e.g.higheravailabilityandscalability.

在这篇文献中,我们验证了许多SQL和所谓的‘NoSQL’数据存储(它设计于支持简单的OLTP风格的应用,能够用于扩展在很多服务器上)

它最先由Web2.0应用引起,与传统的数据库管理系统和数据仓库对比,这些系统设计为可扩展到数以千计或数以百万计的用户做更新,同时读取。

我们对比了新系统上的数据模型,一致性机制,存储机制,持久性保证,可用性,支持的查询以及其它属性,这些系统典型的牺牲(为了实现其它属性而去掉)了一些属性。

如数据库常有的事务一致性,牺牲了这个是为了其它的属性,如高可用,可扩展。

Note:

Bibliographicreferencesforsystems arenotlisted,butURLs formoreinformation canbe found in the System Referencestable atthe endof thispaper.

注:

参考书没列出来(翻译省)

Caveat:

Statementsin this paperarebasedonsourcesanddocumentationthatmay notbereliable,and thesystemsdescribedare“movingtargets,”sosomestatementsmaybeincorrect.Verifythrough othersources beforedependingoninformationhere.Nevertheless, wehopethis comprehensive survey isuseful!

Checkfor futurecorrectionsontheauthor’s web sitecatt/datastores.

警告:

一些提及的书可能不可用。

尽管如此,我们还是希望这篇综合的文献对大家有帮助,我们网站:

Disclosure:

Theauthoris onthe technical advisoryboard ofSchoonerTechnologiesand hasaconsulting business advisingonscalabledatabases.

透漏:

作者是 可扩展数据库商业顾问。

1.OVERVIEW

Inrecentyears a numberofnewsystemshavebeendesignedtoprovide good horizontalscalabilityforsimpleread/write databaseoperationsdistributedovermany servers.Incontrast,traditionaldatabaseproducts have comparativelylittleor noabilitytoscalehorizontally on theseapplications.Thispaperexaminesandcompares thevariousnewsystems.

近年,很多系统的设计提供良好水平扩展,支持在多服务器上分布式读写。

相比较传统的系统,一般为无扩展,规模小。

本篇文献研究与对比很多不同的新系统(Yol注,其实就是各种NOSQL设计进行对比,比如Mongo与Hbase分类,简介)

Manyof thenewsystemsarereferredtoas“NoSQL” datastores.Thedefinition ofNoSQL,whichstandsfor “NotOnlySQL”or “NotRelational”,isnotentirely agreedupon.Forthepurposesofthis paper,NoSQLsystemsgenerally have sixkeyfeatures:

NoSQL等于NotOnly SQL,或者NotRelational(弱关系型数据库,与mysql比较起来),NoSQL的systems一般有6重要特征:

1.theability tohorizontallyscale “simpleoperation” throughput overmany servers,

通过简单操作在多服务器上水平扩展的能力

2. theability toreplicateand to distribute(partition)data overmany servers,

复制和分发(分区)数据在多个服务器的能力

3. asimplecall levelinterfaceorprotocol (incontrast toaSQLbinding),

一种简单的调用级接口或协议(相比较于SQL绑定)

4.aweakerconcurrency(并发性,并行性) model than theACIDtransactionsofmostrelational (SQL)databasesystems,

对比大多数关系数据库(SQL)数据库管理系统ACID事务,它是一种较弱的并发模型

5.efficient use ofdistributedindexes andRAM fordatastorage,

有效地利用分布式的索引和RAM 的数据存储

6.andthe abilitytodynamicallyaddnewattributestodatarecords.

动态地在数据记录中添加新的属性

Thesystemsdifferinotherways,and in thispaperwecontrastthosedifferences.Theyrangeinfunctionality fromthesimplest distributedhashing,assupported by thepopularmemcachedopensourcecache,to highlyscalablepartitionedtables,assupportedbyGoogle’sBigTable[1].Infact, BigTable, memcached, andAmazon’sDynamo[2]provideda“proofofconcept”that inspired manyofthe datastoreswedescribehere:

这些系统在其他方面也有不同,在本文中我们对比了这些差异。

它们的范围从简单的分布式哈希算法,如流行的 开源memcached 缓存,到高度可扩展的已分区表,如谷歌的 BigTable[1]。

事实上,BigTable,memcached和亚马逊的Dynamo[2]提供”概念证明”,催动了许多我们在这儿描述的数据存储:

∙Memcacheddemonstrated(论证,证明)thatin-memoryindexescanbehighlyscalable,distributingandreplicating objects overmultiple nodes.

∙Memcached表明内存中索引可以是高度可伸缩、分布式和在多个节点上复制对象。

∙Dynamopioneered the ideaof eventualconsistencyasaway toachievehigheravailabilityandscalability:

 datafetchedarenotguaranteed to beup-to-date, butupdates are guaranteed tobepropagatedto all nodeseventually.

∙Dynamo的先驱想了一个idea,以实现更高的可用性和可伸缩性的最终一致性,那就是:

获取数据不能保证是最新的,但保证这个最新能最终传播到所有节点。

∙BigTabledemonstratedthatpersistentrecord storagecould bescaled to thousands of nodes, afeatthatmostoftheother systems aspire to.

∙BigTable表明,持续的记录存储可以缩放到数千个节点,是其他系统最向往的。

 Akeyfeature ofNoSQLsystemsis“shared nothing”horizontalscaling–replicatingandpartitioning data overmanyservers.Thisallowsthem tosupport alargenumberofsimple read/writeoperationspersecond.ThissimpleoperationloadistraditionallycalledOLTP(online transactionprocessing),but itisalsocommoninmodern webapplications

NoSQL系统的一个核心特征是”无共享”的水平扩展——复制和数据分区在多台服务器。

这使他们能够支持大量的每秒简单的读写操作。

这个简单的操作负荷传统上称为OLTP(联机事务处理),但这在web应用程序中很常见。

TheNoSQLsystems describedhere generallydonotprovide ACID transactionalproperties:

updatesareeventuallypropagated,buttherearelimited guarantees ontheconsistencyofreads.Someauthorssuggesta“BASE”acronymincontrast tothe “ACID” acronym:

通常这里描述的NoSQL系统不提供事务的 ACID 属性:

更新最终传播,但一致性的读取有有限的保证。

对比ACID的缩写,有些作者建议”BASE”的首字母缩略词,意义如下:

∙BASE=BasicallyAvailable,Softstate,Eventually consistent

∙基本可用,软状态,最终一致

∙ACID=Atomicity,Consistency,Isolation, andDurability

∙原子性、一致性、隔离和耐久性

 

 

Theideaisthat by givingupACIDconstraints,one canachieve muchhigherperformanceandscalability.

 这其中的想法是通过放弃ACID约束,可以实现多更高的性能和可扩展性.

However,thesystems differinhowmuchtheygiveup. Forexample, mostofthesystemscallthemselves“eventuallyconsistent”,meaningthatupdatesareeventually propagated toallnodes, but many ofthemprovide mechanisms forsomedegreeofconsistency,suchasmulti-versionconcurrencycontrol (MVCC).

然而,系统在他们放弃多少有所不同。

例如,大部分的系统调用自己”最终一致性”,意味着更新最终传播到所有节点,但其中许多人提供一定程度的一致性的机制,例如多版本并发控制(MVCC)

Proponents(n.(某事业、理论等的)支持者,拥护者) ofNoSQLoften citeEricBrewer’sCAP theorem[4],whichstatesthatasystemcanhaveonlytwoout of threeofthefollowingproperties:

consistency,availability,andpartition-tolerance.TheNoSQLsystems generallygive upconsistency.However,thetrade-offsarecomplex,aswe willsee.

NoSQL的拥护者经常援引EricBrewer帽定理[4],其中指出,一个系统可以有只有2/3的以下属性:

一致性、可用性和分区容忍性。

NoSQL 系统通常会放弃一致性。

然而,权衡取舍是复杂的正如我们将看到

Newrelational DBMSs havealsobeenintroduced toprovidebetter horizontalscalingforOLTP,whencomparedtotraditionalRDBMSs.After examiningtheNoSQLsystems,wewill lookatthese SQLsystemsandcomparethestrengths oftheapproaches.TheSQL systemsstrivetoprovidehorizontalscalabilitywithoutabandoningSQLandACIDtransactions.Wewilldiscuss thetrade-offs(权衡取舍)here.

此外介绍了新的关系型Dbms提供更好水平扩展用于OLTP,相比传统的Rdbms。

在检查后的NoSQL系统,我们将看看这些SQL系统,然后比较优势。

SQL系统极力在不放弃SQL和ACID事务的前提下提供水平可伸缩性。

我们将在这里讨论权衡取舍

In thispaper,wewillrefer to both thenewSQLand NoSQL systemsasdata stores,sincetheterm “databasesystem”iswidely used torefertotraditional DBMSs.However,wewillstillusetheterm“database”to refertothestoreddatain thesesystems.Allofthedatastoreshave someadministrativeunit thatyouwouldcalladatabase:

 datamaybestoredin onefile,orin adirectory,orviasomeothermechanismthatdefinesthescope ofdataused byagroupofapplications.Eachdatabaseisanislanduntoitself,evenif the database ispartitioned anddistributed overmultiple machines:

there isno“federateddatabase”concept inthesesystems(aswithsomerelationaland object-orienteddatabases),allowingmultipleseparately-administereddatabasestoappearas one.Mostof thesystemsallowhorizontal partitioningof data,storingrecordsondifferentserversaccordingtosomekey; thisiscalled“sharding”.Someofthesystemsalsoallowverticalpartitioning,wherepartsofasinglerecordare stored ondifferent servers.

在本文中,我们将新SQL和NoSQL系统称为数据存储,因为”数据库系统”一词被广泛用于指传统DBMS。

但是,我们仍将使用”数据库”一词指在这些系统中存储的数据引用。

数据存储的都是一些数据库的(行政,管理)单位,:

数据可能存储在一个文件中,或在目录中,或通过定义范围的数据使用的其他一些机制的一组应用程序。

每个数据库是一座孤岛本身,即使数据库分区并且分布在多台机器:

在这些系统中有没有”联邦的数据库”概念(如一些关系数据库和面向对象数据库),允许多个单独管理的数据库,显示为一个(Yol注:

也就是不允许多个单独的显示为一个)。

大多数系统允许根据一些键,进行水平分区存储数据,记录在不同的服务器,;这就被所谓”切分”。

一些系统还允许进行垂直分区,单个记录的分成部分,分布存储在不同服务器上。

1.1 ScopeofthisPaper

此文献讨论范围

Beforeproceeding,someclarificationisneededindefining“horizontalscalability”and“simpleoperations”.Thesedefinethefocusofthispaper.

在开始之前,在定义”横向扩展”和”操作简单”需要一些澄清。

这些定义本文的重点。

By“simple operations”,werefertokeylookups,readsandwrites ofonerecord orasmallnumberof records.Thisisincontrasttocomplex queries or joins, read- mostlyaccess,or otherapplicationloads.Withtheadventoftheweb,especiallyWeb2.0siteswheremillionsof usersmaybothreadandwrite data,scalabilityforsimpledatabaseoperationshasbecome more important.Forexample,applicationsmaysearchandupdate multi-server databases ofelectronicmail,personalprofiles,webpostings,wikis, customer records,online datingrecords,classifiedads, andmanyother kindsofdata.Theseallgenerallyfitthedefinitionof“simpleoperation”applications:

 reading orwritingasmall numberofrelated recordsin each operation.

“简单的操作,”指:

我们是指关键的查找、读取和写入一条记录或记录的小数目。

这是与复杂的查询或联接(joins),只读主要访问,或其他应用程序加载相对比的。

随着互联网的出现,特别是Web 2.0网站在那里数以百万计的用户可同时读取和写入数据,简单的数据库操作的可扩展性已变得更为重要。

例如,应用程序可以搜索和更新多个服务器数据库上的电子邮件、个人配置文件、网络帖子、wiki、客户记录、在线约会记录,分类广告和许多其他类型的数据。

这些一般都符合定义的应用程序”操作简单”:

即读取或写入每个操作中的相关记录的小数目。

Theterm“horizontalscalability

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 教育学心理学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2