CN100472539C - 基于缓存技术的数据库访问接口方法 - Google Patents

基于缓存技术的数据库访问接口方法 Download PDF

Info

Publication number
CN100472539C
CN100472539C CNB2007101378192A CN200710137819A CN100472539C CN 100472539 C CN100472539 C CN 100472539C CN B2007101378192 A CNB2007101378192 A CN B2007101378192A CN 200710137819 A CN200710137819 A CN 200710137819A CN 100472539 C CN100472539 C CN 100472539C
Authority
CN
China
Prior art keywords
record
mutual exclusion
exclusion lock
reference counter
index
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.)
Expired - Fee Related
Application number
CNB2007101378192A
Other languages
English (en)
Other versions
CN101110088A (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.)
Whale Cloud Technology Co Ltd
Original Assignee
Nanjing Zhongxing Ruanchuang Sci & Tech LLC
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 Nanjing Zhongxing Ruanchuang Sci & Tech LLC filed Critical Nanjing Zhongxing Ruanchuang Sci & Tech LLC
Priority to CNB2007101378192A priority Critical patent/CN100472539C/zh
Publication of CN101110088A publication Critical patent/CN101110088A/zh
Application granted granted Critical
Publication of CN100472539C publication Critical patent/CN100472539C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明针对现有电信设备对数据库***造成巨大压力,占用主机资源多的问题,公开了一种高效简明的缓存机制方法,它包括:A.透明的从数据库中获取数据;B.透明的异步数据回写数据库机制。具有可以大幅降低数据库***压力,提高应用***性能,降低应用***成本等的优点。

Description

基于缓存技术的数据库访问接口方法
技术领域
本发明涉及一种数据库访问技术,尤其是一种涉及电信领域中计费***中余额等频繁访问和修改的数据的访问方法,具体地说是一种基于缓存技术的数据库访问接口方法。
背景技术
目前,随着软件技术的发展,数据库技术的大量使用,实时性要求越来越高,这时对软件***在访问数据库的效率提出了很高的要求,大业务量处理的时候会对数据库***造成很大的压力。在这方面有一些解决方法,如升级设备、使用内存数据库技术。
升级设备,会极大的提高应用***的成本。而使用内存数据库也存在以下缺点:
一、内存数据库作为一个通用型的产品,需要进行SQL语法解析等操作,对于特定的应用程序来说没有什么必要,而且影响处理效率;
二、对于时效性非常强的一些数据,内存数据库仍然需要写***日志、磁盘镜像文件,影响的处理效率,也加重了***的负担。
三、而且内存数据库产品的价格较高,会导致应用软件成本大幅上升。
发明内容
本发明的目的是针对频繁访问数据库易导致占用主机资源多的问题,提供一种高效简明的基于缓存技术的数据库访问接口方法。
本发明的技术方案是:
一种基于缓存技术的数据库访问接口方法,其特征是它包括以下步骤:
第一步,首先在应用程序和数据库访问中间增加缓存,用于存放根据访问建立的索引,该索引中保存有数据的指针或引用;
第二步,访问接口首先根据关键字在缓存中通过建立的索引查找,并进行如下查找操作:
一、如果查找到相应的记录则依次进行查询操作、更新操作、删除操作和带释放标志的操作,其中:
1.查询操作包括:
a)请求该记录的互斥锁,
b)则直接从共享内存中取出记录返回,
c)将引用计数器加1,
d)释放互斥锁;
2.更新操作包括:
a)请求该记录的互斥锁,
b)将修改的数据增量更新到共享内存的数据区中,
c)将引用计数器加1,
d)释放互斥锁;
3.删除操作包括:
a)请求该记录的互斥锁,
b)将引用计数器置为-1,
c)更新索引,
d)释放互斥锁;
4.带释放标志的操作包括:
a)请求该记录的互斥锁,
b)将引用计数器置减1,
c)如果引用计数器已经为0则执行下述第d、e步骤,否则直接执行下述第f步,
d)将引用计数器置为-2,
e)更新索引,
f)释放互斥锁;
二、如果查找不到相应的记录,则按以下步骤进行:
1.访问数据库,取出相应的记录,
2.在缓存中寻找一个引用计数器为零的记录位置,
3.请求该记录的互斥锁,
4.将记录存放在第2步找到的位置,
5.更新索引,
6.释放互斥锁,
7.按照前述的找到相应的记录的步骤的对记录进行请求的操作。
本发明具有以下优点:
通过使用带缓存的数据库访问接口,可以大幅减少不稳定数据访问时给数据库***带来的巨大压力。例如电信设备中用于维持会话的信息。通常,在预付费***中,一次会话(用户拨打一个电话),需要查询/更新用户余额等信息4.5次,通过使用本技术,可以减轻数据库***压力55%。
具体实施方式
下面结合实施例对本发明作进一步的说明。
一种基于缓存技术的数据库访问接口方法,其特征是它包括以下步骤:
第一步,首先在应用程序和数据库访问中间增加缓存,用于存放根据访问建立的索引,该索引中保存有数据的指针或引用;
第二步,访问接口首先根据关键字在缓存中通过建立的索引查找,并进行如下查找操作:
一、如果查找到相应的记录则依次进行查询操作、更新操作、删除操作和带释放标志的操作,其中:
1.查询操作包括:
a)请求该记录的互斥锁,
b)则直接从共享内存中取出记录返回,
c)将引用计数器加1,
d)释放互斥锁;
2.更新操作包括:
a)请求该记录的互斥锁,
b)将修改的数据增量更新到共享内存的数据区中,
c)将引用计数器加1,
d)释放互斥锁;
3.删除操作包括:
a)请求该记录的互斥锁,
b)将引用计数器置为-1,
c)更新索引,
d)释放互斥锁;
4.带释放标志的操作包括:
a)请求该记录的互斥锁,
b)将引用计数器置减1,
c)如果引用计数器已经为0则执行下述第d、e步骤,否则直接执行下述第f步,
d)将引用计数器置为-2,
e)更新索引,
f)释放互斥锁;
二、如果查找不到相应的记录,则按以下步骤进行:
1.访问数据库,取出相应的记录,
2.在缓存中寻找一个引用计数器为零的记录位置,
3.请求该记录的互斥锁,
4.将记录存放在第2步找到的位置,
5.更新索引,
6.释放互斥锁,
7.按照前述的找到相应的记录的步骤的对记录进行请求的操作。
具体描述如下:
一种基于缓存技术的数据库访问接口方法,在应用程序和数据库访问中间增加缓存。应用程序在问访问数据的时候,优先在缓存中寻找,不存在的时候在从数据库中读取,并将数据保存在缓存中以便下次使用。
实现过程的步骤为::
A.缓存表的数据结构
根据具体的数据库表结构建立缓存表结构,并增加以下额外的字段:
1.额外字段1(引用计数器):整型,记录该条记录被应用程序引用的次数
2.额外字段2(rowid):字符串,记录该记录在数据库中的物理位置(如oracle的rowid)
3.额外字段3(信号量):记录互斥锁的ID
B.缓存管理进程
1.根据配制参数,分配固定大小的共享内存,用于存放缓存数据
2.查找缓存中引用计数器小于零的纪录,将其同步到数据库
a)遍历整个缓存数据区,取出引用计数器小于零的纪录
b)请求该记录的互斥锁
c)将该记录更新至数据库
d)将引用计数器置为0
e)释放互斥锁
3.检查缓存中已经使用的空间,当记录数达到临界值的时候自动寻找引用计数器数值较最小的进行强制写入数据库
C.缓存索引
我们根据索引字段的特性,提供两种索引供使用,在应用程序通过带缓存的数据库接口访问数据时,需要指定使用的索引
1.T-Tree索引,对于不能通过唯一关键字查找的记录,通过T-Tree索引加快数据的查找速度
2.Hash索引,对于可以通过唯一关键字查找的记录,使用HASH索引加快数据的查找速度
D.应用程序访问数据库中的表
1.带缓存的数据库访问接口首先根据关键字在缓存中通过索引查找
2.如果查找到,
a)查询操作
1).请求该记录的互斥锁
2).则直接从共享内存中取出记录返回
3).将引用计数器加1
4).释放互斥锁
b)更新操作
1).请求该记录的互斥锁
2).将修改的数据增量更新到共享内存的数据区中
3).将引用计数器加1
4).释放互斥锁
c)删除操作
1).请求该记录的互斥锁
2).将引用计数器置为-1
3).更新索引(清除)
4).释放互斥锁
d)带释放标志的操作(查询/更新/删除)
1).请求该记录的互斥锁
2).将引用计数器置减1
3).如果引用计数器已经为0则执行第4、5步骤,否则直接执行第6步
4).将引用计数器置为-2
5).更新索引(清除)
6).释放互斥锁
3.如果没有查找到,
a)则访问数据库,取出相应的记录
b)在缓存中寻找一个引用计数器为零的记录位置
c)请求该记录的互斥锁
d)将记录存放在第b)步找到的位置
e)更新索引(增加)
f)释放互斥锁
g)按照2步骤的方法对记录进行请求的操作。

Claims (1)

1、一种基于缓存技术的数据库访问接口方法,其特征是它包括以下步骤:
第一步,首先在应用程序和数据库访问中间增加缓存,用于存放根据访问建立的索引,该索引中保存有数据的指针或引用;
第二步,访问接口首先根据关键字在缓存中通过建立的索引查找,并进行如下查找操作:
一、如果查找到相应的记录则依次进行查询操作、更新操作、删除操作和带释放标志的操作,其中:
1.查询操作包括:
a)请求该记录的互斥锁,
b)则直接从共享内存中取出记录返回,
c)将引用计数器加1,
d)释放互斥锁;
2.更新操作包括:
a)请求该记录的互斥锁,
b)将修改的数据增量更新到共享内存的数据区中,
c)将引用计数器加1,
d)释放互斥锁;
3.删除操作包括:
a)请求该记录的互斥锁,
b)将引用计数器置为-1,
c)更新索引,
d)释放互斥锁;
4.带释放标志的操作包括:
a)请求该记录的互斥锁,
b)将引用计数器置减1,
c)如果引用计数器已经为0则执行下述第d、e步骤,否则直接执行下述第f步,
d)将引用计数器置为-2,
e)更新索引,
f)释放互斥锁;
二、如果查找不到相应的记录,则按以下步骤进行:
1.访问数据库,取出相应的记录,
2.在缓存中寻找一个引用计数器为零的记录位置,
3.请求该记录的互斥锁,
4.将记录存放在缓存中寻找到的引用计数器为零的记录位置处,
5.更新索引,
6.释放互斥锁,
7.按照前述的找到相应的记录的步骤的对记录进行请求的操作。
CNB2007101378192A 2007-04-17 2007-07-20 基于缓存技术的数据库访问接口方法 Expired - Fee Related CN100472539C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007101378192A CN100472539C (zh) 2007-04-17 2007-07-20 基于缓存技术的数据库访问接口方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200710020894.0 2007-04-17
CN200710020894 2007-04-17
CNB2007101378192A CN100472539C (zh) 2007-04-17 2007-07-20 基于缓存技术的数据库访问接口方法

Publications (2)

Publication Number Publication Date
CN101110088A CN101110088A (zh) 2008-01-23
CN100472539C true CN100472539C (zh) 2009-03-25

Family

ID=39042156

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007101378192A Expired - Fee Related CN100472539C (zh) 2007-04-17 2007-07-20 基于缓存技术的数据库访问接口方法

Country Status (1)

Country Link
CN (1) CN100472539C (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004728B (zh) * 2009-09-01 2013-03-27 三星电子(中国)研发中心 数据库游标位置保存及复位方法
CN102117309B (zh) * 2010-01-06 2013-04-17 卓望数码技术(深圳)有限公司 一种数据缓存***和数据查询方法
CN102591864B (zh) * 2011-01-06 2015-03-25 上海银晨智能识别科技有限公司 比对***中的数据更新方法及装置
CN103188297B (zh) * 2011-12-29 2016-05-18 北大方正集团有限公司 一种消息存储和获取方法及***
CN102609466B (zh) * 2012-01-13 2014-12-24 从兴技术有限公司 一种共享内存的控制方法及***
CN102708323B (zh) * 2012-05-15 2015-08-12 中科方德软件有限公司 安全操作***中防止文件客体重用的方法
CN102902730B (zh) * 2012-09-10 2016-04-20 新浪网技术(中国)有限公司 基于数据缓存的读数据方法及装置
CN102929943B (zh) * 2012-09-28 2016-03-30 五八有限公司 数据输出方法及装置
CN103870511B (zh) * 2012-12-18 2017-11-03 ***股份有限公司 基于共享内存的信息查询设备及方法
CN104216901B (zh) * 2013-05-31 2017-12-05 北京新媒传信科技有限公司 信息搜索的方法和***
CN103631869B (zh) * 2013-11-05 2018-04-17 北京奇虎科技有限公司 一种缓解服务端数据库访问压力的方法和装置
CN104021192A (zh) * 2014-06-13 2014-09-03 北京联时空网络通信设备有限公司 一种数据库更新方法及装置
CN105045789A (zh) * 2015-02-15 2015-11-11 北京乐动卓越信息技术有限公司 一种游戏服务器数据库缓存方法及***
CN105608197B (zh) * 2015-12-25 2019-09-10 Tcl集团股份有限公司 一种高并发下Memcache数据的获取方法及***
CN106790115B (zh) * 2016-12-27 2019-11-05 北京天融信网络安全技术有限公司 Nginx上游代理服务***及实现方法
CN107451252A (zh) * 2017-07-30 2017-12-08 深圳有麦科技有限公司 基于api的快速查询方法及其***
CN111026771B (zh) * 2019-11-19 2023-11-07 拉货宝网络科技有限责任公司 一种保证缓存与数据库数据一致的方法

Also Published As

Publication number Publication date
CN101110088A (zh) 2008-01-23

Similar Documents

Publication Publication Date Title
CN100472539C (zh) 基于缓存技术的数据库访问接口方法
US11593337B2 (en) Data processing method, device, and a storage medium
US11182356B2 (en) Indexing for evolving large-scale datasets in multi-master hybrid transactional and analytical processing systems
US10853340B2 (en) Static sorted index replication
CN106575297B (zh) 使用盲更新操作的高吞吐量数据修改
CN110799960B (zh) 数据库租户迁移的***和方法
US10067958B2 (en) Supporting transient snapshot with coordinated/uncoordinated commit protocol
US7451290B2 (en) Method and mechanism for on-line data compression and in-place updates
US9047330B2 (en) Index compression in databases
EP3814930B1 (en) System and method for bulk removal of records in a database
WO2013144720A2 (en) Improved performance for large versioned databases
CN101499069A (zh) 内存数据库文件的更新方法及更新装置
CN107391306A (zh) 一种异构数据库备份文件恢复方法
US11599503B2 (en) Path name cache for notifications of file changes
WO2012068110A1 (en) Safely transporting legacy data to an object semantic form data grid
US8380663B2 (en) Data integrity in a database environment through background synchronization
CN104021145A (zh) 一种混合业务并发访问的方法和装置
CN1652112A (zh) 一种嵌入式环境下数据字典的实现方法
CN110309233A (zh) 数据存储的方法、装置、服务器和存储介质
US10990571B1 (en) Online reordering of database table columns
WO2020041950A1 (zh) 一种基于b+树索引的数据更新方法、装置及存储装置
CN101042703A (zh) 使用数据库管理***管理文件***的数据的方法
US20160162525A1 (en) Storing a Key Value to a Deleted Row Based On Key Range Density
CN107704573A (zh) 一种与业务耦合的智能缓存方法
US20200241951A1 (en) Application crash analysis techniques when memory dump and debug symbols are not co-located

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
C56 Change in the name or address of the patentee

Owner name: NANJING ZTESOFT TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: NANJING ZTESOFT TECHNOLOGY LIMITED LIABILITY COMPANY

CP01 Change in the name or title of a patent holder

Address after: 210012 Zhongxing building, No. 68, Bauhinia Road, Yuhuatai District, Nanjing, Jiangsu

Patentee after: NANJING ZTESOFT TECHNOLOGY Co.,Ltd.

Address before: 210012 Zhongxing building, No. 68, Bauhinia Road, Yuhuatai District, Nanjing, Jiangsu

Patentee before: Nanjing ZTEsoft Technology Co.,Ltd.

EE01 Entry into force of recordation of patent licensing contract

Assignee: NANJING ZTESOFT TECHNOLOGY CO.,LTD.

Assignor: NANJING ZTESOFT TECHNOLOGY Co.,Ltd.

Contract record no.: 2010320001129

Denomination of invention: Database access interface method based on caching technology

Granted publication date: 20090325

License type: Exclusive License

Open date: 20080123

Record date: 20100915

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 210012 Zhongxing building, No. 68, Bauhinia Road, Yuhuatai District, Nanjing, Jiangsu

Patentee after: ZTESOFT TECHNOLOGY Co.,Ltd.

Address before: 210012 Zhongxing building, No. 68, Bauhinia Road, Yuhuatai District, Nanjing, Jiangsu

Patentee before: NANJING ZTESOFT TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address

Address after: 210012 room 627, Ning Shuang Road, Yuhuatai District, Nanjing, Jiangsu, 627

Patentee after: WHALE CLOUD TECHNOLOGY Co.,Ltd.

Address before: 210012 Zhongxing building, No. 68, Bauhinia Road, Yuhuatai District, Nanjing, Jiangsu

Patentee before: ZTESOFT TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090325

CF01 Termination of patent right due to non-payment of annual fee