一种共享内存的控制方法及系统的制作方法

文档序号:6363275阅读:110来源:国知局
专利名称:一种共享内存的控制方法及系统的制作方法
技术领域
本发明涉及通信技术领域,更具体的说,涉及共享内存的控制方法及系统。
背景技术
随着用户规模的增长,以及业务的不断发展,系统需要处理的数据量越来越多,企业需要越来越多地面临着海量数据的处理。如何对海量数据进行存储和控制,以便能够实现快速、准确地进行查询,并且尽可能地减少对系统资源,已经成为业界的一大难题。对海量数据的存储和控制,要满足快速、准确、资源占用少的要求,其技术瓶颈在于建立一套完善的数据存放和控制机制。目前已有的技术主要采用IO设备对海量数据进行存储和控制。这种方式将海量数据以特定的存储结构,如拆分文件、建立索引等,存放在IO设备中,当需要查询某部分数据时,再将此部分数据所在的文件读到内存中进行查询和更新。在对现有技术的研究和实践过程中,本发明的发明人发现现有技术存在以下问题采用IO设备来存储数据,外部系统需要频繁地对IO设备进行读写操作,IO设备被占用的资源会比较多,从而降低了 IO设备的运行效率,不能满足外部系统需要快速响应的要求。而且,在某些情况下,如果数据文件存储的很分散、零碎,IO设备资源的占用问题会尤为明显,严重时会影响程序所部署的机器的性能,从而影响到其它程序的正常运行。

发明内容
有鉴于此,本发明的设计目的在于,提供一种共享内存的控制方法及系统,以提高存储和控制数据的速度。本发明实施例是这样实现的一种共享内存的控制方法,包括I)获取外部系统发送的访问所述共享内存的操作指令和关键信息;2)根据所述操作指令来访问所述共享内存中与所述关键信息相对应的数据;3)输出访问结果。优选地,在上述的共享内存的控制方法中,在步骤I)中,具体包括以下步骤11)与所述外部系统建立连接;12)获取所述外部系统的请求信息;13)确定所述请求信息的合法性;14)当所述请求信息合法时,则获取所述请求信息中的操作指令和关键信息;15)当所述请求信息不合法时,则向所述外部系统发送验证错误指令。优选地,在上述的共享内存的控制方法中,所述操作指令为查询操作、插入操作、 删除操作或修改操作。优选地,在上述的共享内存的控制方法中,在步骤I)之后,步骤2)之前,还包括
申请获取所述共享内存中与所述关键信息相对应的数据所在区块的锁资源;判断所述共享内存中与所述关键信息相对应的数据所在的区块是否被锁,若是, 则等待预设时间后再次申请获取锁资源;否则,获取所述区块对应的锁资源。优选地,在上述的共享内存的控制方法中,在所述步骤3)之后,还包括释放所述共享内存中与所述关键信息相对应的数据所在区块的锁资源。优选地,在上述的共享内存的控制方法中,还包括定时将所述共享内存中的数据发送至IO设备中。一种共享内存的控制系统,包括网络接口模块和内存控制模块,所述内存控制模块分别与所述网络接口模块和所述共享内存相连接;网络接口模块,用于获取外部系统发送的访问所述共享内存的操作指令和关键信息,以及输出访问结果;内存控制模块,用于根据所述操作指令来访问所述共享内存中与所述关键信息相对应的数据。优选地,在上述的共享内存的控制系统中,还包括与所述内存控制模块相连接的锁资源控制模块,所述锁资源控制模块包括申请锁资源模块,用于申请获取所述共享内存中与所述关键信息相对应的数据所在区块的锁资源;判断模块,用于判断所述共享内存中与所述关键信息相对应的数据所在的区块是否被锁,若是,则等待预设时间后再次申请获取锁资源;否则,获取所述区块对应的锁资源;释放锁资源模块,用于释放所述共享内存中与所述关键信息相对应的数据所在区块的锁资源。优选地,在上述的共享内存的控制系统中,还包括异常记录模块;所述异常记录模块,用于当访问所述共享内存出现异常时,则记录异常信息。优选地,在上述的共享内存的控制系统中,还包括数据备份模块,用于定时将所述共享内存中的数据发送至IO设备中。与现有技术相比,本实施例提供的技术方案具有以下优点和特点在本发明提供的方案中,由于数据的访问都在共享内存中实现,所以即使外部系统频繁的对共享内存进行读写,也可以满足外部系统需要快速响应的要求;而且,即使数据存储的很分散、零碎,也不会影响共享内存的访问效率。因此,本发明提供的方案提高了存储和控制数据的速度。


为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明所提供的一种共享内存的控制方法的流程图;图2为本发明所提供的一种共享内存的控制系统的模块图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供了一种共享内存的控制方法,包括获取外部系统发送的访问所述共享内存的操作指令和关键信息;根据所述操作指令来访问所述共享内存中与所述关键信息相对应的数据;输出访问结果。由于上述共享内存的控制方法的具体实现存在多种方式,下面通过具体实施例进行详细说明请参见图I所示,图I所示的为一种共享内存的控制方法,包括步骤S11、获取外部系统发送的访问所述共享内存的操作指令和关键信息;其中,操作指令具体为查询操作、插入操作、删除操作或修改操作,关键信息为需要在共享内存中需要修改的关键字段等信息。步骤S12、根据所述操作指令来访问所述共享内存中与所述关键信息相对应的数据;其中,如果操作指令为查询操作,则外部系统需要提供查询的关键字段;如果操作指令为更新操作,则外部系统需要提供查询的关键字段和最新的记录;如果操作指令为插入操作,则外部系统需要提供查询的关键字段和需要插入的记录;如果操作指令为删除操作,则外部系统需要提供删除记录的关键字段。步骤S13、输出访问结果。在图I所示的实施例中,由于数据的访问都在共享内存中实现,所以即使外部系统频繁的对共享内存进行读写,也可以满足外部系统需要快速响应的要求;而且,即使数据存储的很分散、零碎,也不会影响共享内存的访问效率。因此,本发明提供的方案提高了存储和控制数据的速度。在图I所示的实施例中,步骤SI还包括以下步骤步骤SI I、与所述外部系统建立连接;步骤S12、获取所述外部系统的请求信息;步骤S13、确定所述请求信息的合法性;步骤S14、当所述请求信息合法时,则获取所述请求信息中的操作指令和关键信步骤S15、当所述请求信息不合法时,则向所述外部系统发送验证错误指令。步骤Sll至步骤S15为步骤SI的具体过程。在图I所示的实施例中,在步骤SI之后,步骤S2之前,还包括以下步骤首先,申请获取所述共享内存中与所述关键信息相对应的数据所在区块的锁资源;其次,判断所述共享内存中与所述关键信息相对应的数据所在的区块是否被锁, 若是,则等待预设时间后再次申请获取锁资源;否则,获取所述区块对应的锁资源。
在步骤SI之后步骤S2之前的这两个步骤主要是为了申请共享内存中区块的锁资源,只有申请到锁资源以后才能对该区块进行访问,否则只能等待一定时间以后再次申请对应区块的锁资源。在图I所示的实施例中,在所述步骤S3之后,还包括以下步骤释放所述共享内存中与所述关键信息相对应的数据所在区块的锁资源;定时将所述共享内存中的数据发送至IO设备中。在步骤S3之后的这两个步骤,其中,第一个步骤主要为访问完共享内存以后,需要释放对应区块的锁资源,以便于其他进程或系统可以获取到该区块锁资源。第二个步骤为在其他进程或系统访问完共享内存以后,需要定时将共享内存中的数据发送至IO设备中,以便于备份。请参见图2所示,图2所示的为一种共享内存的控制系统I,该系统I包括网络接口模块11、内存控制模块12、锁资源控制模块13、异常记录模块14和数据备份模块15 ;其中,网络接口模块11、内存控制模块12、锁资源控制模块13和异常记录模块14依次连接。 网络接口模块11,用于获取外部系统2发送的访问所述共享内存3的操作指令和关键信息, 以及输出访问结果;内存控制模块12,用于根据所述操作指令来访问所述共享内存3中与所述关键信息相对应的数据;锁资源控制模块13又包括申请锁资源模块、判断模块和释放锁资源模块,其中,申请锁资源模块,用于申请获取所述共享内存中与所述关键信息相对应的数据所在区块的锁资源;判断模块,用于判断所述共享内存中与所述关键信息相对应的数据所在的区块是否被锁,若是,则等待预设时间后再次申请获取锁资源;否则,获取所述区块对应的锁资源;释放锁资源模块,用于释放所述共享内存中与所述关键信息相对应的数据所在区块的锁资源。异常记录模块14,用于当访问所述共享内存3出现异常时,则记录异常信息。数据备份模块15,用于定时将所述共享内存3中的数据发送至IO设备4中。下面通过具体实例来介绍本发明提供的方案第一步,外部系统2通过网络socket协议来和存储控制系统I进行数据交互。在数据交互前先建立socket连接,然后将数据请求信息发送给存储控制系统I。存储控制系统I接收到请求后,会先由网络接口模块11进行请求报文信息的解释和校验,并对用户权限进行验证。如果报文非法,或者用户权限无效,则会返回相应的错误代码给外部系统2,并将相关信息发送给异常记录模块14进行异常信息登记。网络接口模块11从合法的请求报文中获取到数据请求类型(查询/更新/插入/删除),以及相关请求的关键信息。然后将相关信息发送给内存控制模块12。例如对于查询操作,需要提供查询的关键字段信息;对于更新操作,需要提供查询的关键字段和最新的记录;对于插入操作,需要提供查询的关键字段和需要插入的记录;对于删除操作,需要提供删除记录的关键字段;第二步,内存控制模块12接收到网络接口模块11发送过来的请求类型、请求关键信息后,先向锁资源控制模块13发送请求,获取信号量锁资源。锁资源控制模块13,会先根据关键信息中的key值,判断此key值对应的记录所在的区块是否已经被锁,如果是,则返回等待信号给内存控制模块12。否则,则判断当前已分配的信号量数量是否已经超出系统的最大限制,如果是,则返回等待信号给内存控制模块12,否则返回分配成功信号给内存控制模块12,并则将当前已分配的信号量数量加一。第三步,内存控制模块12如果接收到等待信号后,会先睡眠一个固定的时间间隔(如100微妙,时间间隔可配置),然后再重新向锁资源控制模块13申请信号量资源。如果接收到成功信号后,就可以对共享内存3进行查询/更新/插入/删除的操作。第四步,在内存控制模块12完成所请求的操作后,会向锁资源控制模块13发送请求,申请释放锁资源。锁资源控制模块13,根据key值找到对应信号量,解除该信号量的锁状态,并将当前已分配的信号量数量减一。最后锁资源控制模块13返回释放成功的信息给内存控制模块12。第五步,内存控制模块12接收到释放信号量成功的信息后,就将第三步共享内存操作的结果返回给网络接口模块11。对于查询操作,除了返回查询结果外,还会返回查询的 key值所对应的记录。第六步,网络接口模块11接收到返回信息后,会按照返回报文规定的格式组装报文,并通过socket将报文返回给外部系统2。以上各个步骤中,如果出现异常情况,都会将异常信息发送给异常记录模块14进行登记。数据备份模块15会定期调度(调度周期可配置,如每月、每天、每小时等),自动将共享内存3中的数据全量同步到IO设备4中,以便能够在共享内存3数据丢失时,能够快速进行数据恢复。在内存控制模块12处理数据操作请求时,对于插入/更新/删除操作, 会同时输出一份请求数据给数据备份模块15,数据备份模块15会及时将请求信息登记到 IO设备4中。需要说明的是,图I至图2所示的实施例只是本发明所介绍的优选实施例,本领域技术人员在此基础上,完全可以设计出更多的实施例,因此不在此处赘述。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。本领域技术人员可以理解,可以使用许多不同的工艺和技术中的任意一种来表示信息、消息和信号。例如,上述说明中提到过的消息、信息都可以表示为电压、电流、电磁波、 磁场或磁性粒子、光场或以上任意组合。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
权利要求
1.一种共享内存的控制方法,其特征在于,包括1)获取外部系统发送的访问所述共享内存的操作指令和关键信息;2)根据所述操作指令来访问所述共享内存中与所述关键信息相对应的数据;3)输出访问结果。
2.根据权利要求I所述的共享内存的控制方法,其特征在于,在步骤I)中,具体包括以下步骤11)与所述外部系统建立连接;12)获取所述外部系统的请求信息;13)确定所述请求信息的合法性;14)当所述请求信息合法时,则获取所述请求信息中的操作指令和关键信息;15)当所述请求信息不合法时,则向所述外部系统发送验证错误指令。
3.根据权利要求I所述的共享内存的控制方法,其特征在于,所述操作指令为查询操作、插入操作、删除操作或修改操作。
4.根据权利要求I所述的共享内存的控制方法,其特征在于,在步骤I)之后,步骤2) 之前,还包括申请获取所述共享内存中与所述关键信息相对应的数据所在区块的锁资源;判断所述共享内存中与所述关键信息相对应的数据所在的区块是否被锁,若是,则等待预设时间后再次申请获取锁资源;否则,获取所述区块对应的锁资源。
5.根据权利要求4所述的共享内存的控制方法,其特征在于,在所述步骤3)之后,还包括释放所述共享内存中与所述关键信息相对应的数据所在区块的锁资源。
6.根据权利要求I所述的共享内存的控制方法,其特征在于,还包括定时将所述共享内存中的数据发送至IO设备中。
7.一种共享内存的控制系统,其特征在于,包括网络接口模块和内存控制模块,所述内存控制模块分别与所述网络接口模块和所述共享内存相连接;网络接口模块,用于获取外部系统发送的访问所述共享内存的操作指令和关键信息, 以及输出访问结果;内存控制模块,用于根据所述操作指令来访问所述共享内存中与所述关键信息相对应的数据。
8.根据权利要求7所述的共享内存的控制系统,其特征在于,还包括与所述内存控制模块相连接的锁资源控制模块,所述锁资源控制模块包括申请锁资源模块,用于申请获取所述共享内存中与所述关键信息相对应的数据所在区块的锁资源;判断模块,用于判断所述共享内存中与所述关键信息相对应的数据所在的区块是否被锁,若是,则等待预设时间后再次申请获取锁资源;否则,获取所述区块对应的锁资源;释放锁资源模块,用于释放所述共享内存中与所述关键信息相对应的数据所在区块的锁资源。
9.根据权利要求7所述的共享内存的控制系统,其特征在于,还包括异常记录模块; 所述异常记录模块,用于当访问所述共享内存出现异常时,则记录异常信息。
10.根据权利要求7所述的共享内存的控制系统,其特征在于,还包括数据备份模块,用于定时将所述共享内存中的数据发送至IO设备中。
全文摘要
本发明公开了一种共享内存的控制方法,包括获取外部系统发送的访问所述共享内存的操作指令和关键信息;根据所述操作指令来访问所述共享内存中与所述关键信息相对应的数据;输出访问结果。在本发明提供的方案中,由于数据的访问都在共享内存中实现,所以即使外部系统频繁的对共享内存进行读写,也可以满足外部系统需要快速响应的要求;而且,即使数据存储的很分散、零碎,也不会影响共享内存的访问效率。因此,本发明提供的方案提高了存储和控制数据的速度。
文档编号G06F17/30GK102609466SQ201210012539
公开日2012年7月25日 申请日期2012年1月13日 优先权日2012年1月13日
发明者黄子维 申请人:广州从兴电子开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1