CN105022590A - 共享存储器数据存取方法及装置 - Google Patents

共享存储器数据存取方法及装置 Download PDF

Info

Publication number
CN105022590A
CN105022590A CN201410179307.2A CN201410179307A CN105022590A CN 105022590 A CN105022590 A CN 105022590A CN 201410179307 A CN201410179307 A CN 201410179307A CN 105022590 A CN105022590 A CN 105022590A
Authority
CN
China
Prior art keywords
storage space
data
active
active storage
mark
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
Application number
CN201410179307.2A
Other languages
English (en)
Other versions
CN105022590B (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410179307.2A priority Critical patent/CN105022590B/zh
Publication of CN105022590A publication Critical patent/CN105022590A/zh
Application granted granted Critical
Publication of CN105022590B publication Critical patent/CN105022590B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明涉及一种数据存取方法及装置,所述方法包括以下步骤:在存储器中创建第一存储空间、第二存储空间、以及管理器存储空间,并分别将数据文件加载至存储空间;在管理器存储空间中存储用于标记活动存储空间的标识以及活动存储空间的大小,活动存储空间为第一存储空间与第二存储空间其中处于使用状态的存储空间;在接收到数据更新请求后根据标识获取非活动存储空间;根据所述数据更新请求更新所述非活动存储空间,并将所述管理器存储空间内的活动存储空间的标识更新为所述非活动存储空间的标识。上述方法及装置可以在不影响其它对于数据操作的情况下高效、减少出错率的更新数据。

Description

共享存储器数据存取方法及装置
技术领域
本发明涉及计算机存储技术领域,特别涉及一种共享存储器数据存取方法及装置。
背景技术
现在信息技术发展很快,信息量也越来越大。例如,对于当今世界上流行的各种社交网络服务,用户都到达了几亿、甚至十亿的量级。如何实现如此多数量用户的数据的查询对于现有的计算机系统来说提出了挑战。一般来说,为了提升数据访问的效率,这些系统的服务数据一般是直接存储在存取速率更快的内存中。
另一方面,由于用户数据可能发生随时变化,也就是说数据的内容也是不断需要更新。因此,如何在不影响现有服务的情况下进行数据的更新就成为现有技术中亟待解决的技术问题。
发明内容
有鉴于此,本发明提供一种共享存储器数据存取方法及装置,可以高效、减少出错率的更新数据。
一种数据存取方法,包括以下步骤:
在存储器中创建第一存储空间、第二存储空间、以及管理器存储空间,并分别将数据文件加载至所述第一存储空间与第二存储空间中;
在所述管理器存储空间中存储用于标记活动存储空间的标识以及所述活动存储空间的大小,所述活动存储空间为所述第一存储空间与第二存储空间其中处于使用状态的存储空间;
在接收到数据更新请求后根据所述标识获取非活动存储空间,所述非活动存储空间为所述第一存储空间与第二存储空间中不同于所述活动存储空间的存储空间;以及
根据所述数据更新请求更新所述非活动存储空间,并将所述管理器存储空间内的活动存储空间的标识更新为所述非活动存储空间的标识。
一种数据存取装置,包括创建模块、管理模块、更新模块、以及切换模块。
创建模块用于在存储器中创建第一存储空间、第二存储空间、以及管理器存储空间,并分别将数据文件加载至所述第一存储空间与第二存储空间中。
管理模块用于在所述管理器存储空间中存储用于标记活动存储空间的标识以及所述活动存储空间的大小,所述活动存储空间为所述第一存储空间与第二存储空间其中处于使用状态的存储空间。
更新模块用于在接收到数据更新请求后根据所述标识获取非活动存储空间,所述非活动存储空间为所述第一存储空间与第二存储空间中不同于所述活动存储空间的存储空间。
切换模块用于根据所述数据更新请求更新所述非活动存储空间,并将所述管理器存储空间内的活动存储空间的标识更新为所述非活动存储空间的标识。
根据上述的方法及装置,通过在非活动存储空间内先完成数据更新,在更新完成后,将活动存储空间切换的方式,可以在数据服务不中断的情形下实现数据更新。进一步地,通过管理器存储空间,实现对两个存储空间的管理,从而可通过应用程序接口实现数据更新的过程,降低数据更新过程的耦合度以及复杂程度。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1为一种计算机的结构框图。
图2为图1所示的计算机的存储器内存储空间分配示意图。
图3为第一实施例提供的一种共享存储器数据存取方法的流程图。
图4为第二实施例提供的一种共享存储器数据存取方法的流程图。
图5为第三实施例提供的一种共享存储器数据存取方法的流程图。
图6为第四实施例提供的一种共享存储器数据存取装置的结构框图。
图7为第五实施例提供的一种共享存储器数据存取装置的结构框图。
图8为第六实施例提供的一种共享存储器数据存取装置的结构框图。
具体实施方式
为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。
图1示出了一种计算机的结构框图。如图1所示,计算机100包括一个或多个(图中仅示出一个)存储器102、存储控制器104、一个或多个处理器106、外设接口108、以及外部设备110。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对计算机100的结构造成限定。例如,计算机100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器102可进一步包括相对于处理器106远程设置的存储器,这些远程存储器可以通过网络连接至计算机100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
外设接口108将计算机100的输入/输出外设耦合至处理器106以及存储器102。存储器102可用于存储软件程序以及数据,处理器106通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理。
存储器102内存储的软件程序与模块例如可包括操作系统122、服务模块124、应用程序编程接口126以及存储管理模块128。操作系统122例如可为Unix、Linux、Windows等操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。服务模块124、应用程序编程接口126以及存储管理模块128运行在操作系统122的基础上,其中,服务模块124用于根据其他计算机发送的数据处理请求进行数据处理并返回处理结果,例如,进行数据查询或者更新存储器102内的数据,而进行数据查询或者更新数据是通过应用程序编程接口126实现的,存储管理模块128用于通过应用程序编程接口126进行存储空间的管理操作以及数据更新操作。
应用程序编程接口126具体可包括以下接口:用于进行初始化的接口、用于关联存储空间的接口、用于创建存储空间的接口、用于切换活动存储空间的接口、以及用于查询活动存储空间的接口。
以下接口,可分别采用C语言伪代码描述如下:
用于进行初始化的接口:int shm_init(struct ShmSwitch*api,intcreate_shm_manager,int shm_manager_key)
用于关联存储空间的接口:int set_data_mem_key(struct ShmSwitch*api,int data_key0,int data_key1)
用于创建存储空间的接口:void*create_data_mem(struct ShmSwitch*api,int data_size)
用于切换活动存储空间的接口:int switch_data_mem(structShmSwitch*api,int data_size)
用于查询活动存储空间的接口:void*get_inuse_data(structShmSwitch*api)。
其中,struct ShmSwitch为用于管理三块存储空间的结构体类型。参阅图2,其为上述的三块存储空间的示意图。第一存储空间201、第二存储空间202、以及管理器存储空间203分别是存储器102内的三个独立的存储空间。在一个实施方式中,第一存储空间201、第二存储空间202、以及管理器存储空间203为由操作系统管理的共享内存。struct ShmSwitch内可存储具体的存储空间(如第一存储空间201与第二存储空间202)与该存储空间的标识符之间的映射关系,由此,根据给定的标识符,可以获取对应的存储空间的索引信息(如内存地址以及大小信息),进而可以获取与标识符对应的存储空间。第一存储空间201的标识符例如可为Key0,而第二存储空间202的标识符例如可为Key1。
进一步地,如图2所示,管理器存储空间内存储有以下信息:第一标识符、第二标识符、以及活动存储空间索引。其中,第一标识符例如可为第一存储空间201的标识符,第二标识符例如可为第二存储空间202的标识符,活动存储空间索引内包括用于表示第一标识符与第二标识符中哪一个是当前处于使用状态的存储空间的标识符的信息(即活动存储空间标识符的索引A_Index)、以及当前处于使用状态的存储空间的大小(Data_Size)。在一个实施方式中,由于管理器存储空间内仅存储两个标识符,而处于使用状态的存储空间只会有一个,不是第一存储空间就201就是第二存储空间202。因此,最少使用一个比特(不是0就是1)的信息来区分哪一个存储空间是处于使用状态的存储空间(活动存储空间)。例如,使用0表示与第一标识符对应的存储空间为活动存储空间,使用1表示与第二标识符对应的存储空间为活动存储空间。当然,本实施例并不限于仅使用一个字节,例如,也可以使用两个字节来表示哪个存储空间是活动存储空间,此时可用00表示与第一标识符对应的存储空间为活动存储空间,01表示与第二标识符对应的存储空间为活动存储空间,10表示与第一标识符或第二标识会对应的存储空间都不是活动存储空间。
活动存储空间索引可占4个字节大小(一个整形数所占用的存储空间)。如上所述,当采用两比特存储活动存储空间标识符的索引(A_Index)时,活动存储空间索引还余下30位的存储空间,这30位的存储空间可用于存储活动存储空间的大小(Data_Size)。在一个实施方式中,活动存储空间的前2位用于存储活动存储空间标识符的索引(可取值00、01、10),后30位用于存储活动存储空间的大小。
用于进行初始化的接口具体进行以下操作:根据create_shm_manager的值判断是否建立管理器存储空间203。例如,当create_shm_manager的值为1时,在存储器102内新创建管理器存储空间203,并在结构体api(struct ShmSwitch类型)内存储管理器存储空间203的索引信息。当create_shm_manager的值为0时,将shm_manager_key指定的存储空间设置为管理器存储空间203。
用于关联存储空间的接口具体进行以下操作:将结构体api内管理器存储空间内的第一标识符与第二标识符分别设定为data_key0与data_key1,第一标识符与第二标识符在设置之后为只读,即设定之后不可再次修改。data_key0与data-key1的值可由用于创建存储空间的接口获取。
用于创建存储空间的接口具体进行以下操作:根据data_size指定的大小创建对应的存储空间,为创建的存储空间分配标识符,并在结构体api内存储标识符与存储空间索引信息。
用于切换活动存储空间的接口具体进行以下操作:修改结构体api所指向的管理器存储空间203内的活动存储空间索引,将活动存储空间标识符的索引修改为更新数据后的存储空间的标识符,并将活动存储空间的大小设定为data_size指定的值。
用于查询活动存储空间的接口具体进行以下操作:读取并返回结构体api指向的存储器管理空间203内活动存储空间的标识符。
通过上述接口,即可实现在不影响数据服务情形下对业务数据的更新操作,以下结合具体的实施例进行描述。此外,可以理解,实现上述功能并不限于通过应用程序编程接口实现,也就是说按照相似的逻辑处理流程,也可以采用专门的代码来实现。
参阅图3,其为第一实施例提供的数据存取方法的示意图。如图3所示,本实施例的方法包括以下步骤:
步骤S101、在存储器中创建第一存储空间、第二存储空间、以及管理器存储空间,并分别将数据文件加载至所述第一存储空间与第二存储空间中。
上述的存储器例如为图1所示的存储器102。参阅图2,步骤S101中,在存储器102中创建第一存储空间201、第二存储空间202以及管理器存储空间203。在一个实施方式中,存储器102为随机存储器(内存),第一存储空间201、第二存储空间202以及管理器存储空间203就是由操作系统管理的共享内存(Shared Memory)。在创建存储空间后,还可以将数据文件加载至第一存储空间201以及第二存储空间202内。上述的数据文件是指运行某种数据处理服务时所需要的数据,依据不同的业务需要,具体数据可以具有不同的结构,存储不同的信息,例如在一个用于查询用户地理位置的系统中,数据文件中应至少包括用户的标识符以及用户的位置信息。
可以理解,步骤S101中创建存储空间可以通过调用上述的用于创建存储空间的接口以及初始化的接口实现,当然本实施例并不限于调用接口实现。
第一存储空间201与第二存储空间202是用于存储具有同样结构的数据,但其大小可能不一致。具体地,在第一存储空间201与第二存储空间202中,可以包括头部区域和数据区域。所述头部区域可用于存储数据区域中数据的索引及摘要信息,例如,存储时间,数据大小,以及数据数目等。所述数据区域可用于存储具体数据的内容。
步骤S102、在所述管理器存储空间中存储用于标记活动存储空间的标识以及所述活动存储空间的大小,所述活动存储空间为所述第一存储空间与第二存储空间其中处于使用状态的存储空间。
如图2所示,管理器存储空间内存储有以下信息:第一标识符、第二标识符、以及活动存储空间索引。其中,第一标识符例如可为第一存储空间201的标识符,第二标识符例如可为第二存储空间202的标识符,活动存储空间索引内包括用于表示第一标识符与第二标识符中哪一个是当前处于使用状态的存储空间的标识符的信息(即活动存储空间标识符的索引)、以及当前处于使用状态的存储空间的大小。
在一个实施方式中,活动存储空间索引可占4个字节大小(一个整形数所占用的存储空间)。如上所述,当采用两个字节存储活动存储空间标识符的索引时,活动存储空间索引还余下30位的存储空间,这30位的存储空间可用于存储活动存储空间的大小。在一个实施方式中,活动存储空间的前2位用于存储活动存储空间标识符的索引(可取值00、01、10),后30位用于存储活动存储空间的大小。
存储活动存储空间索引的过程可包括:将所述标识以及所述活动存储空间的大小以一个整形数(int)进行存储。可以理解,整形数的写操作为原子操作。所谓原子操作,是指计算机运行过程中,不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何切换到另一个线程的操作。也就是说,通过原子操作实现活动存储空间的索引的修改,在修改过程中不可能有其他进程会访问到管理器存储空间内的值。因此,切换活动存储空间的过程不会被其他线程干扰。
步骤S103、在接收到数据更新请求后根据所述标识获取非活动存储空间,所述非活动存储空间为所述第一存储空间与第二存储空间中不同于所述活动存储空间的存储空间。
例如,在接收到数据更新请求后,可以首先查询(例如通过用于查询活动存储空间的接口)活动存储空间索引从而获取非活动存储空间的标识,根据非活动存储空间的标识获取非活动存储空间。
步骤S104、根据所述数据更新请求更新所述非活动存储空间,并将所述管理器存储空间内的活动存储空间的标识更新为所述非活动存储空间的标识。
在获取非活动存储空间后进行数据更新,即根据数据更新请求内包括的信息,进行数据的删除、修改、新增等操作,在完成数据更新后,将活动存储空间替换为进行数据更新后的存储空间,即修改管理器存储空间内的活动存储索引的值。从而,在后续过程中,访问的就是进行数据更新后存储空间内的数据。此时,原先的活动存储空间变为非活动存储空间。
可以理解,为了下一次数据更新时数据的一致性,在完成活动存储空间的切换后,还可将当前活动存储空间内的数据复制至非活动存储空间内。
根据本实施例的方法,通过在非活动存储空间内先完成数据更新,在更新完成后,将活动存储空间切换的方式,可以在数据服务不中断的情形下实现数据更新。进一步地,通过管理器存储空间,实现对两个存储空间的管理,从而可通过应用程序接口实现数据更新的过程,降低数据更新过程的耦合度以及复杂程度。
参阅图4,其为第二实施例提供的数据存取方法的示意图,本实施例的方法与图3所示的方法相似,其不同之处在于,在步骤S104之后还包括:
步骤S201、在接收到数据查询请求后根据所述标识获取所述活动存储空间。
例如,通过上述的用于查询活动存储空间的接口查询活动存储空间的标识符,并进一步根据活动存储空间的标识获取活动存储空间。
步骤S202、根据所述数据查询请求在所述活动存储空间中查询数据,并返回查询结果。
例如,在一个实施方式中,存储空间内存储的是设备的定位信息,每条记录包括设备的唯一标识符(Universal Identification Number,UIN)、、定位信息(例如,经纬度坐标)、以及时间。在步骤S202中,可以查询一个定位点附近(例如,预定距离,如500米范围内)最近一段时间(如半个小时、一个小时、半天、一天、一个星期等)内有哪些设备曾经到达过。
根据本实施例的方法,数据更新与数据查询服务可以同时进行而相互之间没有影响,可操作数据查询服务不被数据更新操作中断。
参阅图5,其为第三实施例提供的数据存取方法的示意图,本实施例的方法与图3所示的方法相似,其不同之处在于,在步骤S202之前还包括:
步骤S203、若所述活动存储空间未被绑定(attach)至当前进程,还将所述活动存储空间绑定至当前进程。
可以理解,在操作系统中,当共享内容未被绑定至当前进程时,当前进程是没有操作该共享内容的权限的。步骤S203是为了使当前进程可以访问活动存储空间内的数据。
根据本实施例的方法,数据更新与数据查询服务可以同时进行而相互之间没有影响,可操作数据查询服务不被数据更新操作中断。
参阅图6,其为第四实施例提供的数据存取装置的示意图,本实施的例数据存取装置包括:创建模块41、管理模块42、更新模块43、以及切换模块44。
创建模块41用于在存储器中创建第一存储空间、第二存储空间、以及管理器存储空间,并分别将数据文件加载至所述第一存储空间与第二存储空间中。
述的存储器例如为图1所示的存储器102。参阅图2,在存储器102中创建第一存储空间201、第二存储空间202以及管理器存储空间203。在一个实施方式中,存储器102为随机存储器(内存),第一存储空间201、第二存储空间202以及管理器存储空间203就是由操作系统管理的共享内存(Shared Memory)。在创建存储空间后,还可以将数据文件加载至第一存储空间201以及第二存储空间202内。上述的数据文件是指运行某种数据处理服务时所需要的数据,依据不同的业务需要,具体数据可以具有不同的结构,存储不同的信息,例如在一个用于查询用户地理位置的系统中,数据文件中应至少包括用户的标识符以及用户的位置信息。
创建存储空间可以通过调用上述的用于创建存储空间的接口以及初始化的接口实现,当然本实施例并不限于调用接口实现。
第一存储空间201与第二存储空间202是用于存储具有同样结构的数据,但其大小可能不一致。具体地,在第一存储空间201与第二存储空间202中,可以包括头部区域和数据区域。所述头部区域可用于存储数据区域中数据的索引及摘要信息,例如,存储时间,数据大小,以及数据数目等。所述数据区域可用于存储具体数据的内容。
管理模块42用于在所述管理器存储空间中存储用于标记活动存储空间的标识以及所述活动存储空间的大小,所述活动存储空间为所述第一存储空间与第二存储空间其中处于使用状态的存储空间。
如图2所示,管理器存储空间内存储有以下信息:第一标识符、第二标识符、以及活动存储空间索引。其中,第一标识符例如可为第一存储空间201的标识符,第二标识符例如可为第二存储空间202的标识符,活动存储空间索引内包括用于表示第一标识符与第二标识符中哪一个是当前处于使用状态的存储空间的标识符的信息(即活动存储空间标识符的索引)、以及当前处于使用状态的存储空间的大小。
在一个实施方式中,活动存储空间索引可占4个字节大小(一个整形数所占用的存储空间)。如上所述,当采用两个字节存储活动存储空间标识符的索引时,活动存储空间索引还余下30位的存储空间,这30位的存储空间可用于存储活动存储空间的大小。在一个实施方式中,活动存储空间的前2位用于存储活动存储空间标识符的索引(可取值00、01、10),后30位用于存储活动存储空间的大小。
存储活动存储空间索引的过程可包括:将所述标识以及所述活动存储空间的大小以一个整形数(int)进行存储。可以理解,整形数的写操作为原子操作。所谓原子操作,是指计算机运行过程中,不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何切换到另一个线程的操作。也就是说,通过原子操作实现活动存储空间的索引的修改,在修改过程中不可能有其他进程会访问到管理器存储空间内的值。因此,切换活动存储空间的过程不会被其他线程干扰。
更新模块43用于在接收到数据更新请求后根据所述标识获取非活动存储空间,所述非活动存储空间为所述第一存储空间与第二存储空间中不同于所述活动存储空间的存储空间。
例如,在接收到数据更新请求后,可以首先查询(例如通过用于查询活动存储空间的接口)活动存储空间索引从而获取非活动存储空间的标识,根据非活动存储空间的标识获取非活动存储空间。
切换模块44用于根据所述数据更新请求更新所述非活动存储空间,并将所述管理器存储空间内的活动存储空间的标识更新为所述非活动存储空间的标识。
在获取非活动存储空间后进行数据更新,即根据数据更新请求内包括的信息,进行数据的删除、修改、新增等操作,在完成数据更新后,将活动存储空间替换为进行数据更新后的存储空间,即修改管理器存储空间内的活动存储索引的值。从而,在后续过程中,访问的就是进行数据更新后存储空间内的数据。此时,原先的活动存储空间变为非活动存储空间。
为了下一次数据更新时数据的一致性,在完成活动存储空间的切换后,还可将当前活动存储空间内的数据复制至非活动存储空间内。
可以理解,创建模块41、管理模块42、更新模块43、以及切换模块44可以是图1所示的存储管理模块128的子功能模块。
根据本实施例的装置,通过在非活动存储空间内先完成数据更新,在更新完成后,将活动存储空间切换的方式,可以在数据服务不中断的情形下实现数据更新。进一步地,通过管理器存储空间,实现对两个存储空间的管理,从而可通过应用程序接口实现数据更新的过程,降低数据更新过程的耦合度以及复杂程度。
参阅图7,其为第五实施例提供的数据存取装置的结构框图。本实施例的装置与图6所示的装置相似,其不同之处在于,还包括:获取模块45以及数据查询模块46。
获取模块45用于在接收到数据查询请求后根据所述标识获取所述活动存储空间。
例如,通过上述的用于查询活动存储空间的接口查询活动存储空间的标识符,并进一步根据活动存储空间的标识获取活动存储空间。
数据查询模块46用于根据所述数据查询请求在所述活动存储空间中查询数据,并返回查询结果。
例如,在一个实施方式中,存储空间内存储的是设备的定位信息,每条记录包括设备的唯一标识符(Universal Identification Number,UIN)、、定位信息(例如,经纬度坐标)、以及时间。在步骤S202中,可以查询一个定位点附近(例如,预定距离,如500米范围内)最近一段时间(如半个小时、一个小时、半天、一天、一个星期等)内有哪些设备曾经到达过。
根据本实施例的装置,数据更新与数据查询服务可以同时进行而相互之间没有影响,可操作数据查询服务不被数据更新操作中断。
参阅图8,其为第六实施例提供的数据存取装置的结构框图。本实施例的装置与图7所示的装置相似,其不同之处在于,还包括:绑定模块47,用于若所述活动存储空间未被绑定(attach)至当前进程,还将所述活动存储空间绑定至当前进程。
可以理解,在操作系统中,当共享内容未被绑定至当前进程时,当前进程是没有操作该共享内容的权限的。绑定是为了使当前进程可以访问活动存储空间内的数据。
根据本实施例的装置,数据更新与数据查询服务可以同时进行而相互之间没有影响,可操作数据查询服务不被数据更新操作中断。
此外,本发明实施例还提供一种计算机可读存储介质,其内存储有计算机可执行指令,上述的计算机可读存储介质例如为非易失性存储器例如光盘、硬盘、或者闪存。上述的计算机可执行指令用于让计算机或者类似的运算装置完成上述的共享存储器数据存取方法中的各种操作。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭示如上,然而并非用以限定本发明,任何本领域技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简介修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (10)

1.一种数据存取方法,其特征在于,所述方法包括以下步骤:
在存储器中创建第一存储空间、第二存储空间、以及管理器存储空间,并分别将数据文件加载至所述第一存储空间与第二存储空间中;
在所述管理器存储空间中存储用于标记活动存储空间的标识以及所述活动存储空间的大小,所述活动存储空间为所述第一存储空间与第二存储空间其中处于使用状态的存储空间;
在接收到数据更新请求后根据所述标识获取非活动存储空间,所述非活动存储空间为所述第一存储空间与第二存储空间中不同于所述活动存储空间的存储空间;
根据所述数据更新请求更新所述非活动存储空间,并将所述管理器存储空间内的活动存储空间的标识更新为所述非活动存储空间的标识。
2.如权利要求1所述的方法,其特征在于,还包括:加载预编译的应用程序编程接口,所述的各步骤是通过调用所述应用程序编程接口实现的。
3.如权利要求1所述的方法,其特征在于,在所述管理器存储空间中存储用于标记活动存储空间的标识以及所述活动存储空间的大小包括:将所述标识以及所述活动存储空间的大小以一个整形数(int)进行存储。
4.如权利要求1所述的方法,其特征在于,还包括:
在接收到数据查询请求后根据所述标识获取所述活动存储空间;以及
根据所述数据查询请求在所述活动存储空间中查询数据,并返回查询结果。
5.如权利要求4所述的方法,其特征在于,在所述根据所述数据查询请求在所述活动存储空间中查询数据之前,还包括:
若所述活动存储空间未被绑定(attach)至当前进程,还将所述活动存储空间绑定至当前进程。
6.一种数据存取装置,其特征在于,所述装置包括:
创建模块,用于在存储器中创建第一存储空间、第二存储空间、以及管理器存储空间,并分别将数据文件加载至所述第一存储空间与第二存储空间中;
管理模块,用于在所述管理器存储空间中存储用于标记活动存储空间的标识以及所述活动存储空间的大小,所述活动存储空间为所述第一存储空间与第二存储空间其中处于使用状态的存储空间;
更新模块,用于在接收到数据更新请求后根据所述标识获取非活动存储空间,所述非活动存储空间为所述第一存储空间与第二存储空间中不同于所述活动存储空间的存储空间;以及
切换模块,用于根据所述数据更新请求更新所述非活动存储空间,并将所述管理器存储空间内的活动存储空间的标识更新为所述非活动存储空间的标识。
7.如权利要求6所述的装置,其特征在于,还包括:应用程序编程接口,所述的各模块是通过调用所述应用程序编程接口实现的。
8.如权利要求6所述的装置,其特征在于,所述管理模块在所述管理器存储空间中存储用于标记活动存储空间的标识以及所述活动存储空间的大小包括:将所述标识以及所述活动存储空间的大小以一个整形数(int)进行存储。
9.如权利要求6所述的装置,其特征在于,还包括:
获取模块,用于在接收到数据查询请求后根据所述标识获取所述活动存储空间;以及
数据查询模块,用于根据所述数据查询请求在所述活动存储空间中查询数据,并返回查询结果。
10.如权利要求9所述的方法,其特征在于,还包括:
绑定模块,用于在所述根据所述数据查询请求在所述活动存储空间中查询数据之前,若所述活动存储空间未被绑定(attach)至当前进程,还将所述活动存储空间绑定至当前进程。
CN201410179307.2A 2014-04-30 2014-04-30 共享存储器数据存取方法及装置 Active CN105022590B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410179307.2A CN105022590B (zh) 2014-04-30 2014-04-30 共享存储器数据存取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410179307.2A CN105022590B (zh) 2014-04-30 2014-04-30 共享存储器数据存取方法及装置

Publications (2)

Publication Number Publication Date
CN105022590A true CN105022590A (zh) 2015-11-04
CN105022590B CN105022590B (zh) 2019-04-02

Family

ID=54412586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410179307.2A Active CN105022590B (zh) 2014-04-30 2014-04-30 共享存储器数据存取方法及装置

Country Status (1)

Country Link
CN (1) CN105022590B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108463000A (zh) * 2017-02-17 2018-08-28 中兴通讯股份有限公司 一种数据传输方法及装置
CN108459824A (zh) * 2017-12-19 2018-08-28 西安华为技术有限公司 一种数据修改写方法及装置
CN110431527A (zh) * 2017-03-09 2019-11-08 微软技术许可有限责任公司 跨存储提供方映射存储

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100527081C (zh) * 2005-05-24 2009-08-12 中国银联股份有限公司 实现数据升级的计算机处理系统和数据升级方法
CN102314368A (zh) * 2011-09-26 2012-01-11 贵阳朗玛信息技术股份有限公司 更新服务器程序的配置数据的方法及设备
US20120246456A1 (en) * 2010-10-13 2012-09-27 International Business Machines Corporation Memory tagging and preservation during a hot upgrade
US20120266150A1 (en) * 2011-04-15 2012-10-18 International Business Machines Corporation Method and framework for invisible code rewriting
CN103176909A (zh) * 2011-12-26 2013-06-26 中国银联股份有限公司 一种业务处理方法及其系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100527081C (zh) * 2005-05-24 2009-08-12 中国银联股份有限公司 实现数据升级的计算机处理系统和数据升级方法
US20120246456A1 (en) * 2010-10-13 2012-09-27 International Business Machines Corporation Memory tagging and preservation during a hot upgrade
US20120266150A1 (en) * 2011-04-15 2012-10-18 International Business Machines Corporation Method and framework for invisible code rewriting
CN102314368A (zh) * 2011-09-26 2012-01-11 贵阳朗玛信息技术股份有限公司 更新服务器程序的配置数据的方法及设备
CN103176909A (zh) * 2011-12-26 2013-06-26 中国银联股份有限公司 一种业务处理方法及其系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108463000A (zh) * 2017-02-17 2018-08-28 中兴通讯股份有限公司 一种数据传输方法及装置
CN108463000B (zh) * 2017-02-17 2023-08-29 中兴通讯股份有限公司 一种数据传输方法及装置
CN110431527A (zh) * 2017-03-09 2019-11-08 微软技术许可有限责任公司 跨存储提供方映射存储
CN110431527B (zh) * 2017-03-09 2023-06-30 微软技术许可有限责任公司 跨存储提供方映射存储
CN108459824A (zh) * 2017-12-19 2018-08-28 西安华为技术有限公司 一种数据修改写方法及装置
CN108459824B (zh) * 2017-12-19 2021-05-04 西安华为技术有限公司 一种数据修改写方法及装置

Also Published As

Publication number Publication date
CN105022590B (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
CN103443770A (zh) 终端装置、进程管理方法以及进程管理程序
CN104583963A (zh) 基于上下文的数据的预测性预缓存
CN103544153A (zh) 一种基于数据库的数据更新方法和系统
CN101901164A (zh) 时间计划调度模块和方法
CN103559910B (zh) 应用于烧录器的实现智能切换烧录芯片时序的系统及方法
CN103500191A (zh) 一种流表配置、查询、表项删除方法及装置
CN110162328B (zh) 一种智能卡操作系统升级方法及装置
CN108829342B (zh) 一种日志存储方法、系统及存储装置
CN101770433A (zh) 通用驱动方法和通用驱动设备
CN110520844A (zh) 云管理平台、虚拟机管理方法及其系统
CN104317734A (zh) 一种适用于slab的内存分配方法及装置
CN110928935A (zh) 数据的访问命令处理方法、装置和系统
CN105022590A (zh) 共享存储器数据存取方法及装置
CN109639460B (zh) Nfv资源管理的方法和装置
CN104216834A (zh) 一种内存访问的方法、缓冲调度器和内存模块
CN104424224A (zh) 一种文件索引存储方法及装置
CN111562883B (zh) 固态硬盘的缓存管理系统、方法、装置
US11137995B2 (en) Updating firmware of a microcontroller
CN111782717A (zh) 一种数据处理方法、系统及电子设备和存储介质
CN116166570A (zh) 一种垃圾回收方法及装置
US10678453B2 (en) Method and device for checking false sharing in data block deletion using a mapping pointer and weight bits
CN104199984A (zh) 一种实现功能库的动态引用的方法和装置
CN109542841A (zh) 集群中创建数据快照的方法及终端设备
US11681444B2 (en) Shingled magnetic disk management method for data isolation by space files, apparatus, and electronic device
CN111078233B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190730

Address after: 518057 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: 518044, Shenzhen, Guangdong province Futian District revitalization Road SEG science and Technology Park 2 East

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.