分区
考试要求: 掌握     
知识路径:  > 数据库技术  > 数据库技术基础  > 数据库模型  > 典型数据库:RDB(关系数据库)、OODB(面向对象数据库)、ORDB(对象关系数据库)、XML数据库、NoSQL(非关系数据库)  > 非关系型数据库NoSQL  > 相关理论基础


 
       现在,数据量的增加已经使得数据不可以仅在单一的计算机系统中存储(分布式的应用),尤其是为了保证数据的可靠性,有时需要复制备份。同时,为了一些规模性的操作(比如负载平衡)或者考虑到一些动态因素的影响(存储结点的改变),在设计中就要考虑“分区”的概念。
       分区的一些主要方法如下:
       (1)内存缓存:缓存技术可以看成一种分区。内存中的数据库系统将使用频率最高的数据复制到缓存中,加快了数据给用户传递的速度,同时也大大减轻了数据库服务器的负担。在分布式缓存中,缓存由很多带有分配好一定内存的进程组成,它们能够放置到不同的机器上并且可以通过配置进行应用。它的协议可以在不同的编程语言中实现,同时在用户的应用中提供了简单的键值存储API。它通过将键值哈希散列到缓存中来存储对象。
       (2)集群:数据库服务器集群在为用户提供服务时的透明性(用户感觉数据像是在同一个地方),是另外一个对数据进行分区的方法。然而,这种方法虽然能在某种程度上扩展系统数据持久层,可是集群本身的特性却仅仅应用在了数据库管理系统的顶层,而并未在分布式最初的设计中得到应用。
       (3)读写分离:指定一台或多台主服务器,所有或部分的写操作被送至此,同时再设一定数量的副本服务器用以满足读请求。如果主服务器向至少一个用户异步复制数据,这是没有写延迟的,可如果主服务器在向最后一个用户写数据还没完成的时候就崩溃了,那么写操作将是无效的;如果主服务器向用户同步复制数据,这是有延迟的,这种更新不会丢失,但读请求却不能送达副本服务器。如果对一致性要求很高的话,无法避免进一步的写延迟。在这种情况下,如果主服务器崩溃了,那么有最新的数据的副本服务器将会成为新的主服务器。这种模型(主/从模型)在读写率很高的时候工作得很好。
       (4)范围分割技术/分片(sharding):指对数据按照如下方式进行分区操作,即对数据的请求和更新在同一个结点上,并且对于分布在不同服务器上的数据存储和下载的量大致相同。从可靠性和负载平衡的观点看,数据的碎片也是需要被复制的,并且允许它们被写入主服务器的副本中和所有需要维护数据分区的副本服务器中。而为了做到这一点,需要在分区和存储结点之间做一个映射。这个映射是动态还是静态取决于用户的应用、主服务器的“映射服务/组件”以及网络中用户应用于网络结点之间的基础结构。在分区场景中,关键在于如何将数据库中的对象映射到服务器上。通常的方法是哈希散列法。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有