技术向:大数据存储—分布式系统的事务处理

当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题:

(1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求。

(2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失。

于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问题。 通常,我们会通过两种手段来扩展我们的数据服务:

(1)数据分区:就是把数据分块放在不同的服务器上(如:uid % 16,一致性哈希等)。

(2)数据镜像:让所有的服务器都有相同的数据,提供相当的服务。

对于第一种情况,我们无法解决数据丢失的问题,单台服务器出问题时,会有部分数据丢失。所以,数据服务的高可用性只能通过第二种方法来完成——数据的冗余存储(一般工业界认为比较安全的备份数应该是3份,如:Hadoop和Dynamo)。 但是,加入更多的机器,会让我们的数据服务变得很复杂,尤其是跨服务器的事务处理,也就是跨服务器的数据一致性。这个是一个很难的问题。 让我们用最经典的Use Case:“A帐号向B帐号汇钱”来说明一下,熟悉RDBMS事务的都知道从帐号A到帐号B需要6个操作:

1)从A帐号中把余额读出来。

2)对A帐号做减法操作。

3)把结果写回A帐号中。

4)从B帐号中把余额读出来。

5)对B帐号做加法操作。

6)把结果写回B帐号中。

为了数据的一致性,这6件事,要么都成功做完,要么都不成功,而且这个操作的过程中,对A、B帐号的其它访问必需锁死,所谓锁死就是要排除其它的读写操作,不然会有脏数据的问题,这就是事务。那么,我们在加入了更多的机器后,这个事情会变得复杂起来:

1)在数据分区的方案中:如果A帐号和B帐号的数据不在同一台服务器上怎么办?我们需要一个跨机器的事务处理。也就是说,如果A的扣钱成功了,但B的加钱不成功,我们还要把A的操作给回滚回去。这在跨机器的情况下,就变得比较复杂了。

2)在数据镜像的方案中:A帐号和B帐号间的汇款是可以在一台机器上完成的,但是别忘了我们有多台机器存在A帐号和B帐号的副本。如果对A帐号的汇钱有两个并发操作(要汇给B和C),这两个操作发生在不同的两台服务器上怎么办?也就是说,在数据镜像中,在不同的服务器上对同一个数据的写操作怎么保证其一致性,保证数据不冲突?

同时,我们还要考虑性能的因素,如果不考虑性能的话,事务得到保证并不困难,系统慢一点就行了。除了考虑性能外,我们还要考虑可用性,也就是说,一台机器没了,数据不丢失,服务可由别的机器继续提供。 于是,我们需要重点考虑下面的这么几个情况:

1)容灾:数据不丢、结点的Failover

2)数据的一致性:事务处理

3)性能:吞吐量 、 响应时间

前面说过,要解决数据不丢,只能通过数据冗余的方法,就算是数据分区,每个区也需要进行数据冗余处理。这就是数据副本:当出现某个节点的数据丢失时可以从副本读到,数据副本是分布式系统解决数据丢失异常的唯一手段。所以,在这篇文章中,简单起见,我们只讨论在数据冗余情况下考虑数据的一致性和性能的问题。简单说来:

1)要想让数据有高可用性,就得写多份数据。

2)写多份的问题会导致数据一致性的问题。

3)数据一致性的问题又会引发性能问题。

这就是软件开发,按下了葫芦起了瓢。

本文作者:佚名

来源:51CTO

时间: 2024-11-10 01:00:03

技术向:大数据存储—分布式系统的事务处理的相关文章

多技术构架大数据存储应用

多技术构架大数据存储应用 英特尔公司 徐民先 在安防行业,大数据时代引发诸多技术革命,对于监控存储企业面临诸多挑战,如何解决是业界为之关注话题. 大数据时代的存储方式 英特尔的理念是在端到端的安防行业,全面实现数据价值的挖掘.所谓"端到端",包括前端视频采集.分析,存储以及后端数据中心处理.区别于单个设备的解决方案,英特尔以其优越的性能.灵活的设计为设备制造商和系统集成商提供整套系统化解决方案,从数据获取.存储.分析到应用各个层面均有覆盖.从硬件角度,英特尔提供的全系列处理器涵盖入门级

基于NoSQL数据库的大数据存储技术的研究与应用

基于NoSQL数据库的大数据存储技术的研究与应用 孙中廷 实际工程中采集和处理的数据量特别大,这对传统数据库技术提出巨大挑战.针对传统关系型数据库存储速度慢.对硬件要求高的缺点,提出一种以NoSQL数据库为基础的大数据处理方法,打破了传统数据库的关系模型,数据以一种自由的方式存储,而不依赖固定的表结构.该方法主要是将经验模态分解并与NoSQL数据库技术相结合,应用于大型结构件的变形监测中,构建出一个基于NoSQL数据库系统的大型结构件变形监测系统.仿真结果表明,该方法可以实现大型结构件变形监测数

吞噬大数据存储领域新机制——NoSQL模式解析

在过去几年,一种新兴的大型数据存储机制正吞噬大数据存储市场.这种存储解决方案与传统的RDBMS有显著的区别,它们被称之为NoSQL. 在NoSQL世界中有以下关键的成员,包括 ●Google BigTable.HBase.Hypertable ●Amazon Dynamo.Voldemort.Cassendra.Riak ●Redis ●CouchDB.MongoDB 而这些解决方案又有一些共同的特点 ●基于键-值存储 ●系统运行在海量的普通机器上 ●数据在经过分区和复制后分布在集群中 ●放宽对

《Hadoop与大数据挖掘》——第2章 大数据存储与运算利器—Hadoop 2.1 Hadoop概述

第2章 大数据存储与运算利器-Hadoop 本章主要介绍了Hadoop框架的概念.架构.组件.生态系统以及Hadoop相关编程,特别是针对Hadoop组件HDFS.MapReduce.YARN,Hadoop MapReduce编程做了较详细的介绍.在介绍各个知识点的同时,结合动手实践章节,帮助读者理解对应的内容. 2.1 Hadoop概述 2.1.1 Hadoop简介 随着现代社会的发展,各种信息数据存量与增量都非常大,很多情况下需要我们能够对TB级,甚至PB级数据集进行存储和快速分析,然而单机

华为与英特尔构建全融合大数据存储解决方案

IDC预测,全球数据总量将在2020年达到40ZB.40ZB的数据量是什么概念呢? IDC给出了一个比喻:如果把一粒沙子当做一个字的话,40ZB的数据量相当于地球上所有海滩上沙子数量的57倍;40ZB的数据量相当于667千亿部高清影片,一个人每天24小时连续不断地看,看完这些电影需要5万6千亿年;目前我们对地球年龄的估值是45.5亿年,意味着,如果这个人从地球诞生的时候就开始看电影,现在他只看完了这些电影总数的万分之八(0.0008).而这些数据,每两年还将翻一番,呈指数级增长态势.大数据将以一

大数据存储领域的八位明星

正如存储技术分析师Greg Schulz所言,"大数据无与伦比,它拥有承载一切的能力."也就是说目前市场上已经存在多款独立存储工具,旨在帮助存储管理员打理规模日益膨胀的大数据海洋.同样在意料之中的是,其中大部分与Hadoop关系密切. SGI InfiniteStorage SGI InfiniteStorage通过虚拟化技术让存储转化为一整套混合体系,其中既包含性能超群的闪存机制.又拥有成本低廉的磁带方案.而这一切都建立在数据始终在线的基础之上,也就是实现数据对用户的透明化. &qu

戴尔专门拿出6000万美元押宝大数据存储服务

戴尔(http://www.aliyun.com/zixun/aggregation/13533.html">Dell)创始人Michael Dell近日宣布,戴尔公司将会专门拨出6000万美元的投资基金,用于投资存储初创公司. 戴尔公司表示,未来的大数据存储将会创造一个巨大的市场.Michael Dell声称,在未来,一定会有围绕大数据服务而产生的伟大公司,戴尔愿意帮助他们在初期发展. 数据存储将会越来越重要,Michael认为,各种数据存储技术将会大发展.而戴尔公司专门拿出6000万美

应用解析:大数据存储服务选择最佳做法

磁盘存储就像是衣橱,永远不够用,在大数据时代,这一点尤为突出."大数据"意味着需要比传统存储平台处理更多的数据.那么这对于CIO意味着什么呢?意味着他们将需要做出更多的努力,而可供参考的信息却很少. 不过,在为大数据选择存储服务时也并不是完全无迹可寻. 何谓大数据 首先,我们需要清楚大数据与其他类型数据的区别以及与之相关的技术(主要是分析应用程序).大数据本身意味着非常多需要使用标准存储技术来处理的数据.大数据可能由TB级(或者甚至PB级)信息组成,既包括结构化数据(数据库.日志.SQ

未来大数据存储:1PB仅需一张光盘

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;     以后数据存储无论个人用户,抑或不同规模的企业政府机关等,都可更加轻松地进行.来自斯威本科技大学(SwinburneUniversityofTechnology)的研究团队负责人MinGu教授最新开发出了一种全新的数据存储方式,可将1PB(1024TB)的数据存储到一张仅DVD大小的聚合物碟片上. 大数据存储在当今世界已经显得尤为必要,而且我们人类自步入数字时