CN1808389A - 帐务后台内存数据库中共享内存的自治锁方法 - Google Patents

帐务后台内存数据库中共享内存的自治锁方法 Download PDF

Info

Publication number
CN1808389A
CN1808389A CN 200610038373 CN200610038373A CN1808389A CN 1808389 A CN1808389 A CN 1808389A CN 200610038373 CN200610038373 CN 200610038373 CN 200610038373 A CN200610038373 A CN 200610038373A CN 1808389 A CN1808389 A CN 1808389A
Authority
CN
China
Prior art keywords
lock
lcb
affairs
record
page
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.)
Pending
Application number
CN 200610038373
Other languages
English (en)
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.)
LINKAGE SYSTEM INTEGRATION CO Ltd
Original Assignee
LINKAGE SYSTEM INTEGRATION CO 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 LINKAGE SYSTEM INTEGRATION CO Ltd filed Critical LINKAGE SYSTEM INTEGRATION CO Ltd
Priority to CN 200610038373 priority Critical patent/CN1808389A/zh
Publication of CN1808389A publication Critical patent/CN1808389A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

帐务后台内存数据库中共享内存的自治锁方法,由事务通过对共享内存的操作来进行的操作来进行锁的申请和释放;自治锁(AL)中的锁控制块(LCB)是数据项相关的,即每个数据项对应一个LCB,一个LCB记录该锁当前的类型,及两个事务表,一个记录当前持有该锁的事务,另一个记录等待该锁的事务;自治锁包括加锁、恢复和锁空间故障的原子性;加锁时将锁名用hash处理后,转换为成相应的锁控制块LCB;释放锁的策略是:找到相应的LCB后,从持有者表中删除相应记录;本发明提出了内存数据库中采用自治锁机制的方法,实现锁操作的对象是业务内存块。保证内存数据库中对事务操作的完整性,并在大数据处理时保持较高的效率。

Description

帐务后台内存数据库中共享内存的自治锁方法
                          技术领域
本发明涉及内存数据库中管理方法,尤其是帐务后台内存数据库采用的动态多粒度锁(DMGL)的管理机制。
                          背景技术
目前,在内存数据库中通常采用一种叫做动态多粒度锁(DMGL)的管理机制。在这种机制中,事务只是从逻辑上对数据项加锁,管理机制对实际的锁动态的调整其粒度。调整之前,动态多粒度锁(DMGL)计算每个表的冲突度并根据它来决定使用什么粒度的锁。多粒度锁(DMGL)采用两种粒度,即表锁和元组锁。当冲突低时使用表锁,冲突严重时使用元组锁。这样的处理就可以降低动态锁开销的目的,提高事务处理的效率。
但是,在电信业务支撑系统的帐务后台程序中使用动态多粒度锁机制却存在很大的问题。由于在内存数据库中通常根据具体的电信业务逻辑来划分为各个内存块,锁的机制要能够根据各内存块的业务关系来决定采用什么粒度的所,也就是说在内存数据库中锁操作的对象是内存块,而不是内存数据库中的表和记录。
                          发明内容
1.发明目的
本发明目的是:针对电信业务支撑系统的帐务后台处理的特点,提出一种内存数据库中采用自治锁机制的方法,实现锁操作的对象是业务内存块,而不是表和记录。本发明的目的还在于保证内存数据库中对事务操作的完整性,并在大数据处理时保持较高的效率。
2.技术方案
本发明目的是这样实现的:自治锁(autonomous locking,AL),就是舍弃了锁管理器,而由事务通过对共享内存的操作来进行的操作来进行锁的申请和释放。由于不使用锁管理进程,AL可以避免锁管理进程可能带来的效率低下的问题;并且所有的请求和释放直接在共享内存中操作,所以AL不需要进程内的通信。可恢复的用户级自治锁在性能上不同于动态多粒度锁,在冲突较低的情况下,自治锁的效率要高很多。但许多自治锁不支持将进程获得锁和登记持有信息两个操作组合在一起形成原子操作,所以当出现进程在某些含有锁信息的关键部分死掉或处理过于缓慢的情况时,不能正确地确定持有者。而可恢复的用户级自治锁的执行是可恢复的,这是由于它能正确判断锁的持有者信息,并将它用于被保护数据项的重新装入和后来的锁释放操作,以避免重新启动系统。根据帐务后台的业务需求和具体的硬件环境,采用自治锁是能兼顾事务完整性和数据处理效率的较好的锁机制。
自治锁(AL)中的锁控制块(LCB)是数据项相关的,即每个数据项对应一个LCB,一个LCB记录该锁当前的类型,及两个事务表,一个记录当前持有该锁的事务,另一个记录等待该锁的事务。表面上看,AL机制和多处理器开发者用于实现信号量的做法没有多大区别。而实际上它们之间有两个重要的区别:
第一,与信号量不同的是,数据库锁必须被管理,以使其能够保证事务失败的原子性;
第二,除了共享锁和排他锁,数据库锁还需支持其它锁模式。
3.效果简介
本发明解决了电信业务支撑系统的帐务后台程序中使用的动态多粒度锁机制的问题,从而使帐务后台内存数据库技术能在电信运营系统中得到广泛的应用。
以某电信帐务后台内存数据库应用系统为例:
其中用户数:500万,每天话单44991450条,处理业务逻辑包括二次批价、合帐、信用控制;在相同的测试环境,满负荷压力条件下:
锁机制                                      平均每小时处理的话单(条)
动态多粒度锁机制的内存帐务后台              1590367
自治锁机制的内存帐务后台                    3360987
                          附图说明
图1本发明应用系统示意图
                        具体实施方法
应用系统模型如图1所示。
如图所示,自治锁是基于有一定的共享内存的基础上来实现的,并由一系列基本操作组成。AL的基本操作包括加锁、恢复和锁空间故障的原子性。
(1)加锁。考虑锁申请的情况,一个请求包括锁名和锁的类型。将锁名用hash处理后,转换为成相应的锁控制块(LCB)。所有关于LCB的更新操作都通过一个更新控制部件执行。如果请求与LCB当前类型相容,且没有与之冲突的等待进程,则在所有者表中添加一条关于该进程和请求类型的记录,加锁成功。否则,记录将被加入等待进程表,并且给请求者返回末批准信息。释放锁的策略是类似的。找到相应的LCB后,从持有者表中删除相应记录,若等待者中有相容的加锁请求,则批准该请求。这种策略和传统锁机制很相象。但在传统锁机制中,对于每个锁都有相应的锁管理器来进行相关的操作,而不是使用更新控制部件。AL中的锁操作代码可以独立执行,接入特定的LCB的一致性通过更新控制部分来保证,这种机制比通过进程间通信的效率要高得多。
(2)恢复。同一页上的不同记录被不同节点上事务加锁更新时,需要有相应的重做和撤销信息,以便出现节点故障时能保证事务不必退出。重做记录是临时的,撤销记录则需要存储。例如在一个页面移动到另一个节点前,相应事务对其所处理的数据库对象的重做和撤销信息将被记录到日志中。为了保证事务的重做记录在页移动前能被记录下来,事务可以持有一个短期页锁,直到重做信息被记录。在节点故障前,为了保证撤销信息在向其他节点移动前被记录,有两个可选方法:
①扩充缓冲区一致性协议,强行规定在脏页移动前记录日志。
②在每个数据库对象上附加一个域,记录其从前状态。
在第一个方法中,因为只有被更新的页需要这种扩充,所以可在每页中设置一个信号,来表明哪个脏页需要“页移动处理”,而“页移动处理”保证在页被移动前撤销日志已被写入磁盘。而第二个方法避免了“I/O”所带来的延迟,在执行撤销操作时,只需用附加域中的从前记录来覆盖当前数据库对象。
(3)保证锁空间故障的原子性。由于一致协议的影响,LCB只能在一个节点中存在。两个处于不同节点的事务都获得了同一个兼容锁,LCB将在最后获得该锁的节点上。因此,一个节点崩溃可能使一个事务丢失一些但不是所有的LCB。
AL为了保证事务故障的原子性,采取了以下措施:在事务获得锁之前,记录事务标识符(TID);另外,在锁被请求前,会临时记录其锁名和申请事务的TID。这些日志用于在节点故障时保证锁空间的一致性。
如果一个LLCB所在的节点产生故障,相应操作如下:
·事务在LCB的同一个节点上执行,则应该中断事务,不存在恢复的问题。
·若事务在另一节点上执行,则不需中断,所有LCB入口必须重新载入。利用上面所述的日志,重新构建丢失的LCB。
·如果一个事务在多节点上运行时,其中一个节点发生故障,则整个事务需要中断。
由于不使用锁管理进程,AL可以避免锁管理进程可能带来的效率低下的问题;并且所有的请求和释放直接在共享内存中操作,所以AL不需要进程内的通信。可恢复的用户级自治锁在性能上不同于动态多粒度锁,在冲突较低的情况下,自治锁的效率要高很多。但许多自治锁不支持将进程获得锁和登记持有信息两个操作组合在一起形成原子操作,所以当出现进程在某些更新控制部分死掉或处理过于缓慢的情况时,不能正确地确定持有者。

Claims (6)

1、帐务后台内存数据库中共享内存的自治锁方法,由事务通过对共享内存的操作来进行的操作来进行锁的申请和释放;其特征是自治锁(AL)中的锁控制块(LCB)是数据项相关的,即每个数据项对应一个LCB,一个LCB记录该锁当前的类型,及两个事务表,一个记录当前持有该锁的事务,另一个记录等待该锁的事务;自治锁包括加锁、恢复和锁空间故障的原子性;
(1)加锁:加锁申请的请求,一个请求包括锁名和锁的类型;将锁名用hash处理后,转换为成相应的锁控制块LCB;如果请求与LCB当前类型相容,且没有与之冲突的等待进程,则在所有者表中添加一条关于该进程和请求类型的记录,加锁成功;否则,记录将被加入等待进程表,并且给请求者返回末批准信息;
释放锁的策略是:找到相应的LCB后,从持有者表中删除相应记录,若等待者中有相容的加锁请求,则批准该请求;
(2)恢复:同一页上的不同记录被不同节点上事务加锁更新时,需要有相应的重做和撤销信息,以便出现节点故障时能保证事务不必退出;重做记录是临时的,撤销记录则需要存储;在一个页面移动到另一个节点前,相应事务对其所处理的数据库对象的重做和撤销信息将被记录到日志中;事务持有一个短期页锁,直到重做信息被记录。
2、由权利要求1所述的帐务后台内存数据库中共享内存的自治锁方法,其特征是在节点故障前,为了保证撤销信息在向其他节点移动前被记录,采用下述方法:(1)扩充缓冲区一致性协议,强行规定在脏页移动前记录日志或(2)在每个数据库对象上附加一个域,记录其从前状态。
3、由权利要求1所述的帐务后台内存数据库中共享内存的自治锁方法,其特征是在扩充缓冲区一致性协议,强行规定在脏页移动前记录日志时,在每页中设置一个信号,来表明哪个脏页需要“页移动处理”,而“页移动处理”保证在页被移动前撤销日志已被写入磁盘。
4、由权利要求1所述的帐务后台内存数据库中共享内存的自治锁方法,其特征是在每个数据库对象上附加一个域,记录其从前状态在执行撤销操作时,用附加域中的从前记录来覆盖当前数据库对象。
5、由权利要求1所述的帐务后台内存数据库中共享内存的自治锁方法,其特征是在事务获得锁之前,记录事务标识符;在锁被请求前,临时记录其锁名和申请事务的TID。
6、由权利要求1所述的帐务后台内存数据库中共享内存的自治锁方法,其特征是如果一个LCB所在的节点产生故障,相应操作如下:
·事务在LCB的同一个节点上执行,则应该中断事务;
·若事务在另一节点上执行,则不需中断,所有LCB入口必须重新载入;利用上面所述的日志,重新构建丢失的LCB。
CN 200610038373 2006-02-20 2006-02-20 帐务后台内存数据库中共享内存的自治锁方法 Pending CN1808389A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200610038373 CN1808389A (zh) 2006-02-20 2006-02-20 帐务后台内存数据库中共享内存的自治锁方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200610038373 CN1808389A (zh) 2006-02-20 2006-02-20 帐务后台内存数据库中共享内存的自治锁方法

Publications (1)

Publication Number Publication Date
CN1808389A true CN1808389A (zh) 2006-07-26

Family

ID=36840299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200610038373 Pending CN1808389A (zh) 2006-02-20 2006-02-20 帐务后台内存数据库中共享内存的自治锁方法

Country Status (1)

Country Link
CN (1) CN1808389A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100432940C (zh) * 2006-10-19 2008-11-12 华为技术有限公司 计算机集群系统中共享资源锁分配方法与计算机及集群系统
WO2010145071A1 (zh) * 2009-06-16 2010-12-23 成都市华为赛门铁克科技有限公司 一种实现锁机制的方法及装置
CN101937498A (zh) * 2010-09-13 2011-01-05 武汉达梦数据库有限公司 用于共享外包数据库的数据完整性验证方法
WO2011009274A1 (zh) * 2009-07-23 2011-01-27 中兴通讯股份有限公司 并发控制方法及装置
CN102033957A (zh) * 2010-12-27 2011-04-27 畅捷通软件有限公司 盘点锁盘方法和装置
CN102156718A (zh) * 2011-03-25 2011-08-17 北京世纪互联工程技术服务有限公司 图形数据库联机事务中取消节点数据关系的方法及系统
CN102609466A (zh) * 2012-01-13 2012-07-25 广州从兴电子开发有限公司 一种共享内存的控制方法及系统
CN102681892A (zh) * 2012-05-15 2012-09-19 西安热工研究院有限公司 Key-Value型单写多读锁池软件模块及其运行方法
WO2016045605A3 (en) * 2014-09-26 2016-05-06 Huawei Technologies Co., Ltd. Concurrency control in shared storage architecture supporting on-page implicit locks
CN106293946A (zh) * 2016-08-16 2017-01-04 东软集团股份有限公司 资源获取的方法及服务器
CN109376165A (zh) * 2018-11-14 2019-02-22 深圳市金证科技股份有限公司 内存数据库锁的实现方法和装置及计算机可读存储介质
WO2020238485A1 (zh) * 2019-05-30 2020-12-03 中兴通讯股份有限公司 一种数据库处理方法、装置及计算机可读存储介质

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100432940C (zh) * 2006-10-19 2008-11-12 华为技术有限公司 计算机集群系统中共享资源锁分配方法与计算机及集群系统
WO2010145071A1 (zh) * 2009-06-16 2010-12-23 成都市华为赛门铁克科技有限公司 一种实现锁机制的方法及装置
WO2011009274A1 (zh) * 2009-07-23 2011-01-27 中兴通讯股份有限公司 并发控制方法及装置
CN101937498A (zh) * 2010-09-13 2011-01-05 武汉达梦数据库有限公司 用于共享外包数据库的数据完整性验证方法
CN102033957A (zh) * 2010-12-27 2011-04-27 畅捷通软件有限公司 盘点锁盘方法和装置
CN102156718A (zh) * 2011-03-25 2011-08-17 北京世纪互联工程技术服务有限公司 图形数据库联机事务中取消节点数据关系的方法及系统
CN102156718B (zh) * 2011-03-25 2015-11-11 北京世纪互联宽带数据中心有限公司 图形数据库联机事务中取消节点数据关系的方法及系统
CN102609466A (zh) * 2012-01-13 2012-07-25 广州从兴电子开发有限公司 一种共享内存的控制方法及系统
CN102681892B (zh) * 2012-05-15 2014-08-20 西安热工研究院有限公司 Key-Value型单写多读锁池软件模块及其运行方法
CN102681892A (zh) * 2012-05-15 2012-09-19 西安热工研究院有限公司 Key-Value型单写多读锁池软件模块及其运行方法
WO2016045605A3 (en) * 2014-09-26 2016-05-06 Huawei Technologies Co., Ltd. Concurrency control in shared storage architecture supporting on-page implicit locks
CN106293946A (zh) * 2016-08-16 2017-01-04 东软集团股份有限公司 资源获取的方法及服务器
CN106293946B (zh) * 2016-08-16 2019-11-08 东软集团股份有限公司 资源获取的方法及服务器
CN109376165A (zh) * 2018-11-14 2019-02-22 深圳市金证科技股份有限公司 内存数据库锁的实现方法和装置及计算机可读存储介质
WO2020238485A1 (zh) * 2019-05-30 2020-12-03 中兴通讯股份有限公司 一种数据库处理方法、装置及计算机可读存储介质
EP3979097A4 (en) * 2019-05-30 2023-06-14 ZTE Corporation DATABASE PROCESSING METHOD AND DEVICE AND COMPUTER READABLE RECORDING MEDIA
US11928132B2 (en) 2019-05-30 2024-03-12 Xi'an Zhongxing New Software Co., Ltd. Database processing method and apparatus, and computer-readable storage medium

Similar Documents

Publication Publication Date Title
CN1808389A (zh) 帐务后台内存数据库中共享内存的自治锁方法
AU2017239539B2 (en) In place snapshots
US10031813B2 (en) Log record management
US7240057B2 (en) System and method for implementing journaling in a multi-node environment
US10331655B2 (en) System-wide checkpoint avoidance for distributed database systems
US10229011B2 (en) Log-structured distributed storage using a single log sequence number space
KR101914019B1 (ko) 분산 데이터베이스 시스템들을 위한 고속 장애 복구
US8150812B2 (en) Methods, apparatus and computer programs for data replication
US7308463B2 (en) Providing requested file mapping information for a file on a storage device
US9424140B1 (en) Providing data volume recovery access in a distributed data store to multiple recovery agents
US20070288526A1 (en) Method and apparatus for processing a database replica
KR100450400B1 (ko) 안전 기억 장치가 없는 환경을 위한 이중화 구조의 주 메모리 상주 데이터베이스 관리시스템 및 그 데이터 일치성 제어방법
US20070112895A1 (en) Block-based incremental backup
JP2006505069A (ja) ハードウェアベースのファイルシステムのための装置および方法
US20140040191A1 (en) Inventorying and copying file system folders and files
US8938594B2 (en) Method and system for metadata-based resilvering
KR100630213B1 (ko) 데이터 저장시스템에서 데이터 버퍼 제어 블록을 이용한로그 우선 출력 프로토콜 수행 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication
EE01 Entry into force of recordation of patent licensing contract

Assignee: LIAN Technology (Nanjing) Co., Ltd.

Assignor: Linkage System Integration Co., Ltd.

Contract fulfillment period: 2009.6.23 to 2027.8.30 contract change

Contract record no.: 2009320001548

Denomination of invention: Autonomous locking method based on shared memory for account background memory database

License type: exclusive license

Record date: 2009.8.17

LIC Patent licence contract for exploitation submitted for record

Free format text: EXCLUSIVE LICENSE; TIME LIMIT OF IMPLEMENTING CONTACT: 2009.6.23 TO 2027.8.30; CHANGE OF CONTRACT

Name of requester: LIANCHUANG SCIENCE ( NANJING ) CO., LTD.

Effective date: 20090817