首页> 中国专利> 嵌入式移动数据库的节能存储方法

嵌入式移动数据库的节能存储方法

摘要

本发明公开了一种嵌入式移动数据库的节能存储方法。本发明的方法同时利用嵌入式移动数据库存储特点,在移动终端上重新构建数据存储层,增加了对多种设备支持包括通过网络对主服务器的访问,在数据存取层和数据存储层之间建立一个访问决策层,以决定每个数据请求需要访问的设备。在这种架构基础上,用户通过指定访问策略参数,系统将采用“向所有设备写,向最优设备读”的方法,以达到数据库性能和功耗上的最优。

著录项

  • 公开/公告号CN1760859A

    专利类型发明专利

  • 公开/公告日2006-04-19

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN200510061392.3

  • 发明设计人 陈纯;卜佳俊;陈涛;刘康苗;

    申请日2005-11-03

  • 分类号G06F17/30(20060101);

  • 代理机构33200 杭州求是专利事务所有限公司;

  • 代理人林怀禹

  • 地址 310027 浙江省杭州市西湖区浙大路38号

  • 入库时间 2023-12-17 17:08:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-12-21

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20071219 终止日期:20151103 申请日:20051103

    专利权的终止

  • 2007-12-19

    授权

    授权

  • 2006-06-07

    实质审查的生效

    实质审查的生效

  • 2006-04-19

    公开

    公开

说明书

技术领域

本发明涉及一种嵌入式移动数据库的节能存储方法。

背景技术

嵌入式移动数据库技术是近年来日益活跃和备受关注的新兴技术,它除了具有关系数据库的主要功能外,还针对嵌入式系统和移动计算的特点,在数据库的体系结构、功能设置、应用开发等方面另具特色。嵌入式移动数据库技术的出现,使得人们可以通过手中的便携式客户终端(如:PDA,掌上电脑,手机等)以无线方式访问中心数据库系统,从而可以自由地不受环境约束地得到自己所需要的数据。嵌入式移动数据库介于嵌入式设备中的操作系统和应用程序之间,为需要数据库功能的应用提供支撑和驱动。

由于嵌入式系统在时间和空间上资源的紧凑,嵌入式数据库有其自身的特点,主要表现在以下几方面:

1.占用系统资源少。具体来说就是占用尽量少的ROM、RAM空间和cpu资源,可以说这是嵌入式数据库最突出的一个特点,这也是由嵌入式系统资源受限制所决定的。

2.可管理性,健壮性和安全性。在嵌入式设备中,数据库的管理对用户来说是透明的,这就要求嵌入式数据库能够自动完成启动初始化、日志管理、数据压缩、备份、数据恢复等功能;而且嵌入式设备经常有不可预料的硬复位,这就需要数据库有高度的健壮性。

3.移植性。嵌入式系统的平台种类繁多,因此嵌入式数据库应有一定的可移植性,以适用于不同的软硬件平台。

移动数据库的计算环境是传统分布式数据库系统的扩展,它可以看作客户端与固定服务器结点动态连接的分布式系统。因此移动计算环境中的数据库管理系统是一种动态分布式数据库管理系统。其模式结构从整体上分为两大部分:一是集中式数据库系统模式结构,代表了各局部场地上的局部数据库系统的基本结构;一是分布式数据库系统的模式级别,其中包括:全局外模式,全局概念模式,分片模式,分布模式。

嵌入式移动数据库结合了嵌入式和移动两者,与一般数据库的区别在于:嵌入式移动数据库在逻辑上不是独立的,它必须以无线的方式与固定的中心数据库服务器进行联系,从中心数据库下载所需要的数据,并把本地所作的修改上传给中心数据库,所以本质上是依附于中心数据库服务器的,其中的数据只是中心数据库的一个子集。嵌入式移动数据库系统兼有嵌入式和移动两者的优势,同时在应用中又要克服两者的弱点。移动设备的移动性和断接性必然要求系统具有较高的自治性,但移动性、数据存储和处理能力的局限性,又要求移动设备上的数据库与中心数据库有密切的联系。

发明内容

本发明的目的在于提供一种嵌入式移动数据库的节能存储方法。

本发明解决其技术问题采用的技术方案如下:

1)在终端上的嵌入式移动数据库中添加访问决策层

终端上的本地数据库系统可分为以下几个层次:

SQL语言翻译层/接口层,数据存取层,数据存储层;在数据存取层和数据存储层之间添加访问决策层,其主要功能为:保存了每个设备的注册信息和与每个设备对应的写队列,接受上层的对数据片段的访问,并进行访问设备的决策;该层是整个嵌入式移动数据库达到节能的最关键的一层;

2)注册多个存储设备,并将注册信息保存在访问决策层

嵌入式移动数据库支持多种存储设备,通过注册来增加支持的存储设备;一个设备的注册需要提供设备的功耗w,在各种状态下读写数据的延迟1,同时指定此设备所能提供用于数据库存储的空间大小S;每个设备的注册信息保存于访问决策层,作为数据访问时的决策依据;每个设备注册后数据库系统即在内存中为此设备维护一个写队列;

3)修改全局数据字典的分布模式

分布式数据库系统在内存中维护了一个全局数据字典,存放了全局概念模式,分片模式,分布模式的定义,以及各模式之间映象的定义,存放有关用户存取权限的定义和数据完整性约束条件的定义;

根据分片模式得到的片段,在物理上分布在各种存储设备和中心数据库上,修改后的分布模式根据选定的数据策略,定义各片段物理上的存放位置,即把一个片段与多个设备建立起一种一对多的映象;

4)数据存储层的读写

a)读数据:

第一步,上层的应用程序读请求;用户分布式查询请求通过SQL语言翻译层/接口层,数据存取层,使用户的查询请求落实到合适的数据片段上,并将这些数据片段的交给了访问决策层;

第二步,选择存储设备;通过数据字典中的分布模式,将拥有请求数据片段的设备加入候选设备;访问决策层根据注册设备提供的信息和用户指定的访问策略参数在候选设备中选择最佳设备进行访问;

决定一个存储设备的访问优先度需要考虑两个因素:设备的功耗,设备的访问延迟;用于计算设备访问的优先值的公式为:

T=(w/W)*k+(l/L)*(1-k)

其中:

T为设备访问的优先度,值越小优先度越高,

w是注册设备的功率,

l设备的访问延迟,

W所有注册设备的平均功耗,

L所有注册设备的平均延迟,

k为用户指定参数,用于权衡数据访问功耗和响应速度两者的优先考虑程度,其值介于0到1之间;

第三步,从数据存储层读取数据;在对选择设备进行读操作时,先查看写队列中是否有针对此块的写操作,如果存在,将写队列全部写入此设备,再进行读操作;

若请求的数据片段只存在于中心数据库中,则通过网络通信层,从中心数据库中读取相应的数据片段,并将相应数据片段加入每个设备的写队列;

对于某些延迟过大的设备,为提高响应速度,在读取数据时采取了另一策略:访问决策层先将系统切换成通过网络访问中心数据库的方式,在其延迟时间中,进行数据片段的读取,当到达设备注册所指定的延迟时间后,再将访问对象指向本地设备;

对于同时分布在不同设备的数据片段,在用户允许的条件下,可以进行并行操作,进一步提高数据读取速度;

b)写数据:

第一步,上层的应用程序程序写请求;用户的数据更新请求通过SQL语言翻译层/接口层,数据存取层,转化为对分布式数据库片段的更新操作,并将这些更新操作交给了访问决策层;

第二步,将操作加入写队列;访问决策层收到写操作,即修改、删除、增加,将这些操作加入每个设备的写队列,并修改数据字典中分布模式;

第三步,访问数据存储层,将队列中的操作写入对应设备或中心数据库;当出现以下几种情况时将启动写进程将写队列里的操作写入存储介质或通过通信管理层,写入中心数据库,操作完成后,将清空或删除队列:

(1)队列达到设定的长度,写入后清空队列;

(2)达到设定的写回时间,写入后清空队列;

(3)当前读操作对应的块存在于写队列中,写入后清空队列;

(4)将某一设备从数据库中注销时,写入后删除队列;

写队列写入存储介质的操作采用FIFO顺序进行,以保持数据的一致性。

本发明与传统的嵌入式移动数据库相比,具有的有益的效果是:

本发明是一种应用于移动环境中的嵌入式数据库,在修改数据库的数据存储层使其可支持多种设备,并通过“从一个最优设备读,向所有设备写的策略”,为之后的节能型数据访问提供了条件,同时又兼顾了访问的效率和数据的完整性。

(1)功耗低,效率高。写操作虽然采用向多个设备写的方法,这种在功耗上比普通单独向一个设备写的操作要高,但为将来的一些操作提供了节能的条件,对于一个主要是读访问请求的终端设备,这种作法总体上比普通方法能量消耗低很多。同时这种异步、集中的写操作减少了设备在各运作模式转换所耗费的时间和能量,提高了写操作的响应速度。在读操作方面,通过访问决策层,将会优先使用功耗和效率最佳的设备。另外访问一些延迟过大设备时,通过网络来访问中心数据库来弥补延迟时间用户的空等待。

(2)可配置性。用户可根据需要指定k值,来调节响应速度和功耗的考虑程度。从总体上看T值越小,设备访问的优先度越高,即优先访问功耗低,响应快的设备,在保证效率的同时,达到了节能的目的。

附图说明

附图是应用节能存储方法的嵌入式移动数据库体系结构图;

具体实施方式

如附图所示,应用了节能存储方法的嵌入式移动数据库的数据访问流程具体为:

首先用户或应用程序通过SQL语言翻译层/接口层,对SQL语句进行语法分析,授权、完整性检查及查询优化或是调用接口函数,生成对逻辑数据操作的指令。

上层的集合操作通过数据存取层,利用修改后的全局数据字典,将操作转换为对分布式数据库访问的基本单位,即数据逻辑片段的操作。并将这些数据片段,在物理上定位到各存储设备或中心数据库。

访问决策层将根据上层数据片段的物理分配情况,进行访问设备的决策。该层是整个嵌入式移动数据库达到节能的最关键的一层。

最终访问本地数据存储层或中心数据库,对位于多种存储设备及主服务器上的数据片段和系统缓冲区,执行文件的逻辑打开、关闭、读页、写页、缓冲区读和写、宣布淘汰等操作。

嵌入式移动数据库的节能存储方法主要是通过读写两方面的来实现的,而在建立数据库时,需要注册每个支持的存储设备并修改全局数据字典:

1.存储设备的注册

终端的本地数据库系统支持一个或多个存储设备。在本地数据库建立时至少需要一个存储设备,之后可以通过注册新设备来增加支持的存储设备。一个设备的注册需要提供设备的功耗w,在各种状态下读写数据的延迟1,同时指定此设备所能提供用于数据库存储的空间大小S。设备注册后,其注册信息将被保存在访问决策层,作为数据访问时的决策依据;每个设备注册后数据库系统即在内存中为此设备维护一个写队列;

数据的分配以操作系统的块大小为单位,当一个存储设备上的数据将要达到一定大小时(指定空间大小的90%),本地数据库系统将启动一个进程,采用时钟算法(或其它替换策略)对空间进行重分配。

如,注册设备SD卡,CF卡和微硬盘(MD),注册信息如下:

SD卡:1=A毫秒,w=H瓦,S=100M

CF卡:1=B毫秒,w=I瓦,S=100M

MD(微硬盘):(运转状态)1=C毫秒,(休眠状态时)1=D ms,w=J瓦,S=500M则:L=(A+B+C+D)/4毫秒,W=(H+I+J)/3瓦

设备注册后,将SD卡编号物理设备为01,将CF卡编号为物理设备02,将微硬盘编号为物理设备03;

2.修改全局数据字典的分布模式

分布式数据库系统维护了一个全局数据字典,主要存放了全局概念模式,分片模式,分布模式的定义,以及各模式之间映象的定义,存放有关用户存取权限的定义和数据完整性约束条件的定义。

数据片段是全局关系的逻辑部分,在传统的分布式数据库中,一个片段在物理上可以分配到网络的不同结点上,而分布模式定义了片段存放的结点。由于在本设计中,片段在物理上分布在各种存储设备和中心数据库上,因此将分布模式修改为根据选定的数据策略,定义各片段存放的物理设备(包括数据库服务器),即把一个片段与多个设备建立起一种一对多的映象。这是一种冗余分配。

3.数据存储层的读写

a)读数据:

第一步,上层的应用程序读请求。用户分布式查询请求通过SQL语言翻译层/接口层,数据存取层,使用户的查询请求落实到合适的数据片段上,并将这些数据片段的交给了访问决策层;

第二步,选择存储设备。

若用户执行:SELECT*FROM tablel WHERE attr=1;

则通过本地数据库系统查询分解和数据库本地化,返回数据分布以及候选设备列表,如表1;

表1

  数据片段编号  物理位置编号  是否位于写队列  1  02,03  否  2  01  是  3  03(休眠状态)  否  4  -  否  5  -  否  6  03(休眠状态)  否

根据公式T=(w/W)*k+(l/L)*(1-k)

当用户指定k值后,即可计算得每个设备访问优先度TSD卡、TCF卡和T微硬盘(md)

第三步,从数据存储层读取数据。

对于数据片段1,同时位于CF卡和微硬盘上,若TCF卡<T微硬盘(md),将优先选择CF卡,若用户配置允许并行读操作,将同时从两个设备进行读取操作;

对于数据片段2,只能选择SD卡,但在进行读操作时,由于此片段位于写队列,需要将写队列的操作写入SD卡,之后再进行读操作,以保证数据的一致性;

对于数据片段3和6,只能选择微硬盘卡,但由于微硬盘在休眠状态时,响应时间过慢,在无线网络连接的条件下,数据库系统将在延迟时间里从中心数据库中获取一部分数据,在微硬盘开始读取数据之后,切换为访问微硬盘,以提高响应速度。

对于数据片段4,5,不位于任何一个本地设备之上,因此只能将访问请求移交给通信管理层,由其通过网络访问中心数据库,本地获得请求数据后,将访问数据加入每个设备的写队列,并更新数据字典的数据分片模式,为将来再次访问作准备。

b)写数据:

第一步,上层的应用程序程序写请求。用户或应用程序的数据更新请求通过SQL语言翻译层/接口层,数据存取层,转化为对分布式数据库片段的更新操作,并将这些更新操作交给了访问决策层。

一组用户数据更新请求,转化为如表2所示的更新操作。

表2

  操作编号  操作片段  操作类型  物理位置  1  1  修改  01  2  2  删除  02,03  3  3  增加

第二步,将操作加入写队列。

对于数据片段1,只需将修改操作加入01设备和中心数据库的对应的写队列;

对于数据片段2,需要将删除操作加入02,03设备和中心数据库对应的写队列;

对于数据片段3,需要将增加操作加入所有设备和中心数据库对应的写队列。

更新全局数据字典,以维持更新的一致性,并标记未写入的片段。

第三步,访问数据存储层,将队列中的操作写入对应设备或中心数据库。当出现以下几种情况时将启动写进程,将写队列里的操作写入存储介质或通过通信管理层,写入中心数据库,操作完成后,将清空或删除队列:

(1)队列达到设定的长度,写入后清空队列,可根据数据库规模和嵌入式设备的条件来确定;

(2)达到设定的写回时间,写入后清空队列。根据嵌入式设备特性指定不同写回时间,一般功耗较大的,响应时间较长的,写回时间设置较大;

(3)当前读操作对应的块存在于写队列中,写入后清空队列;

(4)将某一设备从数据库中注销时,写入后删除队列;

写队列写入存储介质的操作采用FIF0顺序进行,以保持数据的一致性。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号