一种存储数据的方法及装置制造方法

文档序号:6499992阅读:154来源:国知局
一种存储数据的方法及装置制造方法
【专利摘要】本发明涉及计算机【技术领域】,尤其涉及一种存储数据的方法及装置,用以解决现有技术中应用服务器受到内存队列容量的限制,运行效率较低的问题。本发明实施例提供的存储数据的方法包括:当内存主队列中存储的数据总量达到总容量后,将新接收的数据存储到内存缓冲队列中;所述内存缓冲队列的总容量小于所述内存主队列的总容量;当内存缓冲队列中存储的数据总量达到总容量时,将内存缓冲队列的数据存储到非易失性存储介质中;当内存主队列中空余的容量达到设定的第一容量限值时,将非易失性存储介质中不超过所述第一容量限值的数据存储到内存主队列中,从而扩充了存储队列的容量,提高了应用服务器的运行效率。
【专利说明】一种存储数据的方法及装置
【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种存储数据的方法及装置。
【背景技术】
[0002]在计算机领域,队列(Queue)是一种很重要的数据结构,它是一种只允许在其一端插入(PUSH)数据,而在另一端移除(POP)数据的运算受限的线性表。对队列的修改是按照先进先出的原则进行的,新来的成员总是被加入到队尾,离开队列的总是为队头的成员。
[0003]在实际应用中,内存队列通常用来保存应用服务器接收到的待处理消息,应用服务器将收到的客户端发起的请求消息插入到内存队列尾部,从内存队列头部依次获取要处理的消息,将处理后的消息发送给客户端。由于内存的大小是有限的,一般情况都会为内存队列设置一个最大容量,当内存队列中的消息容量达到最大容量后,内存队列拒绝插入新的消息,造成“假溢出”,因此,内存队列的大小和性能在一定程度上成为整个应用服务器性能的瓶颈,造成运行效率低下。
[0004]综上,现有技术中,应用服务器受到内存队列容量的限制,运行效率较低。

【发明内容】

[0005]本发明实施例提供一种存储数据的方法及装置,用以解决现有技术中应用服务器受到内存队列容量的限制,运行效率较低的问题。
[0006]本发明实施例提供的一种存储数据的方法,包括:
[0007]当内存主队列中存储的数据总量达到所述内存主队列的总容量后,将新接收的数据存储到内存缓冲队列中;所述内存缓冲队列的总容量小于所述内存主队列的总容量;
[0008]当所述内存缓冲队列中存储的数据总量达到所述内存缓冲队列的总容量时,将所述内存缓冲队列的数据存储到非易失性存储介质中;
[0009]当所述内存主队列中空余的容量达到设定的第一容量限值时,将所述非易失性存储介质中不超过所述第一容量限值的数据存储到所述内存主队列中。
[0010]较佳地,所述设定的第一容量限值不小于所述内存缓冲队列的总容量;
[0011]将所述非易失性存储介质中不超过所述第一容量限值的数据存储到所述内存主队列中,包括:
[0012]根据接收数据的先后顺序,将所述非易失性存储介质中不超过所述第一容量限值的数据以所述内存缓冲队列的总容量为单位存储到所述内存主队列中。
[0013]较佳地,将所述非易失性存储介质中不超过所述第一容量限值的数据存储到所述内存主队列中,包括:
[0014]当所述内存主队列中的数据被全部处理完后,将所述非易失性存储介质中不超过所述第一容量限值的数据存储到所述内存主队列中。
[0015]较佳地,将所述非易失性存储介质中不超过所述第一容量限值的数据存储到所述内存主队列之后,还包括:[0016]在所述非易失性存储介质中不存在数据,且所述内存缓冲队列中存储的数据总量未达到所述内存缓冲队列的最大容量,且所述内存主队列中空余的存储容量大于设定的第二容量限值时,将所述内存缓冲队列中的数据全部存储到所述内存主队列中;所述第二容量限值不小于所述内存缓冲队列的总容量。
[0017]较佳地,将新接收的数据存储到内存缓冲队列中之后,将所述内存缓冲队列的数据存储到非易失性存储介质中之前,还包括:
[0018]若所述内存主队列中的空余容量达到所述第二容量限值,所述内存缓冲队列中存储的数据总量未达到所述内存缓冲队列的总容量,则将所述内存缓冲队列中的数据全部存储到所述内存主队列中。
[0019]较佳地,将所述内存缓冲队列中的数据全部存储到所述内存主队列中之后,还包括:
[0020]将新接收的数据存储到所述内存主队列中。
[0021]本发明实施例提供的一种存储数据的装置,包括:
[0022]第一存储模块,用于当内存主队列中存储的数据总量达到所述内存主队列的总容量后,将新接收的数据存储到总容量小于所述内存主队列总容量的内存缓冲队列中;所述内存缓冲队列的总容量小于所述内存主队列的总容量;
[0023]第二存储模块,用于当所述内存缓冲队列中存储的数据总量达到所述内存缓冲队列的总容量时,将所述内存缓冲队列的数据存储到非易失性存储介质中;
[0024]第三存储模块,用于当所述内存主队列中空余的容量达到设定的第一容量限值时,将所述非易失性存储介质中不超过所述第一容量限值的数据存储到所述内存主队列中。
[0025]本发明实施例中当内存主队列中存储的数据总量达到所述内存主队列的总容量后,将新接收的数据存储到内存缓冲队列中,当所述内存缓冲队列中存储的数据总量达到所述内存缓冲队列的总容量时,将所述内存缓冲队列的数据存储到非易失性存储介质中;当所述内存主队列中空余的容量达到设定的第一容量限值时,将所述非易失性存储介质中不超过所述第一容量限值的数据存储到所述内存主队列中;从而扩充了存储队列的容量,提高了应用服务器的运行效率。
【专利附图】

【附图说明】
[0026]图1为本发明实施例提供的存储数据的方法流程图;
[0027]图2为本发明实施例处理数据的具体流程图;
[0028]图3A为本发明实施例只通过内存主队列进行数据存储的示意图;
[0029]图3B为本发明实施例将新接收的数据存储到内存缓冲队列中的示意图;
[0030]图3C为本发明实施例将内存缓冲队列的数据存储到非易失性存储介质中的示意图;
[0031]图3D为本发明实施例将非易失性存储介质中的队列数据存储到内存主队列的示意图;
[0032]图3E为本发明实施例将内存缓冲队列中的数据存储到内存主队列中的示意图;
[0033]图4为本发明实施例提供的存储数据的装置结构图。【具体实施方式】
[0034]本发明实施例中当内存主队列中存储的数据总量达到内存主队列的总容量后,将新接收的数据存储到内存缓冲队列中;内存缓冲队列的总容量小于内存主队列的总容量;当内存缓冲队列中存储的数据总量达到内存缓冲队列的总容量时,将内存缓冲队列的数据存储到非易失性存储介质中;当内存主队列中空余的容量达到设定的第一容量限值时,将非易失性存储介质中不超过设定的第一容量限值的数据存储到内存主队列中,从而扩充了存储队列的容量,提高了应用服务器的运行效率。
[0035]本发明实施例不仅在传统内存队列的基础上,增加了非易失性存储介质存储的方式,扩充了存储队列的容量,而且,通过采用内存缓冲队列,使数据的插入和移除操作分别在两个内存队列中并行进行,这样,可以在将数据从内存缓冲队列存储到非易失性存储介质时和将数据从非易失性存储介质存储到内存主队列时,既不会影响内存主队列的数据移除操作,也不会影响内存缓冲队列的数据插入操作,从而提高了系统的并行处理能力;再者,本发明实施例是将内存缓冲队列的数据总量达到总容量时的全部数据一次性存储到非易失性存储介质中的,这种批量存储的方式可以减少非易失性存储介质输入输出(Input/Output, I/O)的频次,提闻系统并行处理能力。
[0036]下面结合说明书附图对本发明实施例作进一步详细描述。
[0037]如图1所示,为本发明实施例提供的存储数据的方法流程图,包括以下步骤:
[0038]SlOl:当内存主队列中存储的数据总量达到内存主队列的总容量后,将新接收的数据存储到内存缓冲队列中;内存缓冲队列的总容量小于内存主队列的总容量;
[0039]S102:当内存缓冲队列中存储的数据总量达到内存缓冲队列的总容量时,将内存缓冲队列的数据存储到非易失性存储介质中;
[0040]S103:当内存主队列中空余的容量达到设定的第一容量限值时,将非易失性存储介质中不超过设定的第一容量限值的数据存储到内存主队列中。
[0041]本发明实施例的执行主体可以为服务器等计算机设备。本发明实施例的数据结构由三部分组成,分别为内存主队列、内存缓冲队列和非易失性存储介质中的队列数据;这里的非易失性存储介质可以为硬盘等存储介质;内存主队列和内存缓冲队列可以为普通链式阻塞队列,非易失性存储介质相对于内存主队列和内存缓冲队列,可以认为是没有容量限制的数据存储媒介。进行数据处理时,将消费的数据从内存主队列中移除,即POP;开始接收数据时,将接收的数据插入,即I3USH到内存主队列中,可以对内存主队列的数据存储情况进行实时监测,当监测到内存主队列中存储的数据达到最大存储容量时,将新接收的数据插入,即TOSH到内存缓冲队列中,当内存缓冲队列中存储的数据达到最大容量时,将内存缓冲队列的所有数据存储到非易失性存储介质中,在这个过程中,内存主队列中的数据处于不断被消费的状态,当内存主队列中空余的数据容量达到设定的第一容量限值时,将非易失性存储介质中不超过设定的第一容量限值的队列数据存储到内存主队列中;
[0042]在具体实施过程中,当接收数据速度较慢或消费数据速度较快时,由于数据不断被移除,内存主队列的容量可能足够承载不断插入的数据,这时,可以只利用内存主队列进行数据的插入和移除操作,也即【背景技术】中所采用的数据存储方式;当接收数据速度较快或消费数据速度较慢时,内存主队列的容量不足以承载不断插入的数据,当内存主队列中存储的数据总量达到内存主队列的总容量时,将之后新接收的数据存储到内存缓冲队列中,之后根据本发明实施例进行从内存缓冲队列到非易失性存储介质,再从非易失性存储介质到内存主队列的数据存储。
[0043]在具体实施过程中,在接收到数据后,可以判断内存主队列中的数据总量是否达到最大容量,非易失性存储介质中是否存在队列数据,内存缓冲队列中是否存储有数据,只要满足内存主队列中的数据总量达到最大容量、非易失性存储介质中存在队列数据、内存缓冲队列中存储有数据这三个条件中的任意一个条件,则说明当前系统进入序列化状态,也即进入采用内存缓冲队列和非易失性存储介质辅助存储的方式,则可以将数据插入到内存缓冲队列中,否则,说明当前系统处于普通的非序列化状态,也即只采用内存主队列进行数据存储的方式,则可以将数据插入到内存主队列中。
[0044]较佳地,步骤S103中,设定的第一容量限值不小于内存缓冲队列的总容量;
[0045]将非易失性存储介质中不超过设定的第一容量限值的数据存储到内存主队列中,包括:
[0046]根据接收数据的先后顺序,将非易失性存储介质中不超过设定的第一容量限值的数据以内存缓冲队列的总容量为单位存储到内存主队列中。
[0047]这里,将从内存缓冲队列到非易失性存储介质,从非易失性存储介质到内存主队列的数据存储都以内存缓冲队列的总容量大小为单位进行,这种批量存储的方式可以减少非易失性存储介质输入输出(Input/Output, I/O)的频次,提高系统吞吐量和并行处理能力。由于数据从非易失性存储介质到内存主队列的存储是以内存缓冲队列的总容量大小为单位的,这里设定的第一容量限值需不小于内存缓冲队列的总容量。
[0048]在具体实施过程中,根据队列操作的先入先出原则,先插入到内存队列中的数据也要优先从队列中移除,因此,为了保证内存主队列中的数据插入操作按接收数据的先后顺序进行,可以根据接收数据的先后顺序,分别将非易失性存储介质中以内存缓冲队列的总容量为单位的数据集合存储到内存主队列中。具体地,当内存缓冲队列中存储的数据达到最大容量后,将内存缓冲队列中的数据通过序列化的方式一次性写入到非易失性存储介质中,也即,写入到非易失性存储介质中的数据在队列中是按照被接收时的先后顺序排序的;在这个过程中,内存主队列中的数据被持续移除,当内存主队列中空余的数据容量达到设定的第一容量限值后,可以将写入到非易失性存储介质中的数据以内存缓冲队列的总容量为单位反序列化到内存主队列中;这里,可以把内存缓冲队列中存储的数据达到总容量时的所有数据作为一个数据集合,将写入到非易失性存储介质中的数据集合按先后顺序插入到内存主队列中;可以根据内存主队列空余容量的大小,确定插入到内存主队列中的数据集合个数,假设内存主队列的总容量大小为N,N为大于O的数值,内存缓冲队列的总容量大小为N/3,则可以设定第一容量限值为大于或等于N/3的值;比如,将第一容量限值设为2N/3,则当内存主队列中空余的容量达到2N/3时,若这时非易失性存储介质中的队列数据为N/3,则将非易失性存储介质中的全部队列数据插入到内存主队列中,若这时非易失性存储介质中的队列数据为2N/3,则将先存入到非易失性存储介质中的第一个数据集合,SP第一个大小为N/3的数据集合先插入到内存主队列中,将后存入到非易失性存储介质中的第二个数据集合,即第二个大小为N/3的数据集合后插入到内存主队列中,这里,可以在将第一个数据集合存入到内存主队列中后,立即将第二个数据集合存入到内存主队列中,也可以在将第一个数据集合存入到内存主队列中后,待内存主队列中的空余容量再次达到设定的第一容量限值后,将第二个数据集合存入到内存主队列中。若这时非易失性存储介质中的队列数据为N,由于内存主队列中空余的容量只有2N/3,非易失性存储介质中只能有2N/3的队列数据插入到内存主队列中;再比如,将第一容量限值设为N,也即,设定当内存主队列为空时将非易失性存储介质中的数据存储到内存主队列中,这时,若非易失性存储介质中的队列数据为N,可以分别将三个大小为N/3的数据集合依次存入到内存主队列中。
[0049]较佳地,步骤S103中,将非易失性存储介质中不超过设定的第一容量限值的数据存储到内存主队列中,包括:
[0050]当内存主队列中的数据被全部处理完后,将非易失性存储介质中不超过设定的第一容量限值的数据存储到内存主队列中。
[0051]在具体实施过程中,可以对内存主队列中的空余容量进行实时监测,当发现内存主队列中的空余容量达到设定的第一容量限值后,将非易失性存储介质中不超过设定的第一容量限值的数据以内存缓冲队列的总容量为单位存储到内存主队列中;为了降低数据存储的繁琐程度,可以将内存主队列的第一容量限值设为内存主队列的总容量,也即当内存主队列的数据被全部处理完后,将非易失性存储介质中不超过内存主队列总容量的数据以内存缓冲队列的总容量为单位存储到内存主队列中;
[0052]较佳地,如果当内存主队列中的数据被全部处理完时,非易失性存储介质中的数据总量大于内存主队列的总容量,则将非易失性存储介质中以内存缓冲队列的总容量为单位的数据集合依次存储到内存主队列中,直到内存主队列中无法再容纳更多的数据集合,如果当内存主队列中的数据被全部处理完时,非易失性存储介质中的数据总量小于或等于内存主队列的总容量,则将非易失性存储介质中的所有以内存缓冲队列的总容量为单位的数据集合依次存储到内存主队列中。
[0053]较佳地,步骤S103之后,还包括:
[0054]在非易失性存储介质中不存在数据,且内存缓冲队列中存储的数据总量未达到内存缓冲队列的最大容量,且内存主队列中空余的存储容量大于设定的第二容量限值时,将内存缓冲队列中的数据全部存储到内存主队列中;设定的第二容量限值不小于内存缓冲队列的总容量。
[0055]在具体实施过程中,当内存主队列的容量足够承载新接收的数据时,也即接收数据速度较慢或消费数据速度较快状态下,若继续采用非易失性存储介质和缓冲队列辅助进行数据存储,数据的存储和处理效率较低,因此,当将非易失性存储介质中的数据全部存储到内存主队列中后,若内存缓冲队列中存储的数据总量未达到内存缓冲队列的最大容量,且这时内存主队列中空余的容量足够承载内存缓冲队列的数据,则可以将内存缓冲队列中的数据全部存储到内存主队列中,之后采用内存主队列进行数据的移除操作;这里,可以将第二容量限值设为内存主队列总容量的一半。
[0056]较佳地,可以设定当将非易失性存储介质中的数据全部存储到内存主队列中之后,若内存缓冲队列中存储的数据总量未达到内存缓冲队列的最大容量,且内存主队列中空余的存储容量不小于内存主队列总容量的一半时,将内存缓冲队列中的数据全部存储到内存主队列中。
[0057]较佳地,在步骤SlOl之后,步骤S102之前,还包括:[0058]若内存主队列中的空余容量达到上述第二容量限值,内存缓冲队列中存储的数据总量未达到内存缓冲队列的总容量,则将内存缓冲队列中的数据全部存储到内存主队列中。
[0059]在具体实施过程中,若在内存缓冲队列中的数据未达到内存缓冲队列总容量时,内存主队列中的空余容量达到上述第二容量限值,为了不耽误数据处理,可以将内存缓冲队列中的数据立即全部存储到内存主队列中进行处理,以避免当内存主队列中的数据被全部处理完时,内存缓冲队列中的数据总量还未达到最大容量,从而无法及时处理内存缓冲队列中的数据。
[0060]较佳地,将内存缓冲队列中的数据全部存储到内存主队列中之后,还包括:
[0061]将新接收的数据存储到内存主队列中。
[0062]这里,根据上述内容,在将内存缓冲队列中的数据全部存储到内存主队列中后,若这时内存主队列中的数据总量还未达到最大容量,为了提高运行效率,将存储方式转换为只采用内存主队列存储的普通方式,即将新接收的数据存储到内存主队列中,并继续监测内存主队列的数据存储情况,根据具体情况灵活选择存储方式。
[0063]如图2所示,为本发明实施例处理数据的具体流程图,包括以下步骤:
[0064]S201:初始化系统,将接收的数据插入到内存主队列尾部,将消费的数据从内存主队列头部移除;
[0065]如图3A所示,为只通过内存主队列进行数据存储的示意图;这时,非易失性存储介质和内存缓冲队列中的队列数据都为空,接收的数据插入到内存主队列尾部,消费的数据从内存主队列头部移除。
[0066]S202:当内存主队列的数据总量达到最大容量时,将新接收的数据存储到内存缓冲队列中;
[0067]如图3B所示,为将新接收的数据存储到内存缓冲队列中的示意图;这里,可以将内存缓冲队列的总容量设定为内存主队列总容量的三分之一。
[0068]S203:当内存缓冲队列的数据总量达到最大容量时,将内存缓冲队列的所有数据存储到非易失性存储介质中;
[0069]如图3C所示,为将内存缓冲队列的数据存储到非易失性存储介质中的示意图;如图所示,在将内存缓冲队列中的数据存储到非易失性存储介质的过程中,数据可以继续从内存主队列中移除,新接收的数据也可以继续插入到内存缓冲队列中,也即,数据的插入和移除操作依然可以并行进行,从很大程度上提高了系统运行效率。
[0070]在具体实施过程中,为了避免在内存主队列中的数据处理完时无法及时处理内存缓冲队列中的数据,可以在内存主队列中存储的数据总量小于总容量的一半时,若非易失性存储介质中没有存储队列数据,且内存缓冲队列中存储的数据总量未达到内存缓冲队列的总容量,则将内存缓冲队列中的数据全部存储到内存主队列中。
[0071]S204:当内存主队列中的数据被全部移除后,根据接收数据的先后顺序,将非易失性存储介质中至少一个以内存缓冲队列的最大容量为单位的数据集合存储到内存主队列中;
[0072]如图3D所示,为将非易失性存储介质中的队列数据存储到内存主队列的示意图;在将非易失性存储介质中的队列数据存储到内存主队列的过程中,数据可以继续从内存主队列中移除,新接收的数据也可以继续插入到内存缓冲队列中,也即,数据的插入和移除操作同样可以继续并行进行。
[0073]S205:当内存主队列中的数据总量小于内存主队列总容量的一半,非易失性存储介质中的队列数据为空,并且内存缓冲队列中的数据总量未达到内存缓冲队列的最大容量时,将内存缓冲队列中的所有数据存储到内存主队列中。
[0074]如图3E所示,为将内存缓冲队列中的数据存储到内存主队列中的示意图;这个存储过程仍然不会影响数据的插入和移除操作。在将内存缓冲队列中的所有数据存储到内存主队列中后,由于内存主队列中的数据总量还未达到内存主队列的总容量,之后新接收的数据可以插入到内存主队列中,也即只采用内存主队列进行之后的数据存储,当内存主队列中的数据总量达到最大容量后,重复上述步骤S202飞205。
[0075]基于同一发明构思,本发明实施例中还提供了一种与存储数据的方法对应的存储数据的装置,由于该装置解决问题的原理与本发明实施例存储数据的方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
[0076]如图4所示,为本发明实施例提供的存储数据的装置结构图,包括:
[0077]第一存储模块41,用于当内存主队列中存储的数据总量达到内存主队列的总容量后,将新接收的数据存储到总容量小于内存主队列总容量的内存缓冲队列中;
[0078]第二存储模块42,用于当内存缓冲队列中存储的数据总量达到内存缓冲队列的总容量时,将内存缓冲队列的数据存储到非易失性存储介质中;
[0079]第三存储模块43,用于当内存主队列中空余的容量达到设定的第一容量限值时,将非易失性存储介质中不超过第一容量限值的数据存储到内存主队列中。
[0080]较佳地,第三存储模块43具体用于:
[0081]当内存主队列中空余的容量达到设定的不小于内存缓冲队列总容量的第一容量限值时,根据接收数据的先后顺序,将非易失性存储介质中不超过第一容量限值的数据以内存缓冲队列的总容量为单位存储到内存主队列中。
[0082]较佳地,第三存储模块43具体用于:
[0083]当内存主队列中的数据被全部处理完后,将非易失性存储介质中不超过第一容量限值的数据存储到内存主队列中。
[0084]较佳地,第三存储模块43还用于:
[0085]在非易失性存储介质中不存在数据,且内存缓冲队列中存储的数据总量未达到内存缓冲队列的最大容量,且内存主队列中空余的存储容量大于设定的不小于内存缓冲队列总容量的第二容量限值时,将述内存缓冲队列中的数据全部存储到内存主队列中。
[0086]较佳地,第三存储模块43还用于,
[0087]在第一存储模块将新接收的数据存储到内存缓冲队列中之后,第二存储模块将内存缓冲队列的数据存储到非易失性存储介质中之前,若内存主队列中的空余容量达到第二容量限值时,内存缓冲队列中存储的数据总量未达到内存缓冲队列的总容量,则将内存缓冲队列中的数据全部存储到内存主队列中。
[0088]较佳地,第三存储模块43还用于,
[0089]在将内存缓冲队列中的数据全部存储到内存主队列中之后,将新接收的数据存储到内存主队列中。[0090]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0091]本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0092]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0093]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0094]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0095]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种存储数据的方法,其特征在于,该方法包括: 当内存主队列中存储的数据总量达到所述内存主队列的总容量后,将新接收的数据存储到内存缓冲队列中;所述内存缓冲队列的总容量小于所述内存主队列的总容量; 当所述内存缓冲队列中存储的数据总量达到所述内存缓冲队列的总容量时,将所述内存缓冲队列的数据存储到非易失性存储介质中; 当所述内存主队列中空余的容量达到设定的第一容量限值时,将所述非易失性存储介质中不超过所述第一容量限值的数据存储到所述内存主队列中。
2.如权利要求1所述的方法,其特征在于,所述设定的第一容量限值不小于所述内存缓冲队列的总容量; 将所述非易失性存储介质中不超过所述第一容量限值的数据存储到所述内存主队列中,包括: 根据接收数据的先后顺序,将所述非易失性存储介质中不超过所述第一容量限值的数据以所述内存缓冲队列的总容量为单位存储到所述内存主队列中。
3.如权利要求1所述的方法,其特征在于,将所述非易失性存储介质中不超过所述第一容量限值的数据存储到所 述内存主队列中,包括: 当所述内存主队列中的数据被全部处理完后,将所述非易失性存储介质中不超过所述第一容量限值的数据存储到所述内存主队列中。
4.如权利要求1所述的方法,其特征在于,将所述非易失性存储介质中不超过所述第一容量限值的数据存储到所述内存主队列之后,还包括: 在所述非易失性存储介质中不存在数据,且所述内存缓冲队列中存储的数据总量未达到所述内存缓冲队列的最大容量,且所述内存主队列中空余的存储容量大于设定的第二容量限值时,将所述内存缓冲队列中的数据全部存储到所述内存主队列中;所述第二容量限值不小于所述内存缓冲队列的总容量。
5.如权利要求4所述的方法,其特征在于,将新接收的数据存储到内存缓冲队列中之后,将所述内存缓冲队列的数据存储到非易失性存储介质中之前,还包括: 若所述内存主队列中的空余容量达到所述第二容量限值,所述内存缓冲队列中存储的数据总量未达到所述内存缓冲队列的总容量,则将所述内存缓冲队列中的数据全部存储到所述内存主队列中。
6.如权利要求4或5所述的方法,其特征在于,将所述内存缓冲队列中的数据全部存储到所述内存主队列中之后,还包括: 将新接收的数据存储到所述内存主队列中。
7.一种存储数据的装置,其特征在于,该装置包括: 第一存储模块,用于当内存主队列中存储的数据总量达到所述内存主队列的总容量后,将新接收的数据存储到总容量小于所述内存主队列总容量的内存缓冲队列中; 第二存储模块,用于当所述内存缓冲队列中存储的数据总量达到所述内存缓冲队列的总容量时,将所述内存缓冲队列的数据存储到非易失性存储介质中; 第三存储模块,用于当所述内存主队列中空余的容量达到设定的第一容量限值时,将所述非易失性存储介质中不超过所述第一容量限值的数据存储到所述内存主队列中。
8.如权利要求7所述的装置,其特征在于,所述第三存储模块具体用于:当所述内存主队列中空余的容量达到设定的不小于所述内存缓冲队列总容量的第一容量限值时,根据接收数据的先后顺序,将所述非易失性存储介质中不超过所述第一容量限值的数据以所述内存缓冲队列的总容量为单位存储到所述内存主队列中。
9.如权利要求7所述的装置,其特征在于,所述第三存储模块具体用于: 当所述内存主队列中的数据被全部处理完后,将所述非易失性存储介质中不超过所述第一容量限值的数据存储到所述内存主队列中。
10.如权利要求7所述的装置,其特征在于,所述第三存储模块还用于: 在所述非易失性存储介质中不存在数据,且所述内存缓冲队列中存储的数据总量未达到所述内存缓冲队列的最大容量,且所述内存主队列中空余的存储容量大于设定的不小于所述内存缓冲队列总容量的第二容量限值时,将所述内存缓冲队列中的数据全部存储到所述内存主队列中。
11.如权利要求10所述的装置,其特征在于,所述第三存储模块还用于, 在所述第一存储模块将新接收的数据存储到内存缓冲队列中之后,所述第二存储模块将所述内存缓冲队列的数据存储到非易失性存储介质中之前,若所述内存主队列中的空余容量达到所述第二容量限值时,所述内存缓冲队列中存储的数据总量未达到所述内存缓冲队列的总容量,则将所述内存缓冲队列中的数据全部存储到所述内存主队列中。
12.如权利要求10或11所述的装置,其特征在于,所述第三存储模块还用于, 在将所述内存缓冲队列中的数据全部存储到所述内存主队列中之后,将新接收的数据存储到所述内存主队列中。
【文档编号】G06F12/08GK104008067SQ201310055475
【公开日】2014年8月27日 申请日期:2013年2月21日 优先权日:2013年2月21日
【发明者】张文凌, 吴宏强 申请人:联动优势科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1