CN100428232C - 一种快速安全的实时数据库访问方法 - Google Patents
一种快速安全的实时数据库访问方法 Download PDFInfo
- Publication number
- CN100428232C CN100428232C CNB2006100026717A CN200610002671A CN100428232C CN 100428232 C CN100428232 C CN 100428232C CN B2006100026717 A CNB2006100026717 A CN B2006100026717A CN 200610002671 A CN200610002671 A CN 200610002671A CN 100428232 C CN100428232 C CN 100428232C
- Authority
- CN
- China
- Prior art keywords
- real
- time data
- data base
- record
- application program
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000007689 inspection Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 230000007717 exclusion Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Abstract
本发明公开了一种快速安全的实时数据库访问方法,本发明采用共享标志区与信号量相结合的方法快速安全地访问实时数据库,为每一个需要访问实时数据库的应用程序中设置一条记录,该记录包含两项:实时数据库允许访问标志和新实时数据库标志;对实时数据库中的每一条(或每一组)记录都设置一个写操作信号灯。当需要写实时数据库的时候,写应用程序只有获得要写的那条记录的写操作信号灯,就可以对该记录进行写操作,可以有效避免各个应用程序之间发生冲突,提高操作效率。采用本发明所述方法可以克服现有技术的缺陷,在确保安全的情况下快速的访问实时数据库,提高实时数据库的访问效率。
Description
技术领域
本发明涉及自动化控制领域,尤其涉及基于内存的实时数据库访问方法。
背景技术
在自动化控制领域,通常使用基于内存的实时数据库。服务器中的所有任务共享这一个内存实时数据库,以达到快速访问的目的。目前对于基于内存实时数据库的共享访问通常采用以下几个方法来保证安全访问。
第一种,由一个应用程序独占实时数据库,所有对实时数据库的访问的请求都需要发送给该应用程序,由该应用程序完成实际的访问操作,然后再把访问的结果返回请求的应用程序。这种方法保证了对实时数据库的安全访问,但是该应用程序也成了系统的瓶颈,造成实时数据库访问效率低下。
第二种,为实时数据库分别设置一个写实时数据库信号灯和若干个读实时数据库信号灯(为每一个需要读实时数据库的应用程序都设置一个读实时数据库信号灯)。当需要写实时数据库的时候,写应用程序只有在获得写实时数据库信号灯的时候才开始写,防止两个写应用程序同时写实时数据库。当需要读实时数据库的时候,读应用程序则只有在获得本应用程序的读实时数据库信号灯的时候才开始读。当需要在线更新实时数据库的时候,更新实时数据库的应用程序则先获得写实时数据库信号灯,然后获得所有应用程序的读实时数据库信号灯,停止对实时数据库的一切读写的操作之后,然后再对实时数据库进行更新,更新完毕则向所有的应用程序发送实时数据库更新的消息。
这种方法保证了对实时数据库的安全访问,并且所有读实时数据库的应用程序相互独立,不会互相影响。但是由于每次读写实时数据库都需要进行信号灯操作,进行系统调用,效率比较低。同时,由于对分别写两条不同记录的写应用操作进行了互斥,降低了写操作的效率。
发明内容
本发明要解决的技术问题是提供一种实时数据库的访问方法,可以克服现有技术的缺陷,快速、安全地访问实时数据库。
为了解决上述技术问题,本发明提供了一种快速安全的实时数据库访问方法,其特征在于,设置一共享标志区,对每一个需要访问实时数据库的应用程序设置一条记录,该记录包括实时数据库允许访问标志和新实时数据库标志,该方法包括更新数据库的过程,该过程分为以下步骤:
(a)将所有应用程序的实时数据库允许访问标志设置为禁止访问;
(b)在所有应用程序停止对数据库的读写操作后,更新实时数据库;
(c)然后置所有应用程序的新实时数据库标志,并将所有应用程序的实时数据库允许访问标志置为允许访问。
进一步地,上述方法可具有以下特点:该方法还包括连接实时数据库的过程,该过程分为以下步骤:
(i)查询应用程序的实时数据库允许访问标志,如果允许,则执行步骤(j),否则延时后继续执行步骤(i);
(j)检查所述应用程序的新实时数据库标志是否被设置,如果是继续执行下一步,否则连接成功,结束;
(k)重新映像实时数据库,清除新实时数据库标志,结束。
进一步地,上述方法可具有以下特点:对实时数据库中的每一条或每一组记录都设置一写操作信号灯,该方法包括应用程序写数据库的过程,该过程分为以下步骤:
(o)该应用程序连接实时数据库,如果此时允许操作,执行下一步;
(p)该应用程序请求获取被写记录的写操作信号灯,如果成功,执行步骤(q),否则延时后继续执行步骤(p);
(q)对该记录进行写操作,写毕释放该记录的写操作信号灯,结束。
进一步地,上述方法可具有以下特点:该方法还包括读数据库的过程,该过程分为以下步骤:
(u)连接实时数据库,如果此时允许操作,执行下一步;
(v)读取实时数据库。
采用本发明所述方法,可以在确保安全的情况下快速的访问实时数据库,提高实时数据库的访问效率。
附图说明
图1是本发明实施例写操作流程图;
图2是本发明实施例读操作流程图;
图3是本发明实施例连接实时数据库操作流程图;
图4是本发明实施例更新操作流程图。
具体实施方式
通过对实时数据库访问行为的分析,发现对实时数据库主要有三种操作:读、写和更新。其中:
读操作指读取实时数据库中的数据,不会对实时数据库有任何影响,但是在实时数据库更新时需要停止对实时数据库的一切读操作;
写操作指对实时数据库中数据值的修改,不影响对实时数据库的读操作,但是对相同记录的写操作之间互斥,即不能同时写同一条记录。并且在实时数据库更新时需要停止对实时数据库的一切写操作;
更新操作是指对整个实时数据库数据的更新,需要向内存重新装载数据,影响所有的对实时数据库的操作,更新实时数据库之前需要停止对实时数据库的一切读写的操作。
本发明采用共享标志区与信号量相结合的方法快速安全地访问实时数据库。所做的设置和各种操作的规则如下:
1)设置一个共享标志区,在该标志区,每一个需要访问实时数据库的应用程序中都有一条记录,该记录包含两项:实时数据库允许访问标志和新实时数据库标志。
其中,每个应用程序的“实时数据库允许访问标志”用于标记该应用程序是否允许访问实时数据库,只有设置为允许访问时,该应用程序才可以进行读写操作,该实时数据库允许访问标志只能由实时数据库更新程序进行访问,其它应用程序则不能访问;
每个应用程序的“新实时数据库标志”用于标记实时数据库是否被更新,如果应用程序查询该新实时数据库标志被设置为有效,则需要进行实时数据库的重新映像操作,该新实时数据库标志由实时数据库更新程序进行设置,而由每个应用程序在对实时数据库重新映像后进行清除。
2)对实时数据库中的每一条记录(或每一组记录)都设置一个写操作信号灯。当需要写实时数据库的时候,写应用程序只有获得要写的那条记录的写操作信号灯,就可以对该记录进行写操作。
通过这两项措施,就可以完成对实时数据库的快速、安全的访问了。
下面分别具体介绍应用程序对实时数据的读操作、写操作和更新操作的具体流程。
图1是本发明写操作流程图,步骤如下:
步骤101,应用程序连接实时数据库,成功后执行下一步;
步骤102,该应用程序请求获取被写记录的写操作信号灯,如果成功,执行步骤104,否则执行步骤103;
步骤103,延时后返回步骤102;
步骤104,该应用程序对该记录进行写操作,在此期间其它应用程序不能获取该记录的写操作信号灯,直到该应用程序写操作完成后,释放该记录的写操作信号灯,结束。
写操作灯是由操作系统来维护的,可以有效避免各个应用程序之间发生冲突。而通过对不同的记录分别设置写操作信号灯,对分别写两条不同记录的写操作不会互斥,因而提高了写操作的效率。
图2是本发明读操作流程图,步骤如下:
步骤201,应用程序连接实时数据库,成功后执行下一步;
步骤202,该应用程序读取实时数据库。
现有技术中是为每个应用程序设置了一个读操作灯,而本实施例是用内存中的一个允许操作标志来替代的。因为读操作灯是操作系统提供的功能,需要从用户模块改为系统模式,对系统内核进行操作,因此本发明方法效率更高,操作速率更快。
图3是本发明连接实时数据库操作的流程图,步骤如下:
步骤301,应用程序先到共享标志区查询本应用程序的实时数据库允许访问标志,如果该标志为允许访问,则执行步骤303,如果不允许,则执行步骤302;
步骤302,延时后返回步骤301;
步骤303,该应用程序检查本应用程序的新实时数据库标志是否被设置,如果是,执行下一步,否则结束;
步骤304,重新映像实时数据库,清除新实时数据库标志,结束。
图4是本发明更新操作流程图,步骤如下:
步骤401,应用程序进行更新操作时,先将共享标志区中所有应用程序的实时数据库允许访问标志设置为禁止访问;
步骤402,等待所有应用程序停止对实时数据库的读写操作,然后执行下一步;
步骤403,更新实时数据库;
步骤404,更新完成后,设置所有应用程序的新实时数据库标志;
步骤405,将所有应用程序的实时数据库允许访问标志设置为允许访问。
本发明在此基础上还可以做各种变换,比如仅对实时数据库中的每条记录设置写操作信号灯,或者,仅用共享标志区的标志取代读信号灯来实现更新时的禁止操作,都也可以达到快速读写实时数据库的目的。
Claims (4)
1、一种快速安全的实时数据库访问方法,其特征在于,设置一共享标志区,对每一个需要访问实时数据库的应用程序设置一条记录,该记录包括实时数据库允许访问标志和新实时数据库标志,该方法包括更新数据库的过程,该过程分为以下步骤:
(a)将所有应用程序的实时数据库允许访问标志设置为禁止访问;
(b)在所有应用程序停止对数据库的读写操作后,更新实时数据库;
(c)然后置所有应用程序的新实时数据库标志,并将所有应用程序的实时数据库允许访问标志置为允许访问。
2、如权利要求1所述的方法,其特征在于,该方法还包括连接实时数据库的过程,该过程分为以下步骤:
(i)查询应用程序的实时数据库允许访问标志,如果允许,则执行步骤(j),否则延时后继续执行步骤(i);
(j)检查所述应用程序的新实时数据库标志是否被设置,如果是继续执行下一步,否则连接成功,结束;
(k)重新映像实时数据库,清除新实时数据库标志,结束。
3、如权利要求1或2所述的方法,其特征在于,对实时数据库中的每一条或每一组记录都设置一写操作信号灯,该方法包括应用程序写数据库的过程,该过程分为以下步骤:
(o)该应用程序连接实时数据库,如果此时允许操作,执行下一步;
(p)该应用程序请求获取被写记录的写操作信号灯,如果成功,执行步骤(q),否则延时后继续执行步骤(p);
(q)对该记录进行写操作,写毕释放该记录的写操作信号灯,结束。
4、如权利要求1或2所述的方法,其特征在于,该方法还包括读数据库的过程,该过程分为以下步骤:
(u)连接实时数据库,如果此时允许操作,执行下一步;
(v)读取实时数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100026717A CN100428232C (zh) | 2006-01-26 | 2006-01-26 | 一种快速安全的实时数据库访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100026717A CN100428232C (zh) | 2006-01-26 | 2006-01-26 | 一种快速安全的实时数据库访问方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1808433A CN1808433A (zh) | 2006-07-26 |
CN100428232C true CN100428232C (zh) | 2008-10-22 |
Family
ID=36840332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100026717A Active CN100428232C (zh) | 2006-01-26 | 2006-01-26 | 一种快速安全的实时数据库访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100428232C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7890456B2 (en) * | 2007-03-08 | 2011-02-15 | Sap Ag | Sharing of database objects |
CN101706815B (zh) * | 2009-12-03 | 2012-06-27 | 北京和利时系统工程有限公司 | 数据库设备和系统 |
CN102968485B (zh) * | 2012-11-26 | 2016-08-10 | 国电南瑞科技股份有限公司 | 一种基于虚拟域的实时数据库菜单项展示方法 |
CN104932925B (zh) * | 2015-07-06 | 2018-08-03 | 许继集团有限公司 | 一种电网监控系统实时库更新方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4648036A (en) * | 1985-03-06 | 1987-03-03 | At&T Bell Laboratories | Method for controlling query and update processing in a database system |
US5778388A (en) * | 1994-09-19 | 1998-07-07 | Hitachi, Ltd. | Method of processing a synchronization point in a database management system to assure a database version using update logs from accumulated transactions |
CN1581161A (zh) * | 2003-08-13 | 2005-02-16 | 华为技术有限公司 | 一种实现对数据库快速访问的方法 |
-
2006
- 2006-01-26 CN CNB2006100026717A patent/CN100428232C/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4648036A (en) * | 1985-03-06 | 1987-03-03 | At&T Bell Laboratories | Method for controlling query and update processing in a database system |
US5778388A (en) * | 1994-09-19 | 1998-07-07 | Hitachi, Ltd. | Method of processing a synchronization point in a database management system to assure a database version using update logs from accumulated transactions |
CN1581161A (zh) * | 2003-08-13 | 2005-02-16 | 华为技术有限公司 | 一种实现对数据库快速访问的方法 |
Non-Patent Citations (2)
Title |
---|
基于记录标记的数据库同步算法. 李立亚,朱浩,李昊.高性能计算技术,第总第173期. 2005 |
基于记录标记的数据库同步算法. 李立亚,朱浩,李昊.高性能计算技术,第总第173期. 2005 * |
Also Published As
Publication number | Publication date |
---|---|
CN1808433A (zh) | 2006-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105549905B (zh) | 一种多虚拟机访问分布式对象存储系统的方法 | |
CN101390094B (zh) | 针对复制数据库的分布式冲突解决 | |
CN102541757B (zh) | 写缓存方法、缓存同步方法和装置 | |
CN100585595C (zh) | 使用数据库管理系统管理文件系统的数据的方法 | |
CN101326494A (zh) | 协调硬件事务存储器事务和软件事务存储器事务对存储单元的访问 | |
CN103927277A (zh) | Cpu和gpu共享片上高速缓存的方法及装置 | |
CN103106047A (zh) | 一种基于对象的存储系统及其存储方法 | |
CN103810074A (zh) | 一种片上系统芯片及相应的监控方法 | |
CN100470429C (zh) | 集散控制系统操作员站内存数据库结构存储的同步方法 | |
CN102541691B (zh) | 面向内存数据库oltp应用的日志检查点恢复方法 | |
CN100428232C (zh) | 一种快速安全的实时数据库访问方法 | |
CN103226598A (zh) | 访问数据库的方法和装置以及数据库管理系统 | |
CN109669635B (zh) | 用于固态存储主控芯片的命令lba重合检测方法及装置 | |
CN103092920A (zh) | 半结构化数据的存储方法及存储系统 | |
US6658541B2 (en) | Computer system and a database access method thereof | |
CN104484131A (zh) | 多磁盘服务器的数据处理装置及对应的处理方法 | |
CN106469123A (zh) | 一种基于nvdimm的写缓存分配、释放方法及其装置 | |
CN105912270B (zh) | 一种面向pm的访存请求解析装置与方法 | |
CN102024051B (zh) | 分布式内存数据库数据更新方法 | |
CN101458655B (zh) | 内存管理方法、系统及内存控制装置 | |
CN101853279A (zh) | 一种改进的内存数据库封锁方法 | |
CN101178660A (zh) | 存储器数据自动更新方法 | |
CN102841894A (zh) | 一种文件分配表的数据存储方法 | |
CN104077078A (zh) | 读存储区、更新存储区的方法及装置 | |
CN102609364A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211122 Address after: 100176 room 3412, floor 4, building 3, yard 2, Desheng Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing Patentee after: Beijing Helishi system integration Co.,Ltd. Address before: 100096, No. 10, building materials Road, Haidian District, Beijing, Xisanqi Patentee before: BEIJING HOLLYSYS Co.,Ltd. |
|
TR01 | Transfer of patent right |