CN103473329A - 持久化数据队列及其加载的方法和装置 - Google Patents
持久化数据队列及其加载的方法和装置 Download PDFInfo
- Publication number
- CN103473329A CN103473329A CN2013104254214A CN201310425421A CN103473329A CN 103473329 A CN103473329 A CN 103473329A CN 2013104254214 A CN2013104254214 A CN 2013104254214A CN 201310425421 A CN201310425421 A CN 201310425421A CN 103473329 A CN103473329 A CN 103473329A
- Authority
- CN
- China
- Prior art keywords
- data
- queue
- persistence
- length
- persistent
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种持久化数据队列的方法和装置,以及数据加载的方法和装置。持久化数据队列的方法包括在数据队列中的数据长度超过上限值后,将新增的数据填充至一持久队列之中;所述持久队列中的数据长度达到预设值后,则对所述持久队列中的数据进行持久化操作。本发明所述的方法对数据队列中数据长度进行监控,在数据队列的数据长度超过上限值后,将新增的数据暂时存放在持久队列之中,然后才批量进行持久化操作,这样可以批量进行读取操作,提高系统总体性能,降低了系统的负载。
Description
技术领域
本发明属于计算机技术领域,尤其是一种持久化数据队列的方法和装置,及其对应的数据加载方法和装置。
背景技术
在各种模块化系统中,模块之间通过数据进行交互。为了异步化模块间交互,一般都需要采用队列系统,用于模块间通信。队列(Queue)是指不仅允许在其中插入数据,而且可以从其中取出数据进行操作的数据单元。一般而言,对队列的操作主要包括加载、读取、删除,即将将需要队列化操作的数据价加载至队列之中,从队列中读取数据后,将该数据进行删除。
由于计算机的资源是有限的,因此对队列的长度也存在限制。因此当队列长度超出限制后,只能丢弃新增的数据或者将队列中已经存在的数据抛弃。此外,在计算机关机或者断电后,也会导致队列中已存在的数据丢失。为此,研究人员提出了持久化的队列方法,例如将需要保存的队列中的数据存储在本地数据文件、内存数据库或者远程数据库中。
然而,该持久化数据队列的方法由于采用严格持久化,每个进入队列的数据都需要持久化一次,导致对数据的读写频繁操作,导致计算机系统的性能下降或阻塞。此外,对单个数据进行操作也无法有效利用磁盘的连续读写性能,读写速度较慢,而且在多线程并行入队列的时候,可能会导致并行IO操作。
发明内容
为此,本发明的目的是要提供一种持久化数据队列的方法和装置,旨在解决现有持久化队列需要频繁进行读取操作,导致系统负载较大的技术缺陷。此外,本发明还提供了一种与所述持久化数据队列的方法和装置对应的队列的数据加载方法和装置。
为此,本发明所述采用的技术方案如下:
本发明第一方面提供了一种持久化数据队列的方法,包括以下步骤:
在数据队列中的数据长度超过上限值后,将新增的数据填充至一持久队列之中;
所述持久队列中的数据长度达到预设值后,则对所述持久队列中的数据进行持久化操作。
根据本发明第一方面提供的方法,在对所述持久队列中的数据进行持久化操作后,将所述持久队列中的数据清除。
根据本发明第一方面提供的方法,所述数据队列中数据长度的上限值为所述数据队列的长度的80%~95%,优选90%。
根据本发明第一方面提供的方法,所述持久队列位于内存之中,和/或所述持久化操作包括将所述持久队列中的数据存放至文件系统的步骤。
本发明第二方面提供了一种持久化数据队列的装置,包括:
填充模块,用于在数据队列中的数据长度超过上限值后,将新增的数据填充至一持久队列之中;
持久化模块,用于所述持久队列中的数据长度达到预设值后,则对所述持久队列中的数据进行持久化操作。
根据本发明第二方面提供的方法,,还包括清除模块,用于在对所述持久队列中的数据进行持久化操作后,将所述持久队列中的数据清除。
此外,本发明第三方面提供了一种数据队列的数据加载方法,包括以下步骤:
在数据队列中的数据长度低于下限值后,将文件系统中的持久化的数据加载至所述数据队列之中;
在出现以下条件之一后,停止数据加载,
A、数据队列中的数据长度超过其上限值;
B、持久化的数据和持久队列中的数据已经全部被加载。
根据本发明第三方面提供的方法,在加载数据时,新增的数据直接写入所述数据队列之中。
根据本发明第三方面提供的方法,所述下限值为所述数据队列的长度的5%~15%,优选为数据队列的长度的10%。
另外,本发明第四方面提供了一种数据队列的数据加载装置,包括:
加载模块,用于在数据队列中的数据长度低于下限值后,将文件系统中的持久化的数据加载至所述数据队列之中;
停止模块,用于在出现以下条件之一后,停止数据加载,
A、所述数据队列中的数据长度超过其上限值;
B、持久化的数据和持久队列中的数据已经全部被加载。
通过上述本发明的技术方案可以看出,本发明所述的持久化数据队列的方法对数据队列中数据长度进行监控,在数据队列的数据长度超过上限值后,将新增的数据暂时存放在持久队列之中,然后才批量进行持久化操作,这样可以批量进行读取操作,提高系统总体性能,降低了系统的负载。
附图说明
图1是本发明所述持久化数据队列的方法一实施方式的流程图;
图2是本发明所述持久化数据队列的方法一实施方式的流程图;
图3是本发明所述持久化数据队列的方法一实施方式中队列的示意图;
图4是本发明所述持久化数据队列的方法一实施方式中数据的存储示意图;
图5是本发明所述持久化数据队列的装置一实施方式的示意图;
图6是本发明所述持久化数据队列的装置一实施方式的示意图;
图7是本发明所述数据队列的数据加载方法一实施方式的流程图;
图8是本发明所述数据队列的数据加载装置一实施方式的示意图;
图9是本发明所述持久化数据队列和数据加载过程的示意图;
图中:
10:填充模块;20:持久化模块;30:清除模块;40:加载模块;50:停止模块。
本发明目的的实现、功能特点及优异效果,将在下面结合具体实施例以及附图做进一步的说明。
具体实施方式
下面结合附图和具体实施例对本发明所述技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
参见图1,图1是本发明所述持久化数据队列的方法一实施方式的流程图。在图1示出的实施方式中,该持久化数据队列的方法,包括以下步骤:
步骤S101:在数据队列中的数据长度超过上限值后,将新增的数据填充至一持久队列之中;
步骤S102:所述持久队列中的数据长度达到预设值后,则对所述持久队列中的数据进行持久化操作。
参见图3,图3是本发明所述持久化数据队列的方法一实施方式中队列的示意图。如图3所示,所述数据队列中的数据长度设置有上限值,其中,所述的上限值可以根据数据队列的长度和/或系统性能等因素进行设置,可以是静态的,也可以是根据系统运行状况动态设置。优选的,可以将所述数据队列中数据长度的上限值设置为数据队列的总长度的80%~95%,优选为数据队列的总长度的90%。即在对数据队列中的数据长度的监控过程中,发现数据队列中数据长度超过数据队列的总超度的90%后,新增的数据提交至持久队列中存放,而不再提交至数据队列之中。这样,数据队列的长度不会再增加,从而可以避免数据队列堵塞的情况。在实际应用的过程中,为了确保数据队列操作的非阻塞性,还可以根据硬件系统的负载情况等等调整所述上限值。
参见图4,图4是本发明所述持久化数据队列的方法一实施方式中数据的存储示意图。由于持久队列的空间(即长度)也是有限的,当持久队列中的数据长度达到预设值后,则需要启动持久化操作。将持久队列中的数据转移至一些非易失型的存储器当中进行保存,尤其是一些断电仍能保存信息的存储器,例如磁盘文件系统。此外,上述的“预设值”可以是根据实际系统状况或者应用需要进行设置,例如可以是所述持久队列的整个长度,即当数据完全填满所述持久队列后,即可启动持久化操作。尽管如此,还可以设置启动持久化操作的其他的启动阈值,例如可以是持久队列总长度的50%,60%或者80%~90%等等,本领域技术人员可以任意设置,本发明对此不作限制。
此外,在一些优选的实施方式中,为了合理利用系统资源,可以将所述持久队列配置在内存之中。此外,所述持久化操作包括将所述持久队列中的数据存放非易失型的存储设备,例如磁盘文件系统当中。其中,所述的持久化操作的方法可以是现有的,例如将持久队列中的数据存储在数据库之中的方法。
这样,即使系统断电或者关机的情况下,也仅仅会丢失内存内的数据队列和持久队列中的数据,而持久化的数据则依然能够在系统内而不会丢失。此外,由于数据是批量从持久队列中进行持久化操作的,因而可以利用磁盘系统的连续写入的功能进行处理,极大地提高了系统的性能,降低了系统的负载,使得系统的延迟更低。另外,对于数据进入数据队列的操作,由于是根据数据队列的长度来决定是否对其进行持久化操作,即使是在多线程并入数据队列的情况下,也不会出现并行的磁盘的读写操作。
参见图2,图2是本发明所述持久化数据队列的方法一实施方式的流程图。在图2示出的实施方式中,该持久化数据队列的方法在对所述持久队列中的数据进行持久化操作后,还包括步骤S103,在步骤S103中,将所述持久队列中的数据清除。
相应的,参见图5,图5是本发明所述持久化数据队列的装置一实施方式的示意图。在图5示出的实施方式中,该持久化数据队列的装置包括:
填充模块10,用于在数据队列中的数据长度超过上限值后,将新增的数据填充至一持久队列之中;
持久化模块20,用于所述持久队列中的数据长度达到预设值后,则对所述持久队列中的数据进行持久化操作。
参见图6,图6是本发明所述持久化数据队列的装置一实施方式的示意图。在图6示出的实施方式中,该结构的持久化数据队列的装置还包括清除模块30,用于在对所述持久队列中的数据进行持久化操作后,将所述持久队列中的数据清除。
参见图7,图7是本发明所述数据队列的数据加载方法一实施方式的流程图。在图7示出的实施方式中,该队列的数据加载方法与上述实施方式涉及的持久化的方法对应,具体包括以下步骤:
步骤S701:在数据队列中的数据长度低于下限值后,将文件系统中的持久化的数据加载至所述数据队列之中。在加载数据时,优选以批量的方式,例如可以从磁盘文件系统中加载持久化的数据至数据队列当中。在一些优选的实施方式中,在加载数据之前,还需要判断是否存在持久化的数据,如果判断存在,则可以开始持久化的数据的加载。
步骤S702:在出现以下条件之一后,停止数据加载,
A、数据队列中的数据长度超过其上限值;
B、持久化的数据和持久队列中的数据已经全部被加载。
此外,在一些优选的实施方式中,在加载数据时,新增的数据可以直接写入数据队列之中。其中,所述下限值可以为数据队列的长度的5%~15%,优选为数据队列的长度的10%。由于加载数据的过程是以批量的方式完成的,因此可以较好地利用磁盘的连续读写的性能,提高了系统的性能,可以降低系统的负载。
参见图8,图8是本发明所述队列的数据加载装置一实施方式的示意图。在图8示出的实施方式中,该队列的数据加载装置,包括:
加载模块40,用于在数据队列中的数据长度低于下限值后,将文件系统中的持久化的数据加载至所述数据队列之中;
停止模块50,用于在出现以下条件之一后,停止数据加载,
A、所述数据队列中的数据长度超过其上限值;
B、持久化的数据和持久队列中的数据已经全部被加载。
尽管上述实施方式涉及的持久化数据队列的方法与所述数据加载方法涉及的实施方式可以是对应的,但并不意味着持久化数据队列的方法仅仅能够使用上述的数据加载方法进行加载,同样也不意味着数据加载方法仅仅能够对上述持久化数据队列的方法进行加载。
参见图9,图9是本发明所述持久化数据队列和数据加载过程的示意图。在图9示出的实施方式中,通过系统监控数据队列中的数据长度,一旦数据队列中的数据长度超过预设的上限值,则将新增的数据填充至一持久队列之中。
通过对数据队列中数据长度的控制和批量处理,可以避免出现读写同时进行。另外,所述持久队列中的数据长度达到预设值后,则对所述持久队列中的数据进行持久化操作。另外一方面,当在数据队列中的数据长度低于下限值后,将持久化的数据加载至数据队列之中。从上述工作过程可以看出,本发明的实施方式中涉及的方法通过基于数据队列中的数据长度的监控进行持久化操作,从而可以避免出现读写同时进行的状况。另外,由于通过批量的进行写入、读取操作,可以较好利用磁盘连续读写性能,降低了系统的负载,提高了系统的性能。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种持久化数据队列的方法,其特征在于,包括以下步骤:
在数据队列中的数据长度超过上限值后,将新增的数据填充至一持久队列之中;
所述持久队列中的数据长度达到预设值后,则对所述持久队列中的数据进行持久化操作。
2.如权利要求1所述的持久化数据队列的方法,其特征在于,在对所述持久队列中的数据进行持久化操作后,将所述持久队列中的数据清除。
3.如权利要求1所述的持久化数据队列的方法,其特征在于,所述数据队列中数据长度的上限值为所述数据队列的长度的80%~95%,优选90%。
4.如权利要求1所述的持久化数据队列的方法,其特征在于,所述持久队列位于内存之中,和/或所述持久化操作包括将所述持久队列中的数据存放至文件系统的步骤。
5.一种持久化数据队列的装置,其特征在于,包括:
填充模块,用于在数据队列中的数据长度超过上限值后,将新增的数据填充至一持久队列之中;
持久化模块,用于所述持久队列中的数据长度达到预设值后,则对所述持久队列中的数据进行持久化操作。
6.如权利要求5所述的持久化数据队列的装置,其特征在于,还包括清除模块,用于在对所述持久队列中的数据进行持久化操作后,将所述持久队列中的数据清除。
7.一种数据队列的数据加载方法,其特征在于,包括以下步骤:
在数据队列中的数据长度低于下限值后,将文件系统中的持久化的数据加载至所述数据队列之中;
在出现以下条件之一后,停止数据加载,
A、数据队列中的数据长度超过其上限值;
B、持久化的数据和持久队列中的数据已经全部被加载。
8.如权利要求7所述的队列的数据加载方法,其特征在于,在加载数据时,新增的数据直接写入所述数据队列之中。
9.如权利要求7所述的队列的数据加载方法,其特征在于,所述下限值为所述数据队列的长度的5%~15%,优选为数据队列的长度的10%。
10.一种数据队列的数据加载装置,其特征在于,包括:
加载模块,用于在数据队列中的数据长度低于下限值后,将文件系统中的持久化的数据加载至所述数据队列之中;
停止模块,用于在出现以下条件之一后,停止数据加载,
A、所述数据队列中的数据长度超过其上限值;
B、持久化的数据和持久队列中的数据已经全部被加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013104254214A CN103473329A (zh) | 2013-09-17 | 2013-09-17 | 持久化数据队列及其加载的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013104254214A CN103473329A (zh) | 2013-09-17 | 2013-09-17 | 持久化数据队列及其加载的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103473329A true CN103473329A (zh) | 2013-12-25 |
Family
ID=49798177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013104254214A Pending CN103473329A (zh) | 2013-09-17 | 2013-09-17 | 持久化数据队列及其加载的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103473329A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838547A (zh) * | 2012-11-27 | 2014-06-04 | 中国电信股份有限公司 | 一种队列的管理方法和装置 |
CN105893541A (zh) * | 2016-03-31 | 2016-08-24 | 中国科学院软件研究所 | 一种基于混合存储的流式数据自适应持久化方法及系统 |
CN106453477A (zh) * | 2016-01-19 | 2017-02-22 | 实富特信息通讯有限公司 | 数据的分割传送及处理的方法和客户端 |
CN110347339A (zh) * | 2019-06-28 | 2019-10-18 | 华中科技大学 | 一种针对机械硬盘的可控连续写方法、调度器及存储系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090141606A1 (en) * | 2007-12-03 | 2009-06-04 | Tun-Hsing Liu | Method and system for managing data from host to optical disc |
CN101459627A (zh) * | 2008-04-07 | 2009-06-17 | 中兴通讯股份有限公司 | 消息管理方法 |
CN101510838A (zh) * | 2009-02-26 | 2009-08-19 | 北京北纬点易信息技术有限公司 | 实现持久化数据队列的方法 |
CN102117308A (zh) * | 2010-01-06 | 2011-07-06 | 卓望数码技术(深圳)有限公司 | 一种数据处理方法和数据处理系统 |
CN102541746A (zh) * | 2010-12-07 | 2012-07-04 | 深圳市金蝶中间件有限公司 | 一种队列的数据处理方法和系统 |
CN104008067A (zh) * | 2013-02-21 | 2014-08-27 | 联动优势科技有限公司 | 一种存储数据的方法及装置 |
-
2013
- 2013-09-17 CN CN2013104254214A patent/CN103473329A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090141606A1 (en) * | 2007-12-03 | 2009-06-04 | Tun-Hsing Liu | Method and system for managing data from host to optical disc |
CN101459627A (zh) * | 2008-04-07 | 2009-06-17 | 中兴通讯股份有限公司 | 消息管理方法 |
CN101510838A (zh) * | 2009-02-26 | 2009-08-19 | 北京北纬点易信息技术有限公司 | 实现持久化数据队列的方法 |
CN102117308A (zh) * | 2010-01-06 | 2011-07-06 | 卓望数码技术(深圳)有限公司 | 一种数据处理方法和数据处理系统 |
CN102541746A (zh) * | 2010-12-07 | 2012-07-04 | 深圳市金蝶中间件有限公司 | 一种队列的数据处理方法和系统 |
CN104008067A (zh) * | 2013-02-21 | 2014-08-27 | 联动优势科技有限公司 | 一种存储数据的方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838547A (zh) * | 2012-11-27 | 2014-06-04 | 中国电信股份有限公司 | 一种队列的管理方法和装置 |
CN106453477A (zh) * | 2016-01-19 | 2017-02-22 | 实富特信息通讯有限公司 | 数据的分割传送及处理的方法和客户端 |
CN105893541A (zh) * | 2016-03-31 | 2016-08-24 | 中国科学院软件研究所 | 一种基于混合存储的流式数据自适应持久化方法及系统 |
CN105893541B (zh) * | 2016-03-31 | 2019-06-28 | 中国科学院软件研究所 | 一种基于混合存储的流式数据自适应持久化方法及系统 |
CN110347339A (zh) * | 2019-06-28 | 2019-10-18 | 华中科技大学 | 一种针对机械硬盘的可控连续写方法、调度器及存储系统 |
CN110347339B (zh) * | 2019-06-28 | 2020-07-10 | 华中科技大学 | 一种针对机械硬盘的可控连续写方法、调度器及存储系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102362464B (zh) | 内存访问监测方法和装置 | |
US7596657B2 (en) | Increased storage capacity for solid state disks using data compression | |
CN103473329A (zh) | 持久化数据队列及其加载的方法和装置 | |
CN105630700B (zh) | 一种具有二级缓存结构的存储系统及读写方法 | |
CN104063186A (zh) | 一种电子设备的数据访问方法 | |
CN102597912B (zh) | 用于平台功率节省的协调设备和应用程序中断事件 | |
JP2015528174A (ja) | ストレージアレイを管理する方法及び装置 | |
CN101582076A (zh) | 一种基于数据库的重复数据删除方法 | |
CN102722455B (zh) | 一种闪存设备中数据存储的方法及装置 | |
CN104778126A (zh) | 非易失性主存中事务数据存储优化方法及系统 | |
CN101499313B (zh) | 一种确保数据安全的方法、设备及存储系统 | |
EP3298495A1 (en) | Cache architecture and algorithms for hybrid object storage devices | |
CN102262559A (zh) | 一种资源共享的方法及系统 | |
CN106990924A (zh) | 一种数据迁移方法和系统 | |
CN104899071A (zh) | 集群中虚拟机的恢复方法和系统 | |
CN1996266A (zh) | 一种多级缓冲的存储系统和方法 | |
CN102439577A (zh) | 一种构建内存访问模型的方法及装置 | |
CN108351840A (zh) | 车辆控制装置 | |
CN109558335A (zh) | 一种基于Nor Flash存储器的嵌入式系统的文件存储格式 | |
CN101710252A (zh) | 一种存储系统的供电方法和供电装置 | |
CN102184141A (zh) | 检查点数据的存储方法和装置 | |
US20150026694A1 (en) | Method of processing information, storage medium, and information processing apparatus | |
CN108932112B (zh) | 一种固态颗粒的数据读写方法、装置、设备及介质 | |
CN104346395A (zh) | 硬盘文件储存方法 | |
CN109558093A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131225 |