1.2.2 数据存储技术
Daniel等探讨了在云中配置数据库管理系统的优势与局限性。
云计算环境有以下3个优势:
(1)在工作量可并行计算的前提下,计算能力是弹性的。
(2)数据存储在不信任的主机上。云计算这个名词给人的印象好像是计算存储资源的位置不确定,但实际上数据是处于特定国家符合当地法律规范的主机中的,所以用户对存储在云中的数据只有有限的控制,数据还是处于一个相对来说不安全的环境中。
(3)数据通常是进行远程复制。
数据的可用性是云存储提供商很关心的问题,如果数据不可用将会影响提供商的信誉。提供商采用副本容错的方式保证数据的可用性。
从云计算环境的3个优势分析得出,只有两种数据管理应用程序可能适合部署到云计算中:一种是和事务处理相关的数据管理系统;另一种是和分析相关的数据管理系统。
基于分析的云数据库管理系统应该具有以下性质和特点:
· 效率。使用云计算的费用与请求的网络带宽、存储空间的容量和计算力是呈正比的。
· 容忍错误。基于分析的数据库管理系统不能因为某个节点失效而重新执行查询请求,而是允许在节点失效的情况下同样保证查询的正确性。
· 能够在异构的环境中运行。云计算中的计算机性能差别太大,所以必须采取相应的机制,防止某些任务在性能较差的计算机上执行时,由于速度过慢对整个任务的完成造成较大影响。
· 能够操作加密的数据。很多敏感信息都是经过加密后上传到云中的,为了防止非授权的访问,云数据库管理系统要有处理加密数据的能力。
· 能够与商业化的智能产品进行交互。
为了保证信息的安全性,多数厂商对数据采用了冗余存储的方式。为了保证数据的一致性,数据服务器副本之间始终保持通信,及时了解数据的相应变化。在进行事物处理前,必须确认所有副本中都已经保存了最近更新的数据。任一服务器节点如果对更新的数据没有反应,则所有的副本节点均必须等待,直到全部确认了更新信息。这一过程很容易导致事务处理的失败,从而使得整体性能下降。在基于树的数据一致性方法中,为了保证数据的一致性且不会造成性能的下降,在云数据库系统中设立了两种节点,一种是控制器(Controler);另外一种是数据服务器副本(Database Replication)。系统中可能有两个或两个以上的控制器,其任务是建立一致性树。当用户访问数据服务器时,由于控制器决定所要选择的数据库;当有故障发生时,由控制器重建树。数据服务器副本用于存储数据,完成各项事务处理及其他一些数据库操作。所有的副本之间是有联系的,其中委派一个主副本建立与用户的联系,并负责与其他副本保持通信以保证数据的及时更新。控制器与服务器副本间的通信情况如图1-10所示。
图1-10 控制器与服务器副本间的通信图
一致性树的建立过程如下:
(1)建立加权图(Weighted Connection Graph)G(V,E),将每一服务器副本作为一个节点并由这些副本组成加权图的顶点集V,服务器副本间的直接联系作为边,并组成加权图的边集E,网络路径的可靠性作为边的权重。
(2)选择根节点,由控制器选择可靠性最高的服务器副本作为将建立的一致性树的根节点,并由该副本负责与用户的联系。
(3)在指定的根节点后,将树的根节点作为单一源点,利用单源点最短路径Dijkstra 算法,找出根节点到各副本节点的最可靠的路径,并建立一致性树。
连通图与创建的一致性树如图1-11所示。
图1-11 连通图与创建的一致性树