一种全内存数据库的数据存取方法

文档序号:7653467阅读:237来源:国知局
专利名称:一种全内存数据库的数据存取方法
技术领域
本发明属于一种数据存取方法,特别涉及一种全内存数据库的数据存取方法。
背景技术
在数据库系统中,磁盘的I/O速度仍然是限制系统处理速度的关键。
在普通数据库中,无法避免地要进行磁盘的I/O操作,只有当应用访问的数据在一段时间内集中在某些记录上时,普通数据库利用数据库自身的缓存机制可以提升系统的部分性能。
而现有的内存数据库通过内存访问方式提高了系统的处理速度,但由于内存具有易失性,当应用程序退出时,内存中的数据无法保存,因此仍然需要与磁盘进行同步备份。
另外在普通数据库与内存数据库中,均无法实现自动清理历史数据的功能,历史数据只能通过调用数据库的删除操作进行删除,或者采用表空间循环使用的方式覆盖老的历史记录。这样,随着时间的增长,历史数据越来越多,而数据量的增大,对数据库的性能影响很大,导致数据库的性能进一步下降。
目前UNIX、Linux、和Windows系统提供了共享内存,共享内存是操作系统中所有程序都可以共同访问的内存。在操作系统不停机的情况下,共享内存可以一直保持,从而解决了现有内存数据库的数据持久性问题。

发明内容
本发明所要解决的技术问题是提供一种高效、持久的全内存数据库及其数据存取方法。
本发明一种全内存数据库的数据存取方法包括下面几个步骤
步骤一、配置全内存数据库信息。
其中全内存数据库信息包括全内存数据库的规模、主键信息、索引、消息有效期以及扫描记录的周期,由业务流量、记录有效期和组网确定,组网采用负荷分担方式时,可以将数据分散存放。。
主键信息存放在全内存数据库所占内存以外的共享内存中或者同步备份到磁盘中。
其它全内存数据库信息保存在非易失性存储器中。
步骤二、全内存数据库系统初始化。
根据全内存数据库的配置信息在系统自带的共享内存中申请相应的共享内存;加载全内存数据信息,并分配全内存数据库的主键;重建索引;进行备份索引和扫描过期消息定时;建立和上层应用的连接。
其中根据用户需要可以定时将全内存数据库中的数据定时备份到磁盘上,扫描过期消息定时可由定时器实现。
步骤三、根据上层应用业务的操作进行相应数据库操作,并向上层应用返回相应处理结果。
本发明尤其适用于在对数据存取效率要求很高,数据生命周期在一定范围以内的系统,例如短信(SMS)、多媒体消息业务(MMS,MultimediaMessaging Service)等。本发明将数据存放在共享内存中,平时运行时不需要将数据同步到物理磁盘,从而避免了磁盘I/O速度对系统运行速度的影响,即提高了系统的处理速度,增大了系统处理能力,减少了系统的成本以及系统的维护工作量。另外本发明对记录信息设置有有效期,定时清除过期的记录并根据需要通知应用进行相应的处理,从而避免了由数据库规模的不断增长所造成的处理性能下降的问题。


图1为本实施例的方法流程图;图2为运用于MMSC系统的实施例的工作流程图。
具体实施例方式
下面结合附图对本发明作进一步详细说明。
本发明的核心思想是利用系统本身提供的共享内存建立全内存数据库,在此数据库内数据循环使用,同时信息具有有效期,对于过期的记录,全内存数据库清除该记录并根据需要通知应用进行相应的处理。
图1所示为本发明具体实施时流程图,包括以下步骤步骤一、配置全内存数据库。
根据业务流量、记录有效期和组网等,计算全内存数据库的规模,从而获得主键信息以及索引;根据业务需求配置记录有效期,以及全内存数据库扫描记录的周期等配置。
其中组网采用负荷分担方式时,数据可以分散存放,即在每个处理机上都部署全内存数据库,根据负荷分担的原则和组网来确定每个处理机上全内存数据库的规模。当负荷分担为平均分担时,全内存数据库的规模也平均设定。
数据库主键信息存放在全内存数据库所占内存以外的共享内存中,或者定时同步到磁盘备份。
上述配置过程即为全内存数据库的初始配置,所有配置信息保存在非易失性存储器中。
步骤二、全内存数据库系统初始化。
启动系统时,读取配置信息,根据配置信息,申请相应的共享内存,然后判断是否有导出的全内存数据信息,如果有则进行加载,并对这些原有的记录分配全内存数据库的主键,主键为记录的数组下标的函数。然后进行索引重建,本实施例采用HASH索引。之后,系统还要设置2个定时器,实现定时备份索引和扫描过期消息。最后,全内存数据库系统建立和上层应用的连接,等待接收上层业务进行数据库操作。
步骤三、根据上层应用发送的操作进行相应数据库操作,并向上层应用返回相应处理结果。
数据库操作包括数据的增(Insert)、删(Delete)、改(Update)、查(Query)等。
其中接收到Insert操作时,要对数据库的主键进行分配和管理,并维护相应的索引,这些索引由全内存数据库系统实现。。
Delete操作需要进行主键释放和索引删除。
Update和Query操作不涉及主键和索引的修改。进行Update操作时,全内存数据库根据主键或者索引,查找到记录,然后将其中的字段修改为应用所提供的字段内容。
进行Query操作时,根据主键或者索引,查找到记录,然后将记录返回。
上述全内存数据库的内容在操作系统不重启的情况下持久存在,也可以根据需要定时同步到磁盘,以保证数据的持久性。
采用了本发明的多媒体消息中心(MMSC)的两个手机终端间发送多媒体消息的过程如图2所示,该过程中,发送端不要求消息永久存储或延时发送,接收端在收到通知消息后立即获取。
步骤a、根据多媒体消息中心(MMSC)的容量大小,以及MMS业务的业务模型,计算并设定全内存数据库的规模、消息的有效期以及扫描记录的周期。
例如MMSC的容量为100条/秒,实际上业务量高的时候为早上7点~晚上11点,共16个小时;其余时间的业务量很小,可以忽略;根据业务需求,记录有效期为48小时,用户在48小时(2天)内不来获取(此部分的用户数据需要在MMSC的全内存数据库中保存48小时)的比例占62.5%计算,则全内存数据库的规模为=16(小时)*62.5%*2(天)*3600(每小时的秒数)*100条/秒=7200000条记录。根据过期消息处理和删除的及时性需要,来配置扫描记录过期的周期,根据目前的多媒体消息业务,过期消息要及时出话单,这样,配置扫描过期的周期为1秒。
当采用负荷分担的组网,在每个处理机上都部署全内存数据库,数据分散存放,则多个节点上的容量可以叠加。例如6个节点可以达到600条/秒。
当实际的业务模型有所变化时,则相应的计算公式也有变化。例如延迟获取的用户的比例大小、系统的忙时时间等变化。
步骤b、在MMSC系统内部,根据配置信息在共享内存中设置一个全内存数据库模块。
步骤c、在全内存数据库中设置相关的数据增(Insert)、删(Delete)、改(Update)、查(Query)等接口,这些接口可以由用户自定义设置,不同机器间也可以采用TCP/IP协议进行通讯。这些接口都包含请求/响应机制,响应消息是可选的。
步骤d、在MMSC的全内存数据库中,定时将共享内存的信息数据写到磁盘上。可以采用操作系统的定时任务,或者由全内存数据库自己实现。
全内存数据库通过导入导出模块进行与磁盘信息数据的读写。在导出过程中,该模块连接全内存数据库的共享内存,然后读取其中的内容,写入磁盘。在导入过程中,该模块从磁盘读取数据文件,将信息写入全内存数据库的共享内存中,供全内存数据库访问。
步骤e、建立和业务程序的连接,接收业务程序数据操作请求和返回相应的响应消息。
其中多媒体消息的控制信息的存储、查询、更新、删除等操作由业务程序来驱动,全内存数据库模块被动的接收消息,进行相应的处理。
步骤e进一步地包括步骤e1发送方UA编辑并提交Mm1接口的多媒体消息到多媒体消息中心;步骤e2多媒体消息中心接收到消息后返回Mm1接口提交消息响应;步骤e3多媒体消息中心的Relay/Server模块向全内存数据库模块插入多媒体消息的控制信息。
步骤e4全内存数据库给多媒体消息中心的Relay/Server模块返回插入多媒体消息的控制信息的结果。
步骤e5多媒体消息中心发送通告消息请求到接收方UA;步骤e6接收方UA来获取多媒体消息;步骤e7多媒体消息中心的Relay/Server模块向全内存数据库查询多媒体消息的控制信息。
步骤e8全内存数据库给多媒体消息中心的Relay/Server模块返回多媒体消息的控制信息。
步骤e9多媒体消息中心发送获取响应消息给用户终端。
步骤e10接收方UA接收到多媒体消息后返回通告消息响应给多媒体消息中心;步骤e11多媒体消息中心的Relay/Server模块向全内存数据库查询多媒体消息的控制信息。
步骤e12全内存数据库给多媒体消息中心的Relay/Server模块返回多媒体消息的控制信息。然后多媒体消息中心的Relay/Server模块根据此多媒体消息的控制信息,产生计费话单的相应的日志。
步骤e13多媒体消息中心的Relay/Server模块向全内存数据库发送删除媒体消息的控制信息的请求。
步骤e14全内存数据库给多媒体消息中心的Relay/Server模块返回删除多媒体消息的控制信息的结果。
步骤e15多媒体消息中心发送递送报告消息给发送方UA。
权利要求
1.一种全内存数据库的数据存取方法,包括以下步骤步骤一、配置全内存数据库信息;步骤二、全内存数据库系统初始化;步骤三、根据上层应用业务的操作进行相应数据库操作,并向上层应用返回相应处理结果。
2.如权利要求1所述的方法,其特征在于,步骤一中所述全内存数据库信息,包括全内存数据库的规模、主键信息、索引、消息有效期以及扫描记录的周期,所述全内存数据库信息由业务流量、记录有效期和组网确定。
3.如权利要求2所述的方法,其特征在于,所述组网是采用负荷分担方式,将数据分散存放。
4.如权利要求2所述的方法,其特征在于,所述主键信息存放在所述全内存数据库所占内存以外的共享内存中或者同步备份到磁盘中。
5.如权利要求1所述的方法,其特征在于,步骤二进一步包括根据步骤一的配置信息在系统自带的共享内存中申请相应的共享内存;加载全内存数据信息,并分配全内存数据库的主键;重建索引;进行备份索引和扫描过期消息定酎;建立和上层应用的连接。
6.一种应用于多媒体消息中心系统的全内存数据库的数据存取方法,包括以下步骤步骤一、根据多媒体消息中心的容量大小,及其业务模型,设定全内存数据库的规模、消息的有效期以及扫描记录的周期。步骤二、根据步骤一中的配置信息初始化全内存数据库,设置数据库操作接口。步骤三、建立和业务程序的连接,接收业务程序数据操作请求,进行数据库操作和返回相应的响应消息。
7.如权利要求6所述的方法,其特征在于,所述消息的有效期以及扫描记录的周期由定时器实现。
8.如权利要求6所述的方法,其特征在于,所述步骤二中所述接口由用户自定义设置,不同机器间采用TCP/IP协议进行通讯;所述接口具有请求/响应机制。
9.如权利要求6所述的方法,其特征在于,所述全内存数据库采用操作系统的定时任务实现将共享内存的信息数据定时备份到磁盘上。
10.如权利要求6所述的方法,其特征在于,所述全内存数据库采用导入导出模块定时将享内存的信息数据备份到磁盘上,该模块连接全内存数据库的共享内存到磁盘,读取共享内存中的内容,写入磁盘。
全文摘要
一种全内存数据库的数据存取方法,属于一种数据存取方法。该方法首先配置全内存数据库信息,然后初始化全内存数据库系统,最后根据上层应用业务的操作进行相应数据库操作,并向上层应用返回相应处理结果。本发明尤其适用于在对数据存取效率要求很高,数据生命周期在一定范围以内的系统,提高了系统的处理速度,增大了系统处理能力,减少了系统的成本以及系统的维护工作量。
文档编号H04L12/54GK101055591SQ20071010610
公开日2007年10月17日 申请日期2007年5月25日 优先权日2007年5月25日
发明者周翔, 屠要峰, 王景祥, 李世亮, 高洪 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1