CN102024051B - 分布式内存数据库数据更新方法 - Google Patents

分布式内存数据库数据更新方法 Download PDF

Info

Publication number
CN102024051B
CN102024051B CN 201010594262 CN201010594262A CN102024051B CN 102024051 B CN102024051 B CN 102024051B CN 201010594262 CN201010594262 CN 201010594262 CN 201010594262 A CN201010594262 A CN 201010594262A CN 102024051 B CN102024051 B CN 102024051B
Authority
CN
China
Prior art keywords
memory block
memory
blocks
data
index bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 201010594262
Other languages
English (en)
Other versions
CN102024051A (zh
Inventor
姚福源
于洪方
井卫军
蒋建平
梁建民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Century Broadband Internet Data Center Co., Ltd.
Original Assignee
BEIJING CLOUDEX SOFTWARE SERVICE Co Ltd
BEIJING BANYANO DATA CENTER SOLUTIONS Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING CLOUDEX SOFTWARE SERVICE Co Ltd, BEIJING BANYANO DATA CENTER SOLUTIONS Ltd filed Critical BEIJING CLOUDEX SOFTWARE SERVICE Co Ltd
Priority to CN 201010594262 priority Critical patent/CN102024051B/zh
Publication of CN102024051A publication Critical patent/CN102024051A/zh
Application granted granted Critical
Publication of CN102024051B publication Critical patent/CN102024051B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种分布式内存数据库数据更新的方法,该分布式内存数据库将要更新的数据内容首先写入未使用的内存块中,待写入完毕再通过修改内存块索引位完成内存块的切换。这样,内存块在被写入更新时,无需停止当前的访问使用,大大提高了数据库节点内存的读写效率,进而提高该数据库系统的更新速度。

Description

分布式内存数据库数据更新方法
技术领域
本发明涉及一种分布式内存数据库的数据更新方法,该数据更新方法通过对各个数据库节点的数据更新流程进行管理,使得数据库节点在数据更新时不会与数据使用相冲突,实现数据更新与使用的热切换。属于计算机技术领域。
背景技术
内存数据库是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。
分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都有DBMS的一份完整拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的大型数据库。
将这二者相结合的分布式内存数据库系统是当今数据库技术发展的前沿。这种数据库结构具有数据处理速度快、系统可靠性高、数据传输及管理成本低、数据库可扩展性强等特点。
但是,这种分布式内存数据库系统在对数据库节点上的数据进行更新时存在问题。数据库节点无法同时对内存数据库进行使用及更新操作,必须等待另一进程完成后,才能进行使用或更新操作。这很大程度上限制了该数据库系统的使用效率。
发明内容
本发明的发明目的在于解决现有技术中存在的问题,提供一种全新的分布式内存数据库的数据更新方法,使得数据库节点在数据更新时不会与数据使用相冲突,实现数据更新与使用的热切换。
本发明的发明目的是通过下述技术方案予以实现的:
分布式内存数据库,由服务器及若干内存数据库节点构成;所述各个内存数据库节点分别与服务器相连,其特征在于:
所述内存数据库节点的内存块由一块索引内存块和两个数据内存块构成;
所述索引内存块由使用内存块索引位、在使用内存块大小位和未使用内存块大小位构成;所述使用内存块索引位用以表示当前在被使用的数据内存块;所述在使用和未使用内存块大小位分别表示该内存数据库节点中在使用和未使用内存块的大小。
分布式内存数据库数据更新的控制方法,包括如下具体步骤:
1)获取目标数据库节点的内存块;
2)读取索引内存块,获取内存块索引位及两个数据内存块的大小信息;
3)判断所述内存块索引位是否为0?如果否,则执行步骤4);如果是,则执行步骤7);
4)将更新数据写入第0块数据内存块;
5)在索引内存块里把在使用内存块大小记录到未使用内存块大小里;
6)将内存块索引位修改为0,记录第0块数据内存块的大小,并结束此次数据更新;
7)将更新数据写入第1块数据内存块;
8)在索引内存块里把在使用内存块大小记录到未使用内存块大小里;
9)将内存块索引位修改为1,记录第1块数据内存块的大小,并结束此次数据更新。
分布式内存数据库内存文件预先加载方法,包括如下具体步骤:
1)数据库节点预先将内存文件加载到内存中,并提供查询服务;
2)用户提出查询请求;
3)数据库节点响应用户的查询请求;
4)读取索引内存块,获取内存块索引位及两个数据内存块的大小信息;
5)判断所述内存块索引位数值;如果该内存块索引位为0,则获取第0块数据内存块指针;如果该内存块索引位为1,则获取第1块数据内存块指针;
6)遍历该内存块索引位所指向的数据内存块,搜索查询结果;
7)将查询结果反馈给用户。
分布式内存数据库内存文件实时加载方法,包括如下具体步骤:
1)用户提出查询请求;
2)数据库节点响应用户的查询请求;
3)数据库节点判断用户所查询的内存文件是否存在?如果否,则返回空结果;如果是,则根据该内存文件构成内存文件路径;
4)判断该内存文件是否存在于数据内存块中?如果否,则将该内存文件加载到数据内存块中,再读取索引内存块,并获取内存块索引位及两个数据内存块的大小信息;如果是,则直接读取索引内存块,并获取内存块索引位及两个数据内存块的大小信息;
5)判断所述内存块索引位数值;如果该内存块索引位为0,则获取第0块数据内存块指针;如果该内存块索引位为1,则获取第1块数据内存块指针;
6)在内存块索引位所指向的数据内存块,查找该内存文件内容,查询结果;
7)将查询结果反馈给用户。
本发明的有益效果是:该分布式内存数据库的数据更新方法通过对数据库节点端内存块的划分及更新方法的设计,使得该内存块可以在不影响内存块使用的情况下实现数据更新,并达到热替换的目的。
附图说明
图1为索引内存块结构示意图;
图2为分布式内存数据库数据更新控制方法流程图;
图3为分布式内存数据库内存文件预先加载模式流程图;
图4为分布式内存数据库内存文件实时加载模式流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步描述。
分布式内存数据库通常由服务器及若干内存数据库节点构成。所述各个内存数据库节点分别与服务器相连。
本发明中,所述内存数据库节点的内存块由一块索引内存块和两个数据内存块构成。两个数据内存块分别为第0块和第1块数据内存块。
如图1所示,所述索引内存块由使用内存块索引位、在使用内存块大小位和未使用内存块大小位构成。所述使用内存块索引位用以表示当前在被使用的数据内存块(0用以表示当前被使用的为第0块数据内存块,1用以表示当前被使用的为第1块数据内存块)。所述在使用和未使用内存块大小位分别表示该内存数据库节点中在使用和未使用内存块的大小。
所述两个数据内存块是对等的两个数据内存块,用以存储服务器发送来的数据库数据。两个数据内存块是可以用来互相更新替换的。
通过上述分布式内存数据库结构,当要更新数据库节点上已经存在内存块数据时,判断当前使用的是哪一块,先把未使用的内存块的数据更新掉,然后在索引内存块切换到已经更新好的内存块上,这样就可以在不影响内存块使用的情况下实现数据更新,并达到热替换的目的。
图2为该分布式内存数据库数据更新的控制方法流程图。如图所示,该数据更新的控制方法,包括如下具体步骤:
1)获取目标数据库节点的内存块;
2)读取索引内存块,获取内存块索引位及两个数据内存块的大小信息;
3)判断所述内存块索引位是否为0?如果否,则执行步骤4);如果是,则执行步骤7);
4)将更新数据写入第0块数据内存块;
5)在索引内存块里把在使用内存块大小记录到未使用内存块大小里;
6)将内存块索引位修改为0,记录第0块数据内存块的大小,并结束此次数据更新;
7)将更新数据写入第1块数据内存块;
8)在索引内存块里把在使用内存块大小记录到未使用内存块大小里;
9)将内存块索引位修改为1,记录第1块数据内存块的大小,并结束此次数据更新。
通过上述数据更新方法,该分布式内存数据库将要更新的数据内容首先写入未使用的内存块中,待写入完毕再通过修改内存块索引位完成内存块的切换。这样,内存块在被写入更新时,无需停止当前的访问使用,大大提高了数据库节点内存的读写效率,进而提高该数据库系统的更新速度。
另外,本发明针对不同类型内存文件的使用特点,设计了预先加载模式及实时加载模式两种内存文件的加载方法,具体如下:
预先加载模式:
图3为分布式内存数据库内存文件预先加载模式流程图。如图所示,该预先加载模式具体包括如下步骤:
1)数据库节点预先将内存文件加载到内存中,并提供查询服务;
2)用户提出查询请求;
3)数据库节点响应用户的查询请求;
4)读取索引内存块,获取内存块索引位及两个数据内存块的大小信息;
5)判断所述内存块索引位数值;如果该内存块索引位为0,则获取第0块数据内存块指针;如果该内存块索引位为1,则获取第1块数据内存块指针;
6)遍历该内存块索引位所指向的数据内存块,搜索查询结果;
7)将查询结果反馈给用户。
该预先加载模式,在提供查询服务之前,先通过程序或者手动加载内存文件到内存里,当查询请求来到时,就可以马上读取。这种模式的好处是每次请求都可以直接读取内存,响应时间短。这种模式必须要把内存映射路径写在代码或者配置文件里,不随请求的内容改变。这种模式适用于固定少量内存文件,适用于必须每次要访问的内存块例如IP库。
实时加载模式:
图4为分布式内存数据库内存文件实时加载模式流程图。如图所示,该实时加载模式具体包括如下步骤:
1)用户提出查询请求;
2)数据库节点响应用户的查询请求;
3)数据库节点判断用户所查询的内存文件是否存在?如果否,则返回空结果;如果是,则根据该内存文件构成内存文件路径;
4)判断该内存文件是否存在于数据内存块中?如果否,则将该内存文件加载到数据内存块中,再读取索引内存块,并获取内存块索引位及两个数据内存块的大小信息;如果是,则直接读取索引内存块,并获取内存块索引位及两个数据内存块的大小信息;
5)判断所述内存块索引位数值;如果该内存块索引位为0,则获取第0块数据内存块指针;如果该内存块索引位为1,则获取第1块数据内存块指针;
6)在内存块索引位所指向的数据内存块,查找该内存文件内容,查询结果;
7)将查询结果反馈给用户。
该实时加载模式,在提供查询服务之前,不加载内存文件到内存里。当第一次查询请求来到时,程序根据查询的内容才去加载内存文件到内存,再去读取,当第二次查询请求来时,内存里已经有该内存文件,直接去读取。这种模式的好处是可以根据请求内容去加载相应的内存文件,不需要一开始加载很多不经常使用的内存文件,节省内存。这种模式不需要把内存映射路径写在代码或者配置文件里,根据随请求的内容动态加载。这种适用于固定大量内存文件,只要内存够大可以支持不限数量的内存文件。
综上所述,本发明所设计的分布式内存数据库的数据更新方法通过对数据库节点端内存块的划分及更新方法的设计,使得该内存块可以在不影响内存块使用的情况下实现数据更新,并达到热替换的目的。本领域一般技术人员在此设计思想之下所做任何不具有创造性的改造,均应视为在本发明的保护范围之内。

Claims (4)

1.分布式内存数据库系统,它由服务器及若干内存数据库节点构成;所述各个内存数据库节点分别与服务器相连,其特征在于:
所述内存数据库节点的内存块由一块索引内存块和两个数据内存块构成;
所述索引内存块由使用内存块索引位、在使用内存块大小位和未使用内存块大小位构成;所述使用内存块索引位用以表示当前在被使用的数据内存块;所述在使用和未使用内存块大小位分别表示该内存数据库节点中在使用和未使用内存块的大小。
2.一种基于权利要求1的分布式内存数据库系统数据更新的控制方法,其中,用0表示当前被使用的为第0块数据内存块,用1表示当前被使用的为第1块数据内存块,其特征在于:它包括如下具体步骤:
1)获取目标数据库节点的内存块;
2)读取索引内存块,获取内存块索引位及两个数据内存块的大小信息;
3)判断所述内存块索引位是否为0?如果否,则执行步骤4);如果是,则执行步骤7);
4)将更新数据写入第0块数据内存块;
5)在索引内存块里把在使用内存块大小记录到未使用内存块大小里;
6)将内存块索引位修改为0,记录第0块数据内存块的大小,并结束此次数据更新;
7)将更新数据写入第1块数据内存块;
8)在索引内存块里把在使用内存块大小记录到未使用内存块大小里;
9)将内存块索引位修改为1,记录第1块数据内存块的大小,并结束此次数据更新。
3.一种基于权利要求1的分布式内存数据库系统内存文件预先加载方法,其中,用0表示当前被使用的为第0块数据内存块,用1表示当前被使用的为第1块数据内存块,其特征在于:它包括如下具体步骤:
1)数据库节点预先将内存文件加载到内存中,并提供查询服务;
2)用户提出查询请求;
3)数据库节点响应用户的查询请求;
4)读取索引内存块,获取内存块索引位及两个数据内存块的大小信息;
5)判断所述内存块索引位数值;如果该内存块索引位为0,则获取第0块数据内存块指针;如果该内存块索引位为1,则获取第1块数据内存块指针;
6)遍历该内存块索引位所指向的数据内存块,搜索查询结果;
7)将查询结果反馈给用户。
4.一种基于权利要求1的分布式内存数据库系统内存文件实时加载方法,其中,用0表示当前被使用的为第0块数据内存块,用1表示当前被使用的为第1块数据内存块,其特征在于:它包括如下具体步骤:
1)用户提出查询请求;
2)数据库节点响应用户的查询请求;
3)数据库节点判断用户所查询的内存文件是否存在?如果否,则返回空结果;如果是,则根据该内存文件构成内存文件路径;
4)判断该内存文件是否存在于数据内存块中?如果否,则将该内存文件加载到数据内存块中,再读取索引内存块,并获取内存块索引位及两个数据内存块的大小信息;如果是,则直接读取索引内存块,并获取内存块索引位及两个数据内存块的大小信息;
5)判断所述内存块索引位数值;如果该内存块索引位为0,则获取第0块数据内存块指针;如果该内存块索引位为1,则获取第1块数据内存块指针;
6)在内存块索引位所指向的数据内存块,查找该内存文件内容,查询结果;
7)将查询结果反馈给用户。
CN 201010594262 2010-12-17 2010-12-17 分布式内存数据库数据更新方法 Active CN102024051B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010594262 CN102024051B (zh) 2010-12-17 2010-12-17 分布式内存数据库数据更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010594262 CN102024051B (zh) 2010-12-17 2010-12-17 分布式内存数据库数据更新方法

Publications (2)

Publication Number Publication Date
CN102024051A CN102024051A (zh) 2011-04-20
CN102024051B true CN102024051B (zh) 2012-12-05

Family

ID=43865348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010594262 Active CN102024051B (zh) 2010-12-17 2010-12-17 分布式内存数据库数据更新方法

Country Status (1)

Country Link
CN (1) CN102024051B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279885A (zh) * 2011-08-16 2011-12-14 中兴通讯股份有限公司 内存数据库对数据的操作方法及装置
CN103714059B (zh) * 2012-09-28 2019-01-29 腾讯科技(深圳)有限公司 一种更新数据的方法及装置
CN105786939A (zh) * 2014-12-26 2016-07-20 中兴通讯股份有限公司 优化内存数据库的方法及装置
CN106294204B (zh) * 2016-08-18 2019-04-23 武汉斗鱼网络科技有限公司 一种在Windows系统的内存中搜索指定数据的方法及系统
CN106777253A (zh) * 2016-12-27 2017-05-31 努比亚技术有限公司 一种词库的更新方法和装置
CN113704274B (zh) * 2020-05-20 2024-03-19 中国移动通信集团福建有限公司 一种数据的读取方法及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1924853A (zh) * 2006-09-14 2007-03-07 南京中兴软创软件有限公司 一种加速数据库查询速度的方法
EP1840766A2 (en) * 2006-03-28 2007-10-03 Sun Microsystems, Inc. Systems and methods for a distributed in-memory database and distributed cache
CN101118509A (zh) * 2007-09-12 2008-02-06 华为技术有限公司 内存数据库远程容灾的方法、装置和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1840766A2 (en) * 2006-03-28 2007-10-03 Sun Microsystems, Inc. Systems and methods for a distributed in-memory database and distributed cache
CN1924853A (zh) * 2006-09-14 2007-03-07 南京中兴软创软件有限公司 一种加速数据库查询速度的方法
CN101118509A (zh) * 2007-09-12 2008-02-06 华为技术有限公司 内存数据库远程容灾的方法、装置和系统

Also Published As

Publication number Publication date
CN102024051A (zh) 2011-04-20

Similar Documents

Publication Publication Date Title
CN102741843B (zh) 从数据库中读取数据的方法及装置
CN102024051B (zh) 分布式内存数据库数据更新方法
CN103229173B (zh) 元数据管理方法及系统
CN102299904B (zh) 一种实现业务数据备份的系统及方法
CN100585595C (zh) 使用数据库管理系统管理文件系统的数据的方法
CN103186622B (zh) 一种全文检索系统中索引信息的更新方法以及装置
US8176233B1 (en) Using non-volatile memory resources to enable a virtual buffer pool for a database application
CN100426259C (zh) 一种存储器文件数据虚拟存取方法
CN105117417A (zh) 一种读优化的内存数据库Trie树索引方法
CN103080903A (zh) 调度器、多核处理器系统以及调度方法
CN103455526A (zh) 一种etl数据处理方法、装置及系统
CN103544153A (zh) 一种基于数据库的数据更新方法和系统
CN103106286A (zh) 元数据的管理方法和装置
CN102156717B (zh) 一种将实体对象映射到数据库中的方法及装置
CN101986649B (zh) 应用于电信行业计费系统的共享数据中心
CN102314506A (zh) 基于动态索引的分布式缓冲区管理方法
CN103513956B (zh) 一种处理器处理数据的方法以及装置
CN102779088B (zh) 事务处理设备、事务处理方法及事务处理程序
CN103559319A (zh) 分布式集群文件系统的缓存同步方法和设备
CN111400273B (zh) 数据库扩容方法、装置、电子设备及机器可读存储介质
CN103841168B (zh) 数据副本更新方法及元数据服务器
CN104077078A (zh) 读存储区、更新存储区的方法及装置
US20130304707A1 (en) Data Archiving Approach Leveraging Database Layer Functionality
CN113204520A (zh) 一种基于分布式文件系统的遥感数据快速并发读写方法
CN102203737A (zh) 多线程访问多副本的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Free format text: FORMER OWNER: BEIJING CLOUDEX SOFTWARE SERVICE CO., LTD.

Effective date: 20121112

Owner name: BEIJING 21VIANET BROAD BAND DATA CENTER CO., LTD.

Free format text: FORMER OWNER: BEIJING 21VIANET ENGINEERING TECHNOLOGY SERVICE CO., LTD.

Effective date: 20121112

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20121112

Address after: 100015 No. 3, building 5, building 1, Jiuxianqiao East Road, Chaoyang District, Beijing

Patentee after: Beijing Century Broadband Internet Data Center Co., Ltd.

Address before: 100015 No. 3, building 5, building 1, Jiuxianqiao East Road, Chaoyang District, Beijing

Patentee before: Beijing BANYANO Data Center Solutions Ltd.

Patentee before: Beijing CloudEx Software Service Co., Ltd.