CN102999522A - 一种数据存储方法和装置 - Google Patents
一种数据存储方法和装置 Download PDFInfo
- Publication number
- CN102999522A CN102999522A CN2011102742816A CN201110274281A CN102999522A CN 102999522 A CN102999522 A CN 102999522A CN 2011102742816 A CN2011102742816 A CN 2011102742816A CN 201110274281 A CN201110274281 A CN 201110274281A CN 102999522 A CN102999522 A CN 102999522A
- Authority
- CN
- China
- Prior art keywords
- service request
- buffer memory
- database
- object data
- module
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据存储方法和装置,其中的数据存储方法包括:在业务请求的处理过程中,依据数据库对象ID和线程ID生成键值,其中,所述线程ID为处理所述业务请求的线程ID;将所述键值和所述键值中数据库对象ID对应的对象数据进行关联,并存储至缓存。本申请在业务请求的处理过程中存储对象数据,以减少数据库访问次数,提高业务请求处理的并发性和效率。
Description
技术领域
本申请涉及数据存储技术领域,特别是涉及一种数据存储方法和装置。
背景技术
目前,一些在线应用程序在处理业务请求的过程中,通常需要动态从数据库读取响应记录然后进行逻辑处理。对于某些大规模的在线应用程序而言,一个业务请求通常会涉及到两个或多个模块的协同处理,这些模块在处理同一业务请求的时候很难避免多次从数据库重复读取对象数据。例如,某个业务请求需要模块1和模块2的协同处理,其中,模块1和模块2分别为不同的开发人员开发的模块,其提供的输入参数均是数据库对象ID(标识符,IDentity);这样,当这个业务请求的处理经过模块1的时候,模块1根据数据库对象ID从数据库读取对象数据,而当该处理经过模块2的时候,模块2又不得不从数据库再读取一次相同的对象数据。
为了提高业务请求处理的效率,一种现有技术采用数据缓存机制,即在模块1读取数据完成后,将数据库对象ID和相应的对象数据关联存储至KV(键/值,Key/Value)Cache(缓存);这样,当该处理经过模块2的时候,模块2首先尝试从Cache中读取数据,如果读取成功则无需再从数据库中读取数据;该数据缓存机制能够减少在大量的数据库读取动作中因I/O(输入/输出,Input/Output)引起的资源消耗。
但是,为了确保模块2从Cache中读取到的数据和数据库中数据的一致性,必须针对Cache采取加锁机制,否则模块2从该Cache读取到的数据可能是过时的和不一致的,从而导致模块2的处理结果错误。但是,这种加锁机制又会引发新的性能问题,因为一旦对该Cache申请了加锁,其它业务请求的处理不得不阻塞等待,直至该Cache被解锁或被释放,而所述阻塞等待会反过来影响业务请求处理的并发性和效率。
发明内容
本申请所要解决的技术问题是,提供一种数据存储方法和装置,其在业务请求的处理过程中存储对象数据,以减少数据库访问次数,提高业务请求处理的并发性和效率。
为了解决上述问题,本申请一种数据存储方法,包括:
在业务请求的处理过程中,依据数据库对象ID和线程ID生成键值,其中,所述线程ID为处理所述业务请求的线程ID;
将所述键值和所述键值中数据库对象ID对应的对象数据进行关联,并存储至缓存。
优选的,所述方法还包括:
在所述业务请求的处理过程中,如果需要用到某一数据库对象ID对应的对象数据,则依据该数据库对象ID和所述线程ID生成查找键值;
依据所述查找键值在所述缓存中进行查找,若缓存命中,则返回与所述查找键值相应的对象数据,若缓存命不中,则依据所述查找键值中的数据库对象ID从数据库中读取相应的对象数据并返回。
优选的,所述方法还包括:
在所述业务请求的处理过程中,如果对所述对象数据进行修改,则对所述缓存中存储的相同对象数据进行更新。
优选的,所述方法还包括:
在所述业务请求的处理结束时,对所述缓存进行回收。
优选的,所述方法还包括:
在所述业务请求的处理结束时,首先依据数据库对象ID,将所述缓存中存储的相应对象数据同步到数据库,然后对所述缓存进行回收。
另一方面,本申请还公开了一种数据存储装置,包括:
键值生成模块,用于在业务请求的处理过程中,依据数据库对象ID和线程ID生成键值,其中,所述线程ID为处理所述业务请求的线程ID;及
存储模块,用于将所述键值和所述键值中数据库对象ID对应的对象数据进行关联,并存储至缓存。
优选的,所述方法还包括:
查找键值生成模块,用于在所述业务请求的处理过程中,如果需要用到某一数据库对象ID对应的对象数据,则依据该数据库对象ID和所述线程ID生成查找键值;
查找模块,用于依据所述查找键值在所述缓存中进行查找,若缓存命中,则触发返回模块,否则触发读取模块;
返回模块,用于在缓存命中时,返回与所述查找键值相应的对象数据;
读取模块,用于在缓存命不中时,依据所述查找键值中的数据库对象ID从数据库中读取相应的对象数据并返回。
优选的,所述方法还包括:
更新模块,用于在所述业务请求的处理过程中,如果对所述对象数据进行修改,则对所述缓存中存储的相同对象数据进行更新。
优选的,所述方法还包括:
第一回收模块,用于在所述业务请求的处理结束时,对所述缓存进行回收。
优选的,所述方法还包括:
同步模块,用于在所述业务请求的处理结束时,依据数据库对象ID,将所述缓存中存储的相应对象数据同步到数据库;
第二回收模块,用于在所述同步完成后,对所述缓存进行回收。
与现有技术相比,本申请具有以下优点:
本申请在业务请求的处理过程中,依据数据库对象ID和线程ID生成键值(Key),并将所述键值和所述键值中数据库对象ID对应的对象数据(Value)进行关联,存储至缓存。
首先,对于处理业务请求的线程而言,其具有唯一的线程ID,故本申请的存储使得各业务请求的处理具有各自不同的、相互独立和相互隔离的Cache地址空间,对于当前业务请求而言,则能够避免其它业务请求对自身Cache地址空间的干扰,在不加锁的情况下,也能够确保当前业务请求的后续处理从Cache中读取到的数据和数据库中数据的一致性。
其次,由于各业务请求的处理具有各自不同的相互独立和相互隔离的Cache地址空间,这样,多个业务请求的处理线程不再共享Cache地址空间,也就能够避免Cache地址空间请求失效,以及不得不阻塞等待直至该Cache被解锁或被释放的情况,所以本申请不会影响业务请求处理的并发性和效率。
再者,针对一些在线应用程序的中间计算结果是不能被简单的清除掉的特性,本申请在所述业务请求的整个处理过程中,还可以将针对对象数据进行的所有修改都存储在缓存中,由于后续处理能够用到前序处理的结果数据,因此,能够在一个业务请求的处理生命周期里始终保证该块缓存的可用性,既能够保证对象数据在内存中的可用性,又能够保证内存的及时回收。
附图说明
图1是本申请一种数据存储方法实施例的流程图;
图2是本申请一种在线应用程序在业务请求的处理过程中使用Memcached缓存对象数据的流程图;
图3是本申请一种数据存储装置实施例的结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
在线应用程序通常会收到很多并发的业务请求,为了提高业务请求处理的并发性和效率,其往往分配多个线程去并发执行这些业务请求;这些多线程看上去似乎在并行执行它们各自的工作,但实际上这些多线程共享地址空间,也即,多个线程能够读写相同的变量或数据结构。
这样,在业务请求1的处理过程中,如果不申请加锁,则Cache中存储的对象数据会被其它业务请求共享,而一旦其它业务请求修改了Cache中存储的对象数据,则业务请求1的后续处理(如模块2)从Cache读取到的数据可能是过时的,和数据库中数据相比不一致的。
本申请实施例的核心构思之一在于,将各业务请求的Cache地址空间隔离开来,具体而言,在业务请求的处理过程中,依据数据库对象ID和线程ID生成键值,将所述键值和所述键值中数据库对象ID对应的对象数据进行关联,并存储至缓存。
由于各业务请求的处理具有各自不同的、独立的Cache地址空间,对于当前业务请求而言,能够避免其它业务请求对自身Cache地址空间的干扰,不仅能够确保当前业务请求的后续处理从Cache中读取到的数据和数据库中数据的一致性,而且能够避免加锁带来的性能问题。
参照图1,其示出了本申请一种数据存储方法实施例的流程图,具体可以包括:
步骤101、在业务请求的处理过程中,依据数据库对象ID和线程ID生成键值,其中,所述线程ID为处理所述业务请求的线程ID;
步骤102、将所述键值和所述键值中数据库对象ID对应的对象数据进行关联,并存储至缓存。
在实际应用中,在线应用程序通常会收到很多并发的业务请求,为了提高业务请求处理的并发性和效率,其往往分配多个线程去并发执行这些业务请求。这里,在线应用程序主要指带网络连接或需要网络连接才能使用的程序,其可以是B/S(浏览器/服务器,Browser/Server)结构,如网络邮箱、网络博客、网络微博、网络论坛、即时通讯等需要浏览器支持的程序。本申请对具体的在线应用程序不加以限制。
至于如何获取各线程的线程ID,本申请可以提供如下方法:
方法一、调用GetCurrentThreadId()函数,该函数的返回值就是当前线程一个唯一的线程ID(标识符,IDentity);
方法二、在创建线程时获得相应的线程ID,例如,使用如下函数创建新的线程,m_hThread=::CreateThread(NULL,0,MyThreadProc,this,0,&m_threadID),该函数的最后一个参数就是线程ID。
当然,除了上述方法外,本领域技术人员还可以采用其它方法来获取各线程的线程ID,本申请对具体的获取各线程的线程ID的方法不加以限制。
本申请在业务请求的处理过程中,依据数据库对象ID和线程ID生成键值(Key),并将所述键值和所述键值中数据库对象ID对应的对象数据(Value)进行关联,存储至缓存。
对于处理业务请求的线程而言,其具有唯一的线程ID,故本申请的存储使得各业务请求的处理具有各自不同的、独立的Cache地址空间,对于当前业务请求而言,则能够避免其它业务请求对自身Cache地址空间的干扰,在不加锁的情况下,也能够确保当前业务请求的后续处理从Cache中读取到的数据和数据库中数据的一致性;
进一步,由于各业务请求的处理具有各自不同的、独立的Cache地址空间,这样,多个业务请求的处理线程不再共享Cache地址空间,也就能够避免Cache地址空间请求失效,以及不得不阻塞等待直至该Cache被解锁或被释放的情况,所以本申请不会影响业务请求处理的并发性和效率。
在本申请的一种优选实施例中,所述方法还可以包括:
在所述业务请求的处理过程中,如果需要用到某一数据库对象ID对应的对象数据,则依据该数据库对象ID和所述线程ID生成查找键值;
依据所述查找键值在所述缓存中进行查找,若缓存命中,则返回与所述查找键值相应的对象数据,若缓存命不中,则依据所述查找键值中的数据库对象ID从数据库中读取相应的对象数据并返回。
在具体实现中,可采用分布式内存对象缓存系统来实现所述缓存方案。例如,Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap(哈希图)。其守护进程(daemon)是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
参照图2,其示出了本申请一种在线应用程序在业务请求的处理过程中使用Memcached缓存对象数据的流程图。图中的在线应用程序为Web(网页)应用程序,其将对象数据保存到RDBMS(关系型数据库管理系统,relational database management system)中。在业务请求的处理过程中,在首次访问时,应用服务器从RDBMS中取得对象数据后并保存至Memcached,在第二次及以后访问时,应用服务器会从Memcached中取得对象数据并在浏览器中显示。总之,Memcached通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
由于查找键值是依据数据库对象ID和所述线程ID生成的,而线程ID对于一个业务请求而言是唯一的,也即一个业务请求不会知道其它业务请求的线程ID,更不会访问到其它业务请求的Cache地址空间,从而能够保证各业务请求的Cache地址空间的相互独立性、相互隔离性和抗干扰性。
在本申请的另一种优选实施例中,所述方法还可以包括:
在所述业务请求的处理过程中,如果对所述对象数据进行修改,则对所述缓存中存储的相同对象数据进行更新。
假设某个业务请求需要模块1和模块2的协同处理,也即,当这个业务请求的处理经过模块1的时候,模块1根据数据库对象ID从数据库读取对象数据,并且,依据数据库对象ID和线程ID生成键值,将所述键值和所述键值中数据库对象ID对应的对象数据进行关联,存储在缓存;那么,如果在模块1在处理过程中对所述对象数据进行修改,例如将价格ID的数据值从“1”修改为“2”,则缓存中应对这个价格ID的数据值进行同步,使该业务请求的后续模块(如模块2)用到模块1的处理结果。
现有技术在使用KV Cache时,由于Cache的总大小是有限的,这样,在基于LRU(最近最少使用,Least Recently Used)原理进行内存管理时,很有可能把Cache的对象数据清空,导致模块1的计算结果被清除掉;为了避免这种问题,模块1在修改内存后还需要立即修改数据库。但是,这样修改的同时又得修改数据库,降低了性能,显然会使Cache的应用失去了意义。
为了既保证对象数据在内存中的可用性又保证内存的及时回收,在本申请的再一种优选实施例中,所述方法还可以包括:在所述业务请求的处理结束时,对所述缓存进行回收。
在实际中,可以在所述业务请求的结束函数中,进行本次业务请求的处理过程中存储到缓存的对象数据的回收,所述回收也即将驻留在缓存中的对象数据从内存中释放出来,以提高系统内存资源的利用率,进而提升系统性能。
进一步,在所述业务请求的处理过程中,如果对所述对象数据进行修改,则对所述缓存中存储的相同对象数据进行更新的情况下,所述方法还可以包括:
在所述业务请求的处理结束时,首先依据数据库对象ID,将所述缓存中存储的相应对象数据同步到数据库,然后对所述缓存进行回收。
因为一些在线应用程序的中间计算结果是不能被简单的清除掉的,本优选实施例在所述业务请求的整个处理过程中,将针对对象数据进行的所有修改都存储在缓存中,后续处理能够用到前序处理的结果数据,因此,能够在一个业务请求的处理生命周期里始终保证该块缓存的可用性。
为使本领域技术人员更好地理解本申请,以下通过一个具体的业务处理的流程示例来说明本申请的数据存储方法在实际用的应用;
所述示例涉及某个业务请求需要模块1和模块2的协同处理,其中,当这个业务请求的处理经过模块1和模块2的时候,都需要用到某一数据库对象ID对应的对象数据;所述业务处理的流程具体可以包括:
步骤S1、当这个业务请求的处理经过模块1的时候,依据数据库对象ID从数据库中读取相应的对象数据;
步骤S2、获取处理所述业务请求的线程ID;
步骤S3、依据所述数据库对象ID和线程ID生成键值;
步骤S4、将所述键值和所述键值中数据库对象ID对应的对象数据进行关联,并存储至缓存;
步骤S5、模块1在处理所述业务请求的过程中,对所述数据库对象ID对应的对象数据进行修改,并对所述缓存中存储的相同对象数据进行更新;
步骤S6、模块2处理所述业务请求需要用到所述数据库对象ID对应的对象数据,于是依据所述数据库对象ID和所述线程ID生成查找键值;
步骤S7、依据所述查找键值在所述缓存中进行查找,缓存命中,且返回与所述查找键值相应的对象数据;
步骤S8、模块2在处理所述业务请求的过程中,对所述数据库对象ID对应的对象数据进行修改,并对所述缓存中存储的相同对象数据进行更新;
步骤S9、在所述业务请求的处理结束时,首先依据数据库对象ID,将所述缓存中存储的相应对象数据同步到数据库,然后对所述缓存进行回收。
需要说明的是,上述示例中2个模块的协同处理,模块1和模块2分别修改对象数据等整个业务处理的流程均是作为示例,实际上,本领域技术人员可以根据实际需求,灵活地将本申请的数据存储方法应用到业务处理流程中,本申请对此不加以限制。
与前述方法实施例相应,本申请还公开了一种数据存储装置实施例,参照图3,具体可以包括:
键值生成模块301,用于在业务请求的处理过程中,依据数据库对象ID和线程ID生成键值,其中,所述线程ID为处理所述业务请求的线程ID;及
存储模块302,用于将所述键值和所述键值中数据库对象ID对应的对象数据进行关联,并存储至缓存。
在本申请的一种优选实施例中,所述装置还可以包括:
查找键值生成模块,用于在所述业务请求的处理过程中,如果需要用到某一数据库对象ID对应的对象数据,则依据该数据库对象ID和所述线程ID生成查找键值;
查找模块,用于依据所述查找键值在所述缓存中进行查找,若缓存命中,则触发返回模块,否则触发读取模块;
返回模块,用于在缓存命中时,返回与所述查找键值相应的对象数据;
读取模块,用于在缓存命不中时,依据所述查找键值中的数据库对象ID从数据库中读取相应的对象数据并返回。
在本申请的另一种优选实施例中,所述装置还可以包括:
更新模块,用于在所述业务请求的处理过程中,如果对所述对象数据进行修改,则对所述缓存中存储的相同对象数据进行更新。
在本申请的再一种优选实施例中,所述装置还可以包括:
第一回收模块,用于在所述业务请求的处理结束时,对所述缓存进行回收。
在本申请的一种优选实施例中,所述装置还可以包括:
同步模块,用于在所述业务请求的处理结束时,依据数据库对象ID,将所述缓存中存储的相应对象数据同步到数据库;
第二回收模块,用于在所述同步完成后,对所述缓存进行回收。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本申请所提供的一种数据存储方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
在业务请求的处理过程中,依据数据库对象ID和线程ID生成键值,其中,所述线程ID为处理所述业务请求的线程ID;
将所述键值和所述键值中数据库对象ID对应的对象数据进行关联,并存储至缓存。
2.如权利要求1所述的方法,其特征在于,还包括:
在所述业务请求的处理过程中,如果需要用到某一数据库对象ID对应的对象数据,则依据该数据库对象ID和所述线程ID生成查找键值;
依据所述查找键值在所述缓存中进行查找,若缓存命中,则返回与所述查找键值相应的对象数据,若缓存命不中,则依据所述查找键值中的数据库对象ID从数据库中读取相应的对象数据并返回。
3.如权利要求1所述的方法,其特征在于,还包括:
在所述业务请求的处理过程中,如果对所述对象数据进行修改,则对所述缓存中存储的相同对象数据进行更新。
4.如权利要求1所述的方法,其特征在于,还包括:
在所述业务请求的处理结束时,对所述缓存进行回收。
5.如权利要求3所述的方法,其特征在于,还包括:
在所述业务请求的处理结束时,首先依据数据库对象ID,将所述缓存中存储的相应对象数据同步到数据库,然后对所述缓存进行回收。
6.一种数据存储装置,其特征在于,包括:
键值生成模块,用于在业务请求的处理过程中,依据数据库对象ID和线程ID生成键值,其中,所述线程ID为处理所述业务请求的线程ID;及
存储模块,用于将所述键值和所述键值中数据库对象ID对应的对象数据进行关联,并存储至缓存。
7.如权利要求6所述的装置,其特征在于,还包括:
查找键值生成模块,用于在所述业务请求的处理过程中,如果需要用到某一数据库对象ID对应的对象数据,则依据该数据库对象ID和所述线程ID生成查找键值;
查找模块,用于依据所述查找键值在所述缓存中进行查找,若缓存命中,则触发返回模块,否则触发读取模块;
返回模块,用于在缓存命中时,返回与所述查找键值相应的对象数据;
读取模块,用于在缓存命不中时,依据所述查找键值中的数据库对象ID从数据库中读取相应的对象数据并返回。
8.如权利要求6所述的装置,其特征在于,还包括:
更新模块,用于在所述业务请求的处理过程中,如果对所述对象数据进行修改,则对所述缓存中存储的相同对象数据进行更新。
9.如权利要求6所述的装置,其特征在于,还包括:
第一回收模块,用于在所述业务请求的处理结束时,对所述缓存进行回收。
10.如权利要求8所述的装置,其特征在于,还包括:
同步模块,用于在所述业务请求的处理结束时,依据数据库对象ID,将所述缓存中存储的相应对象数据同步到数据库;
第二回收模块,用于在所述同步完成后,对所述缓存进行回收。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110274281.6A CN102999522B (zh) | 2011-09-15 | 2011-09-15 | 一种数据存储方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110274281.6A CN102999522B (zh) | 2011-09-15 | 2011-09-15 | 一种数据存储方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102999522A true CN102999522A (zh) | 2013-03-27 |
CN102999522B CN102999522B (zh) | 2016-09-14 |
Family
ID=47928096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110274281.6A Active CN102999522B (zh) | 2011-09-15 | 2011-09-15 | 一种数据存储方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102999522B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870393A (zh) * | 2013-07-09 | 2014-06-18 | 携程计算机技术(上海)有限公司 | 缓存管理方法及系统 |
CN104391876A (zh) * | 2014-10-30 | 2015-03-04 | 北京思特奇信息技术股份有限公司 | 一种静态数据存储及查询方法及系统 |
CN105373541A (zh) * | 2014-08-22 | 2016-03-02 | 博雅网络游戏开发(深圳)有限公司 | 数据库的数据操作请求的处理方法和系统 |
CN105389190A (zh) * | 2015-12-08 | 2016-03-09 | 华为技术有限公司 | 一种操作系统启动的方法、装置及系统 |
CN105608197A (zh) * | 2015-12-25 | 2016-05-25 | Tcl集团股份有限公司 | 一种高并发下Memcache数据的获取方法及系统 |
CN105871960A (zh) * | 2015-01-22 | 2016-08-17 | 阿里巴巴集团控股有限公司 | 调用数据共享的方法、装置及设备 |
CN105930492A (zh) * | 2016-05-05 | 2016-09-07 | 北京思特奇信息技术股份有限公司 | 一种将关系表数据载入缓存的系统和方法 |
WO2017032240A1 (zh) * | 2015-08-24 | 2017-03-02 | 阿里巴巴集团控股有限公司 | 移动终端的数据存储方法和装置 |
CN103853504B (zh) * | 2014-02-12 | 2017-04-26 | 上海爱数信息技术股份有限公司 | 一种缓存系统数据存取方法 |
CN106875262A (zh) * | 2017-02-28 | 2017-06-20 | 网易无尾熊(杭州)科技有限公司 | 用于订单处理的方法、装置和计算机可读存储介质 |
CN107562891A (zh) * | 2017-09-05 | 2018-01-09 | 荷花科技(北京)有限公司 | 数据库操作方法及装置 |
CN108345495A (zh) * | 2017-01-22 | 2018-07-31 | 北京国双科技有限公司 | 一种多线程的加锁方法及服务器 |
CN109299125A (zh) * | 2018-10-31 | 2019-02-01 | 中国银行股份有限公司 | 数据库更新方法及装置 |
CN109388619A (zh) * | 2017-08-11 | 2019-02-26 | 鼎捷软件股份有限公司 | 共享数据系统及共享数据方法 |
CN110232066A (zh) * | 2019-06-06 | 2019-09-13 | 南威互联网科技集团有限公司 | 一种获取列表数据请求的对象缓存方法及系统 |
TWI709041B (zh) * | 2017-01-19 | 2020-11-01 | 開曼群島商創新先進技術有限公司 | 移動終端的資料儲存方法和裝置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271410A (zh) * | 2008-05-09 | 2008-09-24 | 华为技术有限公司 | 一种数据共享的方法、系统和装置 |
CN101916226A (zh) * | 2010-08-31 | 2010-12-15 | 山东中创软件商用中间件股份有限公司 | 基于线程信息的多线程并发执行跟踪方法及系统 |
-
2011
- 2011-09-15 CN CN201110274281.6A patent/CN102999522B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271410A (zh) * | 2008-05-09 | 2008-09-24 | 华为技术有限公司 | 一种数据共享的方法、系统和装置 |
CN101916226A (zh) * | 2010-08-31 | 2010-12-15 | 山东中创软件商用中间件股份有限公司 | 基于线程信息的多线程并发执行跟踪方法及系统 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870393A (zh) * | 2013-07-09 | 2014-06-18 | 携程计算机技术(上海)有限公司 | 缓存管理方法及系统 |
CN103853504B (zh) * | 2014-02-12 | 2017-04-26 | 上海爱数信息技术股份有限公司 | 一种缓存系统数据存取方法 |
CN105373541A (zh) * | 2014-08-22 | 2016-03-02 | 博雅网络游戏开发(深圳)有限公司 | 数据库的数据操作请求的处理方法和系统 |
CN105373541B (zh) * | 2014-08-22 | 2019-03-22 | 博雅网络游戏开发(深圳)有限公司 | 数据库的数据操作请求的处理方法和系统 |
CN104391876A (zh) * | 2014-10-30 | 2015-03-04 | 北京思特奇信息技术股份有限公司 | 一种静态数据存储及查询方法及系统 |
CN105871960B (zh) * | 2015-01-22 | 2020-02-28 | 阿里巴巴集团控股有限公司 | 调用数据共享的方法、装置及设备 |
CN105871960A (zh) * | 2015-01-22 | 2016-08-17 | 阿里巴巴集团控股有限公司 | 调用数据共享的方法、装置及设备 |
CN106484691A (zh) * | 2015-08-24 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 移动终端的数据存储方法和装置 |
WO2017032240A1 (zh) * | 2015-08-24 | 2017-03-02 | 阿里巴巴集团控股有限公司 | 移动终端的数据存储方法和装置 |
US10776323B2 (en) | 2015-08-24 | 2020-09-15 | Alibaba Group Holding Limited | Data storage for mobile terminals |
CN106484691B (zh) * | 2015-08-24 | 2019-12-10 | 阿里巴巴集团控股有限公司 | 移动终端的数据存储方法和装置 |
CN105389190A (zh) * | 2015-12-08 | 2016-03-09 | 华为技术有限公司 | 一种操作系统启动的方法、装置及系统 |
CN105389190B (zh) * | 2015-12-08 | 2019-05-24 | 华为技术有限公司 | 一种操作系统启动的方法、装置及系统 |
CN105608197B (zh) * | 2015-12-25 | 2019-09-10 | Tcl集团股份有限公司 | 一种高并发下Memcache数据的获取方法及系统 |
CN105608197A (zh) * | 2015-12-25 | 2016-05-25 | Tcl集团股份有限公司 | 一种高并发下Memcache数据的获取方法及系统 |
CN105930492A (zh) * | 2016-05-05 | 2016-09-07 | 北京思特奇信息技术股份有限公司 | 一种将关系表数据载入缓存的系统和方法 |
TWI709041B (zh) * | 2017-01-19 | 2020-11-01 | 開曼群島商創新先進技術有限公司 | 移動終端的資料儲存方法和裝置 |
CN108345495A (zh) * | 2017-01-22 | 2018-07-31 | 北京国双科技有限公司 | 一种多线程的加锁方法及服务器 |
CN106875262A (zh) * | 2017-02-28 | 2017-06-20 | 网易无尾熊(杭州)科技有限公司 | 用于订单处理的方法、装置和计算机可读存储介质 |
CN106875262B (zh) * | 2017-02-28 | 2021-03-26 | 阿里巴巴(中国)有限公司 | 用于订单处理的方法、装置和计算机可读存储介质 |
CN109388619A (zh) * | 2017-08-11 | 2019-02-26 | 鼎捷软件股份有限公司 | 共享数据系统及共享数据方法 |
CN109388619B (zh) * | 2017-08-11 | 2021-11-02 | 鼎捷软件股份有限公司 | 共享数据系统及共享数据方法 |
CN107562891A (zh) * | 2017-09-05 | 2018-01-09 | 荷花科技(北京)有限公司 | 数据库操作方法及装置 |
CN109299125A (zh) * | 2018-10-31 | 2019-02-01 | 中国银行股份有限公司 | 数据库更新方法及装置 |
CN110232066A (zh) * | 2019-06-06 | 2019-09-13 | 南威互联网科技集团有限公司 | 一种获取列表数据请求的对象缓存方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102999522B (zh) | 2016-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102999522A (zh) | 一种数据存储方法和装置 | |
CA2981476C (en) | Processing database transactions in a distributed computing system | |
EP2932370B1 (en) | System and method for performing a transaction in a massively parallel processing database | |
US9208191B2 (en) | Lock-free, scalable read access to shared data structures | |
US8732143B2 (en) | Reducing locking during database transactions | |
Lee et al. | High-Performance Transaction Processing in SAP HANA. | |
WO2014093920A2 (en) | Distributed sql query processing using key-value storage system | |
CN113420052B (zh) | 一种多级分布式缓存系统及方法 | |
EP3069276A1 (en) | Method and apparatus of maintaining data for online analytical processing in a database system | |
CN104123356A (zh) | 一种大数据量下提高网页响应的方法 | |
CN106354732A (zh) | 一种支持并发协同的离线数据版本冲突解决方法 | |
US10275289B2 (en) | Coexistence of message-passing-like algorithms and procedural coding | |
US10650021B2 (en) | Managing data operations in an integrated database system | |
CN101339527B (zh) | 影子内存的备份方法及装置 | |
US20170262487A1 (en) | Using Message-Passing With Procedural Code In A Database Kernel | |
US11423003B2 (en) | Optimistic concurrency control for database transactions | |
CN115617855A (zh) | 一种缓存控制方法、装置、电子设备及存储介质 | |
US20180067859A1 (en) | Selective allocation of cpu cache slices to database objects | |
Choi et al. | Concurrency control method to provide transactional processing for cloud data management system | |
Liu et al. | Distributed index mechanism based on Hadoop | |
Gu et al. | A Distributed Index Tree and its Concurrency Control Algorithm | |
Weijie et al. | A Distributed Index Tree and Its Concurrency Control Algorithm | |
CN115185957A (zh) | 一种轻量级实时内存数据库事务并发控制方法及装置 | |
Lokegaonkar et al. | INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET) | |
Senthilkumar et al. | Survey Paper on Concurrency control mechanisms in a Distributed Database Environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1179004 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1179004 Country of ref document: HK |