CN102156700A - 数据库的访问方法、装置及系统 - Google Patents
数据库的访问方法、装置及系统 Download PDFInfo
- Publication number
- CN102156700A CN102156700A CN2010101136320A CN201010113632A CN102156700A CN 102156700 A CN102156700 A CN 102156700A CN 2010101136320 A CN2010101136320 A CN 2010101136320A CN 201010113632 A CN201010113632 A CN 201010113632A CN 102156700 A CN102156700 A CN 102156700A
- Authority
- CN
- China
- Prior art keywords
- database
- atomic operation
- shared data
- access
- atomic
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 190
- 238000012545 processing Methods 0.000 claims abstract description 24
- 230000005856 abnormality Effects 0.000 claims description 7
- 238000013507 mapping Methods 0.000 description 24
- 238000012217 deletion Methods 0.000 description 9
- 230000037430 deletion Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 238000012797 qualification Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 108010022579 ATP dependent 26S protease Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012857 repacking Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据库的访问方法,包括:接收对数据库的共享数据的修改操作请求,所述数据库的共享数据映射到了进程的地址空间中;将所述修改操作请求分解为预置个数的原子操作序列;按照各个原子操作序列的执行顺序调用原子操作接口;通过所述原子操作接口提供的原子操作,访问映射到进程的地址空间的所述数据库的共享数据。相应地,本发明实施例还公开了一种数据库访问装置和数据库应用系统。本发明实施例通过以上技术方案,对数据库的修改操作,通过原子操作访问所述数据库的共享数据来进行处理,而原子操作处理在进行时不会被其它的进程打断,能够保证数据的一致性,提高了多进程嵌入式并发访问数据库的共享数据的保护程度。
Description
技术领域
本发明涉及数据库领域,特别涉及一种数据库的访问方法、装置及系统。
背景技术
随着电信业的发展,对数据存储的实时性和健壮性要求越来越高,同时内存等硬件的集成度和访问速度得到提高,成本得到降低,这就决定了内存数据库在电信业中扮演了越来越重要的角色。
传统的数据库管理系统采用了C/S(客户端/服务器)的访问模式,有效的隔离了应用程序和数据库系统,保证了系统的健壮性;但C/S访问模式下产生了额外的网络通信(通常是TCP/IP)开销,限制了数据库系统的实时性,特别是在高速的内存数据库中,数据本身的访问和修改都是在微秒级下,但当前局域网的网络时延一般是在毫秒级上,即使是访问本机,也存在协议栈的处理和进程切换的开销。这些都使得C/S模式成为内存数据库的一种访问瓶颈。嵌入式访问是一种高效的访问方式,伴随着内存数据库的发展,越来越被大多数人接受。嵌入式的访问是将内存数据库与应用程序联合编译在一起,从而允许多个应用程序共享使用一个数据库实例,这样提高了数据访问的实时性。
嵌入式的访问方式带来高效的访问的同时,也存在如下缺陷:当某个应用程序在修改内存数据库的数据时因为某些原因异常退出了,这就可能导致这种修改没有完成(如某个数据结构修改了一半或者某些内部互斥资源没有释放),使得数据库处于一种不一致的状态,从而导致其他应用程序无法再次使用内存数据库。
发明内容
本发明实施例提供一种数据库的访问方法、装置及系统,以保证数据库的一致性。
本发明实施例提供一种数据库的访问方法,包括:
接收对数据库的共享数据的修改操作请求,所述数据库的共享数据映射到了进程的地址空间中;
将所述修改操作请求分解为预置个数的原子操作序列;
按照各个原子操作序列的执行顺序调用原子操作接口;
通过所述原子操作接口提供的原子操作,访问映射到进程的地址空间的所述数据库的共享数据。
本发明实施例提供一种数据库访问装置,包括:
接收模块,用于接收对数据库的共享数据的修改操作请求,所述数据库的共享数据映射到了进程的地址空间中;
分解模块,用于将所述修改操作请求分解为预置个数的原子操作序列;
调用模块,用于按照各个原子操作序列的执行顺序,调用原子操作接口;
原子访问模块,用于通过所述原子操作接口提供的原子操作,访问映射到进程的地址空间的所述数据库的共享数据。
本发明实施例提供一种数据库应用系统,包括:用于存储数据的数据库和上述的数据库访问装置;所述数据库访问装置用于对所述数据库进行访问。
本发明实施例通过以上技术方案,对数据库的修改操作,通过原子操作访问所述数据库的共享数据来进行处理,而原子操处理作在进行时不会被其它的进程打断,能够保证数据的一致性,提高了多进程嵌入式访问数据库的共享数据的保护程度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1本发明实施例提供一种数据库的访问方法的流程图;
图2本发明实施例提供一种数据库的访问方法的流程图;
图3本发明实施例提供一种数据库的访问方法的流程图;
图4本发明实施例提供一种数据的内存组成示意图;
图5本发明实施例提供一种数据库访问装置结构图;
图6本发明实施例提供在一种原子访问模块的结构图;
图7本发明实施例提供一种数据库访问装置结构图;
图8本发明实施例提供一种权限设置模块的结构图;
图9本发明实施例提供一种数据库应用系统结构图;
图10本发明实施例提供一种数据库应用系统的应用场景示意图;
图11本发明实施例提供一种数据库应用系统的应用场景示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种数据库的访问方法,包括:
S101,接收对数据库的共享数据的修改操作请求,该数据库的共享数据映射到了进程的地址空间中;
在一个实施例中,应用程序在使用数据库时,需要将数据库的共享数据映射到进程的地址空间。即,将数据库的共享数据加载到进程的地址空间。
在一个实施例中,进程可以包括应用程序进程和数据库服务进程。
在一个实施例中,数据库可以为嵌入式并发访问数据库。
S102,将上述修改操作请求分解为预置个数的原子操作序列;
S103,按照各个原子操作序列的执行顺序,调用原子操作接口;
S104,通过原子操作接口提供的原子操作访问射到进程的地址空间中上述数据库的共享数据。
在一个实施例中,可以通过操作系统的内核驱动来提供一个原子操作接口,通过该原子操作接口对该数据库的共享数据进行原子操作访问。即,可以通过操作系统的内核驱动提供的原子操作访问所述数据库的共享数据。
在一个实施例中,可以通过数据库的服务进程来提供一个原子操作接口,通过该原子操作接口对该数据库的共享数据进行原子操作访问。即,可以通过所述数据库的服务进程提供的原子操作访问所述数据库的共享数据。
本发明实施例通过以上技术方案,对数据库的修改操作,通过原子操作访问所述数据库的共享数据来进行处理,而原子操处理作在进行时不会被其它的进程打断,能够保证数据的一致性,提高了多进程嵌入式访问数据库的共享数据的保护程度。
如图2所示,本发明实施例提供一种数据库的访问方法,包括:
S110,接收对数据库的共享数据的操作请求,上述数据库的共享数据映射到了进程的地址空间中;
在一个实施例中,应用程序在使用数据库时,需要将数据库的共享数据映射到进程的地址空间。即,将数据库的共享数据加载到进程的地址空间。
在一个实施例中,进程包括应用程序进程和数据库服务进程。
S120,当所述操作请求为修改操作请求时,将上述修改操作请求分解为预置个数的原子操作序列;
S130,按照各个原子操作序列的执行顺序,调用原子操作接口;
S141,获取各个原子操作序列的类型,上述各个原子操作的类型为根据预置的逻辑对象预先划分的;
在一个实施例中,预置的逻辑对象可以包括但不仅限于以下3种:
(1)内存对象:包括,增加新内存块,删除内存块;
(2)数据对象:包括,插入新记录,删除记录,更新记录;
(3)索引对象:包括,插入索引,删除索引。
S142,根据各个原子操作序列的类型,通过所述原子操作接口对所述数据库的共享数据进行相应的原子操作操作处理。
以上述三种逻辑对象为例,在一个实施例中,可以根据原子操作的类型对上述数据库的共享数据进行相应的原子操作处理(如,进行内存操作处理、数据操作处理或者索引操作处理),进而对数据库内部对象进行处理。
如图2中的虚线框所示,在一个实施例中,该方法还可以包括:
S107,将数据库的共享数据映射到进程的地址空间中;
S108,根据所述进程的类别,对上述共享数据映射到的进程设置相应的访问权限;在一个实施例中,进程可以包括应用程序进程和数据库服务进程。
在一个实施例中,如果原子操作的接口为操作系统内核驱动提供的原子操作接口,即,通过操作系统内核驱动为数据库提供原子操作处理,那么对于数据库的服务进程和应用程序进程,将它们对映射的共享数据的访问权限设置为只读权限;
在一个实施例中,如果原子操作接口为数据库服务进程提供的原子操作接口,即,通过数据库服务进程为数据库提供原子操作处理,那么对于数据库的服务进程,将其对映射的共享数据的访问权限设置为读写权限;对于应用程序进程,将其对映射的共享数据的访问权限设置为只读权限。
这样,在一个实施例中,因为,本实施例中应用程序被设置为只读权限,应用程序本身时没有权限去修改数据库的共享数据的。如果应用程序想要修改共享数据,那么该应用程序就会通过调用操作系统内核或者数据库服务进程提供的原子操作处理进行修改,而操作系统内核是可以读写共享数据的,数据库的服务进程在设置为读写权限的情况下也是可以对协共享数据的。这样就减少了在应用程序的代码存在内存访问越界或者野指针的情况下对共享数据进行访问,导致内存数据库的数据被非法破坏的情况。
S109,当所述操作请求为读操作请求时,根据该读操作请求,访问映射到进程空间的数据库的共享数据。
在一个实施例中,对于一个读操作请求(例如,查询请求)如“select*fromtbl where idx=1”,直接访问映射到进程空间的数据的库共享数据;对于一个修改操作请求,如“update tbl set f1=1 where idx=1”,先将此分解成一系列的原子操作序列,然后调用操作系统内核驱动或者数据库服务进程提供的原子操作接口完成这些原子操作,最终将结果返回给用户。
S150,对上述操作请求(读操作请求或者修改操作请求)处理结束后,遍历访问所述数据库的共享数据产生的会话表,获取一个会话;根据该会话绑定的应用程序标识码ID判定所述应用程序退出时,若该会话还有未完成的事务,释放未完成的事务所使用的闩;将未完成的事务回滚,将该会话设为空闲状态。
本发明实施例通过以上技术方案,通过将对数据库的修改操作分解为原子操作进行处理,而原子操处理作在进行时不会被其它的进程打断,提高了多进程嵌入式并发访问共享内存数据库的共享数据的保护性,能够保证数据的一致性。而且对映射的共享数据根据进程的类别来设置不同的访问权限,减少了进程越权访问导致数据库异常的情况。进一步地,通过异常检测一旦发现应用发生崩溃,会对应用绑定的未完成事务进行回滚,释放未完成的事务占用的资源,进行数据恢复。
如图3所示,本发明实施例提供一种数据库的访问方法,该方法包括:
S210,将数据库的共享数据映射到进程的地址空间中;
在一个实施例中,数据库的内存组成可以如图4所示。由图4可知,内存数据库的内存包括一个固定长度的控制块和多个大小不一的内存数据块。
在一个实施例中,应用程序在使用数据库时,需要将数据库的共享数据映射到进程的地址空间。即,将数据库的共享数据加载到进程的地址空间。
在一个实施例中,对于共享数据的映射可以包括初始化加载和访问加载两个阶段。
在一个实施例中,可以将数据库的原子操作封装为操作系统的内核驱动,由操作系统的内核为数据库内部提供原子操作接口,初始化加载按照如下过程进行:
1、对内核驱动进行映射;
(1)根据数据库的配置信息,获取控制文件,分配内存,读入控制文件生成控制块,保存生成的控制块的头地址信息。
对控制块的头地址信息进行保存后,可以通过控制块的头地址信息找到控制块的地址。
(2)分析控制块的信息,分配内存并加载控制块信息中记录的各个数据块信息,并将数据块的头指针保存到数据块头指针数组中。
(3)根据数据库的配置信息,申请数据库的全局共享区域,并在这个区域上初始化各种全局信息:例如,对日志区,事务管理区,锁资源区,资源跟踪区,系统表快速缓冲区等进行初始化。
2、对数据库服务程序进行映射;
3、对应用程序进行映射;
在一个实施例中,可以通过对映射的共享数据根据进程的类别来设置不同的访问权限,来对数据库的共享数据的非法访问进行保护。例如,在一个实施例中,对于数据库的服务进程和应用程序进程,将映射的共享数据设置为只读权限。而对于内核驱动来说,利用内核可以读写这些共享数据。
在一个实施例中对数据库服务程序进行映射的过程和对应用程序进行映射的过程是一样的,均包括:
(1)映射上述内核驱动创建的控制块,保存映射后的控制块头地址信息到私有内存中。设置该映射地址为只读属性。
(2)根据控制块中的信息,映射内核驱动创建的各个数据块,并将数据块的头指针保持到私有的数据块头指针数组中,并设置这些映射地址为只读属性。
(3)加载全局共享区域,并保存各种全局信息的头指针到使用内存中。
在一个实施例中,如果数据库新增一块数据块,必须通过内核驱动进行增加。因此,对于访问加载,只存在于数据库服务程序和应用程序。当要访问的数据块的头指针在进程内私有的数据块头指针数组中不存在时,需要从控制块中读取相关信息,并映射到数据库服务程序或者应用程序的进程空间中,同时更新私有的数据块头指针数组。
需要说明的是,在另一个实施例中,可以取消内核驱动,直接由服务进程提供原子操作接口:这样需要在应用程序与数据库服务进程间开启一个共享内存通信区,用于进行原子操作的通信。当然可以理解的是在另一个实施例中,还可以使用TCP/IP协议进行通信或者使用Socket(套接字)协议进行通信;在另一个实施例中,还可以使用其它IPC(Inter Process Communication,进程间通信)手段进行通信,本发明实施例不做特别的限定。将数据库的共享数据映射到数据库服务程序时,需要将映射的共享数据设为可读写。
当然很好理解的是,在取消内核驱动,直接由数据库的服务进程提供原子操作接口的情况下,步骤S210中不会将数据库的共享数据对内核驱动进行映射。
S220,解析收到的请求语句;
S221,检验该请求语句的有效性;
S222~S223,如果有效则对该请求语句进行优化,并生成执行计划。
在一个实施例中,请求语句可以为SQL请求或者PL请求语句。
在一个实施例中,如果请求语句有效,会生成多个执行计划,这时进行优化就是选择一个最佳的执行计划。
S230,若该执行计划为读操作,则包括:
S231,检查当前会话是否已启动事务,如果否,则启动一个新的读事务,并将该新的读事务绑定到当前会话;如果是,则进行下面的步骤;
在一个实施例中,S231中的会话是由应用程序连接到数据库时产生的;例如,用户对数据库进行修改或查询等操作,这些操作都会产生会话。
S232,根据执行计划,对所需要访问的表进行加锁;
在一个实施例中,以SQL请求为例进行说明,收到的请求语句为SQL请求,例如为select*from tbl where idx=1”,这样根据该请求就可以知道该请求需要访问表1(tbl)。
在一个实施例中,锁在事务提交时释放。
S233,判断是否能够使用索引对所需要访问的表进行访问;
S234,如果能够使用索引,则直接访问索引数据结构获取满足条件的记录ID;
在一个实施例中,索引数据结构可以为索引页;在一个实施例中索引数据结构还可以为索引块,本发明实施例不做特别的限定。
在一个实施例中,索引数据结构为索引页或者索引块时,在访问索引页或者索引块时,会对该页或者块进行加闩,在访问完后进行解闩。
S235,根据S234中的记录ID,访问得到实际记录;
S236,若不能够使用索引,则对需要访问的表进行全表扫描,得到实际记录,并跳转到步骤S237;
S237,对得到的实际记录重新组装成用户需要的格式。
S240,若该执行计划为写操作,则包括:
S241,检查当前会话是否已启动事务;
S242,如果当前为读事务,则现提交该事务,并启动一个新的写事务;
S243,如果无事务也启动一个新的写事务;如果当前为写事务,则进行下面的步骤;
S244,根据执行计划,对需要访问的表进行加锁;
在一个实施例中,以SQL请求为例进行说明,收到的请求语句为SQL请求,例如为“update tbl set f1=1 where idx=1”,这样根据该请求就可以知道该请求需要访问表1(tbl)。
在一个实施例中,锁在事务提交时释放。
S245,将执行计划分解为预置个数的原子操作序列;
在一个实施例中,当将执行计划分解为为预置个数的原子操作序列时,这些原子操作序列有着预置的执行顺序。
S246,按照各个原子操作序列的执行顺序,调用原子操作接口对原子操作进行处理;
在一个实施例中,可以通过调用内核驱动提供的原子操作处理接口对原子操作进行处理;这种情况下,可以是将执行原子操作处理的装置封装为操作系统的内核驱动,这样操作系统的内核驱动可以为数据库提供原子操作处理接口。
在一个实施例中,可以通过数据库服务进程提供的原子操作接口对原子操作进行处理;这种情况下,在一个实施例种,可以在应用程序与数据库服务进程间开启一个共享内存通信区,用于进行原子操作的通讯;当然可以理解的是在另一个实施例中,还可以使用TCP/IP协议进行通信或者使用Socket协议进行通信;在另一个实施例中,还可以使用其它IPC手段进行通信,本发明实施例不做特别的限定。这样在步骤S210中将共享数据映射到进程的地址空间中,在映射到数据库服务进程的地址空间中时,需要将数据库服务进程对数据库的共享数据的访问权限设置为读写权限。
S247,根据预置的逻辑对象,对原子操作进行类型划分,根据原子操作的类型对数据库的共享数据进行相应的原子操作处理;
在一个实施例中,预置的逻辑对象可以包括但不仅限于以下3种:
(1)内存对象:包括,增加新内存块,删除内存块;
(2)数据对象:包括,插入新记录,删除记录,更新记录;
(3)索引对象:包括,插入索引,删除索引;
以上述三种逻辑对象为例,在一个实施例中,可以根据原子操作的类型对上述数据库的共享数据进行相应的原子操作处理(如,进行内存操作处理、数据操作处理或者索引操作处理),进而对数据库内部对象进行处理。
S248,每个原子操作处理完后,对每个原子操作记UNDO日志;
步骤S248后,若还有原子操作没有处理完毕,则返回步骤S247。
在一个实施例中,在每个原子操作处理完成返回到应用程序前,都会通过系统的日志模块对操作记录记UNDO日志。
S250,将执行计划的处理结果返回给用户;
至此,在步骤S250结束后,即,将处理结果返回给用户后,可以算作一次用户请求处理过程的结束。
如图3中的虚线框所示,在一个实施例中,该方法还可以包括:
S260,在对用户的请求处理结束后,对内存数据库进行异常检测与恢复;
在一个实施例中,可以从一个会话中获取该会话绑定的应用程序ID,当根据应用程序ID判断该应用程序已经退出时,若该会话还有未完成的事务,释放这些未完成事务使用的闩,将未完成的事务回滚,并将该会话设为空闲状态。在一个实施例中,数据库服务进程是数据库一个独立的进程,它能够完成数据库的一些系统任务。
在一个实施例中,步骤S260主要过程包括:
S261,遍历会话表,获取一个会话
S262,从会话中获取会话绑定的应用程序ID。
S263,根据应用程序ID判断该应用程序是否已经退出。如果否,处理下一个会话;如果是,判断该会话是否有未完成的事务,如果没有未完成的事务,则将该会话设为空闲状态,然后处理下一个会话;如果有未完成的事务,释放这些未完成事务使用的闩,将未完成的事务回滚,并将该会话设为空闲状态。
本发明实施例通过以上技术方案,通过将对数据库的修改操作分解为原子操作进行处理,而原子操处理作在进行时不会被其它的进程打断,提高了多进程嵌入式并发访问共享内存数据库的共享数据的保护性,能够保证数据的一致性。而且对映射的共享数据根据进程的类别来设置不同的反问权限,将应用程序设置为只读权限,应用程序若需要对共享数据进行修改,只能通过原子操作进行处理,减少了应用程序的代码存在内存访问越界或者野指针,导致内存数据库的数据被非法破坏的情况。进一步地,在对用户的请求处理结束后,通过异常检测一旦发现应用发生崩溃,会对应用绑定的未完成事务进行回滚,释放未完成的事务占用的资源,进行数据恢复。
如图5所示,本发明实施例提供一种数据库访问装置,包括:
接收模块310,用于接收对数据库的共享数据的修改操作请求,上述数据库的共享数据映射到了进程的地址空间中;
在一个实施例中,应用程序在使用数据库时,需要将数据库的共享数据映射到进程的地址空间。即,将数据库的共享数据加载到进程的地址空间。
分解模块320,用于将上述修改操作请求分解为预置个数的原子操作序列;
调用模块330,用于按照各个原子操作序列的执行顺序,调用原子操作接口;
原子访问模块340,用于通过上述原子操作接口提供的原子操作,访问映射到进程的地址空间的上述数据库的共享数据。
在一个实施例中,可以通过操作系统的内核驱动来提供一个原子操作接口,通过该原子操作接口对该数据库的共享数据进行原子操作访问。即,可以通过操作系统的内核驱动提供的原子操作访问所述数据库的共享数据。
在一个实施例中,可以通过数据库的服务进程来提供一个原子操作接口,通过该原子操作接口对该数据库的共享数据进行原子操作访问。即,可以通过所述数据库的服务进程提供的原子操作访问所述数据库的共享数据。
如图6所示,在一个实施例中,原子访问模块340可以包括:
类型获取单元341,用于获取各个原子操作序列的类型,上述各个原子操作的类型为根据预置的逻辑对象预先划分的;
在一个实施例中,预置的逻辑对象可以包括但不仅限于以下3种:
(1)内存对象:包括,增加新内存块,删除内存块;
(2)数据对象:包括,插入新记录,删除记录,更新记录;
(3)索引对象:包括,插入索引,删除索引。
处理单元342,用于根据上述各个根据原子操作的类型,通过上述原子操作接口对映射到进程的地址空间的数据库的共享数据进行相应原子操作处理。
以上述三种逻辑对象为例,在一个实施例中,可以根据原子操作的类型对上述数据库的共享数据进行相应的原子操作处理(如,进行内存操作处理、数据操作处理或者索引操作处理),进而对数据库内部对象进行处理。
在一个实施例中,可以通过操作系统的内核驱动为数据库提供原子操作处理接口。
在一个实施例中,可以通过数据库服务进程为数据库提供原子操作处理接口。
本发明实施例通过以上技术方案,对数据库的修改操作,通过原子操作访问所述数据库的共享数据来进行处理,而原子操处理作在进行时不会被其它的进程打断,能够保证数据的一致性,提高了多进程嵌入式访问数据库的共享数据的保护程度。
如图7所示,在一个实施例中,该装置还可以包括:
加载模块300,用于将数据库的共享数据映射到进程的地址空间中;
权限设置模块301,用于根据所述进程的类别,对共享数据映射到的进程设置相应的访问权限,在这里进程包括应用程序进程和数据库服务进程。
异常处理模块302,用于在对所述操作请求处理完毕后,遍历访问数据库的共享数据产生的会话表,获取一个会话;根据该会话绑定的应用程序标识码ID判定所述应用程序退出时,若该会话还有未完成的事务,释放未完成的事务所使用的闩;将未完成的事务回滚,将该会话设为空闲状态。
在一个实施例中,接收模块310还可以用于接收对所述数据库的共享数据的读操作请求;此时,如图7所示改装置还可以包括:
读操作处理模块303,用于根据该读操作请求,访问映射到进程空间的数据库的共享数据。
如图8所示,在一个实施例中,权限设置模块301可以包括:
第一权限设置单元3011,用于当原子操作接口为操作系统的内核驱动提供的原子操作接口时,将应用程序进程和数据库的服务进程对映射的共享数据的访问权限设置为只读权限;
第二权限设置单元3012,用于当原子操作接口为数据库的服务进程提供的原子操作接口时,将应用程序进程对映射的共享数据的访问权限设置为只读权限,将数据库的服务进程对映射的共享数据的访问权限设置为读写权限。
本发明实施例通过以上技术方案,通过将对数据库的修改操作分解为原子操作进行处理,而原子操处理作在进行时不会被其它的进程打断,提高了多进程嵌入式并发访问共享内存数据库的共享数据的保护性,能够保证数据的一致性。而且对映射的共享数据根据进程的类别来设置不同的反问权限,将应用程序设置为只读权限,应用程序若需要对共享数据进行修改,只能通过原子操作进行处理,减少了应用程序的代码存在内存访问越界或者野指针,导致内存数据库的数据被非法破坏的情况。进一步地,在对用户的请求处理结束后,通过异常检测一旦发现应用发生崩溃,会对应用绑定的未完成事务进行回滚,释放未完成的事务占用的资源,进行数据恢复。
如图9所示,本发明实施例提供一种数据库应用系统,包括数据库10和数据库访问装置20;
数据库10,用于存储数据;
数据库访问装置20,用于接收对数据库的共享数据的修改操作请求,该数据库的共享数据映射到了进程的地址空间中;当所述操作请求为修改操作请求时,将上述修改操作请求分解为预置个数的原子操作序列;按照各个原子操作序列的执行顺序,调用原子操作接口,通过原子操作接口提供的原子操作,访问映射到进程的地址空间的上述数据库的共享数据。
在一个实施例中,应用程序在使用数据库时,需要将数据库的共享数据映射到进程的地址空间。即,将数据库的共享数据加载到进程的地址空间。在一个实施例中,进程可以包括应用程序进程和数据库服务进程。在一个实施例中,数据库可以为嵌入式并发访问数据库。
在一个实施例中,可以通过操作系统的内核驱动来提供一个原子操作接口,通过该原子操作接口对该数据库的共享数据进行原子操作访问。即,可以通过操作系统的内核驱动提供的原子操作访问所述数据库的共享数据。
在一个实施例中,可以通过数据库的服务进程来提供一个原子操作接口,通过该原子操作接口对该数据库的共享数据进行原子操作访问。即,可以通过所述数据库的服务进程提供的原子操作访问所述数据库的共享数据。
在一个实施例中,数据库访问装置20还用于,接收对所述数据库的共享数据的读操作请求;根据所述读操作请求,访问映射到进程的地址空间的所述数据库的共享数据。
数据库访问装置20的结构和功能在上述实施例中已经详细描述,在此不再赘述。
本发明实施例通过以上技术方案,通过将对数据库的修改操作分解为原子操作进行处理,而原子操处理作在进行时不会被其它的进程打断,提高了多进程嵌入式并发访问共享内存数据库的共享数据的保护性,能够保证数据的一致性。而且对映射的共享数据根据进程的类别来设置不同的反问权限,将应用程序设置为只读权限,应用程序若需要对共享数据进行修改,只能通过原子操作进行处理,减少了应用程序的代码存在内存访问越界或者野指针,导致内存数据库的数据被非法破坏的情况。进一步地,在对用户的请求处理结束后,通过异常检测一旦发现应用发生崩溃,会对应用绑定的未完成事务进行回滚,释放未完成的事务占用的资源,进行数据恢复。
如图10所示,本发明实施例提供一种数据库应用系统的应用场景示意图,在本实施例中,通过操作系统内核驱动为数据库提供原子操作处理,即,原子操作接口为操作系统的内核驱动提供的原子操作接口。
在本实施例中,在将数据库的共享数据映射到图10中的应用程序进程和数据库服务进程时,将应用程序进程和数据库的服务进程对映射的共享数据的访问权限设置为只读权限。而操作系统的内核驱动利用内核可以对这些共享数据进行读写。当收到修改操作命令时,通过操作系统的内核提供原子操作访问数据库的共享数据,对数据库的共享数据进行修改。
在本实施例中,由于应用程序进程和数据库服务进程对于数据库共享数据的访问权限均被设置为只读权限,因此当用户想通过应用程序进程和数据库服务进程对共享数据进行修改时,这时数据库应用系统会调用操作系统内核驱动提供的原子操作接口,通过原子操作完成修改。
具体的原子操作处理方式,在前述实施例中已经详细描述,在此不再赘述。
本发明实施例通过以上技术方案,通过将对数据库的修改操作分解为原子操作进行处理,而原子操处理作在进行时不会被其它的进程打断,提高了多进程嵌入式并发访问共享内存数据库的共享数据的保护性,能够保证数据的一致性。而且对映射的共享数据根据进程的类别来设置不同的反问权限,将应用程序设置为只读权限,应用程序若需要对共享数据进行修改,只能通过原子操作进行处理,减少了应用程序的代码存在内存访问越界或者野指针,导致内存数据库的数据被非法破坏的情况。
如图11所示,本发明实施例提供一种数据库应用系统的应用场景示意图,在本实施例中,通过数据库服务进程为数据库提供原子操作处理,即,原子操作接口为所述数据库的服务进程提供的原子操作接口。在图11中,在应用程序和数据库服务进程间开启了一个共享内存通信区,用于进行原子操作间的通信。
由于在本实施例中,取消了内核驱动,直接通过数据库服务进程为数据库提供原子操作处理,所以:
在本实施例中,在将数据库的共享数据映射到图11中的应用程序进程时,将应用程序进程对映射的共享数据的访问权限设置为只读权限;在将数据库的共享数据映射到图11中的数据库服务进程时,将数据库的服务进程对映射的共享数据的访问权限设置为读写权限。
在本实施例中,由于应用程序进程对于数据库共享数据的访问权限被设置为只读权限,因此当用户想通过应用程序进程对共享数据进行修改时,这时数据库应用系统会调用数据库服务进程提供的原子操作接口,通过原子操作完成修改。而由于数据库服务进程提供原子操作接口,数据库服务进程对于数据库共享数据的访问权限被设置为读写权限,因此当用户想通过数据库服务进程对数据库的共享数据进行修改时,会直接通过服务进程里的原子操作接口来完成修改。
具体的原子操作处理方式,在前述实施例中已经详细描述,在此不再赘述。
在本实施例中,可以在应用程序和数据库服务进程间开启一个共享内存通信区,用于进行原子操作的通信。当然可以理解的是在另一个实施例中,还可以使用TCP/IP协议进行通信或者使用Socket协议进行通信;在另一个实施例中,还可以使用其它IPC手段进行通信,本发明实施例不做特别的限定。
本发明实施例通过以上技术方案,通过将对数据库的修改操作分解为原子操作进行处理,而原子操作处理在进行时不会被其它的进程打断,提高了多进程嵌入式并发访问共享内存数据库的共享数据的保护性,能够保证数据的一致性。而且对映射的共享数据根据进程的类别来设置不同的反问权限,将应用程序设置为只读权限,应用程序若需要对共享数据进行修改,只能通过原子操作进行处理,减少了应用程序的代码存在内存访问越界或者野指针,导致内存数据库的数据被非法破坏的情况。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述仅为本发明的几个实施例,本领域的技术人员依据申请文件公开的可以对本发明进行各种改动或变型而不脱离本发明的精神和范围。
Claims (15)
1.一种数据库的访问方法,其特征在于,包括:
接收对数据库的共享数据的修改操作请求,所述数据库的共享数据映射到了进程的地址空间中;
将所述修改操作请求分解为预置个数的原子操作序列;
按照各个原子操作序列的执行顺序调用原子操作接口;
通过所述原子操作接口提供的原子操作,访问映射到进程的地址空间的所述数据库的共享数据。
2.如权利要求1所述的数据库的访问方法,其特征在于,所述通过所述原子操作接口提供的原子操作,访问映射到进程的地址空间的所述数据库的共享数据,包括:
根据所述各个原子操作序列的类型,通过所述原子操作接口对映射到进程的地址空间的所述数据库的共享数据进行相应的原子操作处理;其中,所述各个原子操作的类型为根据预置的逻辑对象预先划分的。
3.如权利要求1所述的数据库的访问方法,其特征在于,所述原子操作接口包括:
操作系统的内核驱动提供的原子操作接口;
或者,所述数据库的服务进程提供的原子操作接口。
4.如权利要求3所述的数据库的访问方法,其特征在于,所述接收对数据库的共享数据的修改操作请求之前,所述方法还包括:
将所述数据库的共享数据映射到进程的地址空间中;
根据所述进程的类别,对所述共享数据映射到的进程设置相应的访问权限,所述进程包括应用程序进程和数据库服务进程。
5.如权利要求4所述的数据库的访问方法,其特征在于,所述根据所述进程的类别,对所述共享数据映射到的进程设置相应的访问权限,包括:
当所述原子操作接口为操作系统的内核驱动提供的原子操作接口时,将所述应用程序进程和所述数据库的服务进程对所述共享数据的访问权限设置为只读权限;
当所述原子操作接口为所述数据库的服务进程提供的原子操作接口时,将所述应用程序进程对所述共享数据的访问权限设置为只读权限,将所述数据库的服务进程对所述共享数据的访问权限设置为读写权限。
6.如权利要求1所述的数据库的访问方法,其特征在于,所述方法还包括:
接收对所述数据库的共享数据的读操作请求;
根据所述读操作请求,访问映射到进程的地址空间的所述数据库的共享数据。
7.如权利要求6所述的数据库的访问方法,其特征在于,所述方法还包括:
遍历访问所述数据库的共享数据产生的会话表,获取一个会话;
根据所述会话绑定的应用程序标识码ID判定所述应用程序退出时,若所述会话还有未完成的事务,释放所述未完成的事务所使用的闩;将所述未完成的事务回滚,将所述会话设为空闲状态。
8.如权利要求2所述的数据库的访问方法,其特征在于,所述逻辑对象包括以下几种对象中的一个或多个:
内存对像,数据对象,以及索引对象。
9.一种数据库访问装置,其特征在于,包括:
接收模块,用于接收对数据库的共享数据的修改操作请求,所述数据库的共享数据映射到了进程的地址空间中;
分解模块,用于将所述修改操作请求分解为预置个数的原子操作序列;
调用模块,用于按照各个原子操作序列的执行顺序,调用原子操作接口;
原子访问模块,用于通过所述原子操作接口提供的原子操作,访问映射到进程的地址空间的所述数据库的共享数据。
10.如权利要求9所述的数据库访问装置,其特征在于,所述原子访问模块包括:
类型获取单元,用于获取所述各个原子操作序列的类型,所述各个原子操作的类型为根据预置的逻辑对象预先划分的;
处理单元,用于根据所述各个原子操作序列的类型,通过所述原子操作接口对映射到进程的地址空间的所述数据库的共享数据进行相应的原子操作操作处理。
11.如权利要求9所述的数据库访问装置,其特征在于,所述装置还包括:
加载模块,用于将所述数据库的共享数据映射到进程的地址空间中;
权限设置模块,用于根据所述进程的类别,对所述共享数据映射到的进程设置相应的访问权限,所述进程包括应用程序进程和数据库服务进程。
12.如权利要求11所述的数据库访问装置,其特征在于,所述权限设置模块包括:
第一权限设置单元,用于当所述原子操作接口为操作系统的内核驱动提供的原子操作接口时,将所述应用程序进程和所述数据库的服务进程对所述共享数据的访问权限设置为只读权限;或者
第二权限设置单元,用于当所述原子操作接口为所述数据库的服务进程提供的原子操作接口时,将所述应用程序进程对所述共享数据的访问权限设置为只读权限,将所述数据库的服务进程对所述共享数据的访问权限设置为读写权限。
13.如权利要求9所述的数据库访问装置,其特征在于,
所述接收模块还用于,接收对所述数据库的共享数据的读操作请求;
所述装置还包括读操作处理模块,用于根据所述读操作请求,直接访问映射到进程空间的所述数据库的共享数据。
14.如权利要求13所述的数据库访问装置,其特征在于,所述装置还包括:
异常处理模块,用于遍历访问所述数据库的共享数据产生的会话表,获取一个会话;根据所述会话绑定的应用程序标识码ID判定所述应用程序退出时,若所述会话还有未完成的事务,释放所述未完成的事务所使用的闩;将所述未完成的事务回滚,将所述会话设为空闲状态。
15.一种数据库应用系统,其特征在于,包括:用于存储数据的数据库和如权利要求9-14任一项权利要求所述的数据库访问装置;所述数据库访问装置用于对所述数据库进行访问。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101136320A CN102156700A (zh) | 2010-02-12 | 2010-02-12 | 数据库的访问方法、装置及系统 |
PCT/CN2010/080435 WO2011097932A1 (zh) | 2010-02-12 | 2010-12-29 | 数据库的访问方法、装置及数据库应用系统 |
EP10845602.1A EP2500831A4 (en) | 2010-02-12 | 2010-12-29 | METHOD AND DEVICE FOR ACCESSING A DATABASE AND DATABASE APPLICATION SYSTEM |
US13/487,849 US20120239634A1 (en) | 2010-02-12 | 2012-06-04 | Method and apparatus for accessing database and database application system |
US13/903,724 US20130262426A1 (en) | 2010-02-12 | 2013-05-28 | Method and apparatus for accessing database and database application system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101136320A CN102156700A (zh) | 2010-02-12 | 2010-02-12 | 数据库的访问方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102156700A true CN102156700A (zh) | 2011-08-17 |
Family
ID=44367231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101136320A Pending CN102156700A (zh) | 2010-02-12 | 2010-02-12 | 数据库的访问方法、装置及系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US20120239634A1 (zh) |
EP (1) | EP2500831A4 (zh) |
CN (1) | CN102156700A (zh) |
WO (1) | WO2011097932A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760155A (zh) * | 2012-05-30 | 2012-10-31 | 中兴通讯股份有限公司 | 一种基于数据库的事务控制方法及装置 |
CN102984277A (zh) * | 2012-12-17 | 2013-03-20 | 北京奇虎科技有限公司 | 防止恶意连接的系统和方法 |
CN104021145A (zh) * | 2014-05-16 | 2014-09-03 | 华为技术有限公司 | 一种混合业务并发访问的方法和装置 |
CN104881330A (zh) * | 2015-05-22 | 2015-09-02 | 大唐移动通信设备有限公司 | 一种多进程共享数据的方法和装置 |
CN105550178A (zh) * | 2014-10-29 | 2016-05-04 | 中兴通讯股份有限公司 | 一种数据库的处理方法、装置及系统 |
CN106471478A (zh) * | 2014-06-24 | 2017-03-01 | Arm 有限公司 | 用于在非易失性数据存储设备内以原子的方式执行多个写事务的设备控制器和方法 |
CN106527958A (zh) * | 2015-09-09 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 用于分布式存储系统的写入数据、获取数据的方法和设备 |
CN110347533A (zh) * | 2019-07-11 | 2019-10-18 | 中国工商银行股份有限公司 | 数据异常的处理方法、装置、计算设备及介质 |
CN113141235A (zh) * | 2020-01-20 | 2021-07-20 | 华为技术有限公司 | 处理数据的方法和相关装置 |
CN113342805A (zh) * | 2021-04-21 | 2021-09-03 | 湖北微源卓越科技有限公司 | 多进程共享数据的系统及方法 |
CN115203176A (zh) * | 2022-09-15 | 2022-10-18 | 太平金融科技服务(上海)有限公司深圳分公司 | 数据库操作方法、装置、设备、存储介质和程序产品 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104820508A (zh) * | 2014-01-30 | 2015-08-05 | 联发科技(新加坡)私人有限公司 | 设定权限的数据共享方法以及触控电子装置 |
US10929573B2 (en) * | 2017-03-21 | 2021-02-23 | The Boeing Company | Systems and methods for designing and modeling products in a cloud environment |
US10877992B2 (en) | 2017-11-30 | 2020-12-29 | International Business Machines Corporation | Updating a database |
CN110287044B (zh) * | 2019-07-02 | 2021-08-03 | 广州虎牙科技有限公司 | 无锁共享内存处理方法、装置、电子设备及可读存储介质 |
CN111984998A (zh) * | 2020-08-20 | 2020-11-24 | 北京人大金仓信息技术股份有限公司 | 数据库的强制访问控制方法和装置 |
CN112115097B (zh) * | 2020-09-28 | 2023-08-29 | 合肥沛睿微电子股份有限公司 | 运行日志信息的访问方法及存储设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740978A (zh) * | 2004-08-23 | 2006-03-01 | 华为技术有限公司 | 实现共享内存数据库的方法及内存数据库系统 |
CN1885882A (zh) * | 2006-06-29 | 2006-12-27 | 上海交通大学 | 基于嵌入式移动数据库的短信息管理系统 |
CN101004742A (zh) * | 2006-01-17 | 2007-07-25 | 中兴通讯股份有限公司 | 嵌入式环境下内存数据库的一致性保护方法 |
CN101221565A (zh) * | 2007-12-20 | 2008-07-16 | 康佳集团股份有限公司 | 一种利用嵌入式数据库对flash数据进行管理的方法 |
CN201289643Y (zh) * | 2008-10-21 | 2009-08-12 | 上海第二工业大学 | 基于fpga的嵌入式数据库系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6457021B1 (en) * | 1998-08-18 | 2002-09-24 | Microsoft Corporation | In-memory database system |
KR100790991B1 (ko) * | 2006-03-22 | 2008-01-03 | 삼성전자주식회사 | 데이터베이스 관리 시스템을 이용하여 파일시스템의메타데이터를 관리하는 방법 |
CN101295306B (zh) * | 2007-04-26 | 2012-09-05 | 国际商业机器公司 | 目录服务器中的修改条目名称操作方法和相应设备 |
CN101082928B (zh) * | 2007-06-25 | 2010-11-24 | 腾讯科技(深圳)有限公司 | 一种数据库访问的方法及数据库映射系统 |
CN101520797B (zh) * | 2009-02-11 | 2011-02-16 | 国网电力科学研究院 | 电力系统跨平台大数据文件高速并发存取方法 |
-
2010
- 2010-02-12 CN CN2010101136320A patent/CN102156700A/zh active Pending
- 2010-12-29 EP EP10845602.1A patent/EP2500831A4/en not_active Withdrawn
- 2010-12-29 WO PCT/CN2010/080435 patent/WO2011097932A1/zh active Application Filing
-
2012
- 2012-06-04 US US13/487,849 patent/US20120239634A1/en not_active Abandoned
-
2013
- 2013-05-28 US US13/903,724 patent/US20130262426A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740978A (zh) * | 2004-08-23 | 2006-03-01 | 华为技术有限公司 | 实现共享内存数据库的方法及内存数据库系统 |
CN101004742A (zh) * | 2006-01-17 | 2007-07-25 | 中兴通讯股份有限公司 | 嵌入式环境下内存数据库的一致性保护方法 |
CN1885882A (zh) * | 2006-06-29 | 2006-12-27 | 上海交通大学 | 基于嵌入式移动数据库的短信息管理系统 |
CN101221565A (zh) * | 2007-12-20 | 2008-07-16 | 康佳集团股份有限公司 | 一种利用嵌入式数据库对flash数据进行管理的方法 |
CN201289643Y (zh) * | 2008-10-21 | 2009-08-12 | 上海第二工业大学 | 基于fpga的嵌入式数据库系统 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760155B (zh) * | 2012-05-30 | 2018-02-13 | 中兴通讯股份有限公司 | 一种基于数据库的事务控制方法及装置 |
CN102760155A (zh) * | 2012-05-30 | 2012-10-31 | 中兴通讯股份有限公司 | 一种基于数据库的事务控制方法及装置 |
CN102984277A (zh) * | 2012-12-17 | 2013-03-20 | 北京奇虎科技有限公司 | 防止恶意连接的系统和方法 |
CN102984277B (zh) * | 2012-12-17 | 2015-11-25 | 北京奇虎科技有限公司 | 防止恶意连接的系统和方法 |
CN104021145A (zh) * | 2014-05-16 | 2014-09-03 | 华为技术有限公司 | 一种混合业务并发访问的方法和装置 |
CN104021145B (zh) * | 2014-05-16 | 2018-03-06 | 华为技术有限公司 | 一种混合业务并发访问的方法和装置 |
US9904701B2 (en) | 2014-05-16 | 2018-02-27 | Huawei Technologies Co.,. Ltd. | Method and apparatus for concurrent access of mixed services |
CN106471478B (zh) * | 2014-06-24 | 2020-10-30 | Arm 有限公司 | 用于在非易失性数据存储设备内以原子的方式执行多个写事务的设备控制器和方法 |
CN106471478A (zh) * | 2014-06-24 | 2017-03-01 | Arm 有限公司 | 用于在非易失性数据存储设备内以原子的方式执行多个写事务的设备控制器和方法 |
CN105550178A (zh) * | 2014-10-29 | 2016-05-04 | 中兴通讯股份有限公司 | 一种数据库的处理方法、装置及系统 |
CN104881330A (zh) * | 2015-05-22 | 2015-09-02 | 大唐移动通信设备有限公司 | 一种多进程共享数据的方法和装置 |
CN104881330B (zh) * | 2015-05-22 | 2018-08-21 | 大唐移动通信设备有限公司 | 一种多进程共享数据的方法和装置 |
US10599337B2 (en) | 2015-09-09 | 2020-03-24 | Alibaba Group Holding Limited | Method and device for writing data and acquiring data in a distributed storage system |
CN106527958B (zh) * | 2015-09-09 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 用于分布式存储系统的写入数据、获取数据的方法和设备 |
CN106527958A (zh) * | 2015-09-09 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 用于分布式存储系统的写入数据、获取数据的方法和设备 |
CN110347533A (zh) * | 2019-07-11 | 2019-10-18 | 中国工商银行股份有限公司 | 数据异常的处理方法、装置、计算设备及介质 |
CN113141235A (zh) * | 2020-01-20 | 2021-07-20 | 华为技术有限公司 | 处理数据的方法和相关装置 |
CN113141235B (zh) * | 2020-01-20 | 2022-07-22 | 华为技术有限公司 | 处理数据的方法和相关装置 |
CN113342805A (zh) * | 2021-04-21 | 2021-09-03 | 湖北微源卓越科技有限公司 | 多进程共享数据的系统及方法 |
CN115203176A (zh) * | 2022-09-15 | 2022-10-18 | 太平金融科技服务(上海)有限公司深圳分公司 | 数据库操作方法、装置、设备、存储介质和程序产品 |
CN115203176B (zh) * | 2022-09-15 | 2023-03-07 | 太平金融科技服务(上海)有限公司深圳分公司 | 数据库操作方法、装置、设备、存储介质和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
US20120239634A1 (en) | 2012-09-20 |
US20130262426A1 (en) | 2013-10-03 |
EP2500831A1 (en) | 2012-09-19 |
WO2011097932A1 (zh) | 2011-08-18 |
EP2500831A4 (en) | 2014-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102156700A (zh) | 数据库的访问方法、装置及系统 | |
CN107391653B (zh) | 一种分布式NewSQL数据库系统及图片数据储存方法 | |
US6061726A (en) | Dynamic rights assignment apparatus and method using network directory services | |
WO2023082537A1 (zh) | 一种基于拟态数据库的网络操作系统设计方法 | |
US20190121541A1 (en) | Method and apparatus for improving storage performance of container | |
CN101976314B (zh) | 权限控制方法和系统 | |
US20060059149A1 (en) | Generation of anonymized data records from productive application data | |
CN103177055A (zh) | 存储为行存储和列存储二者的混合数据库表 | |
US20100169289A1 (en) | Two Phase Commit With Grid Elements | |
CN101667113A (zh) | 一种多线程日志记录方法及装置 | |
US11720607B2 (en) | System for lightweight objects | |
Gold et al. | KVM/370 in retrospect | |
CN106021566A (zh) | 一种提高单台数据库并发处理能力的方法、装置及系统 | |
CN114817974A (zh) | 动态数据脱敏方法及系统、数据安全处理方法及系统 | |
CN114428776A (zh) | 一种面向时序数据的索引分区管理方法和系统 | |
CN114239035A (zh) | 基于区块链的协作流程执行系统及其数据访问控制方法 | |
US9009731B2 (en) | Conversion of lightweight object to a heavyweight object | |
US8886675B2 (en) | Method and system for managing data clusters | |
US20120151467A1 (en) | Providing com access to an isolated system | |
CN113704285A (zh) | 基于权限的检索方法及装置、设备 | |
CN114020446A (zh) | 一种跨多引擎的路由处理方法、装置、设备及存储介质 | |
CN101996291A (zh) | 数据操作方法及装置 | |
US7987470B1 (en) | Converting heavyweight objects to lightwight objects | |
CN116578247B (zh) | 一种基于元数据的数据存取方法及系统 | |
CN117827802A (zh) | 一种基于Hbase的数据处理系统、方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110817 |