CN105446893A - 数据存储方法及设备 - Google Patents

数据存储方法及设备 Download PDF

Info

Publication number
CN105446893A
CN105446893A CN201410333794.3A CN201410333794A CN105446893A CN 105446893 A CN105446893 A CN 105446893A CN 201410333794 A CN201410333794 A CN 201410333794A CN 105446893 A CN105446893 A CN 105446893A
Authority
CN
China
Prior art keywords
data
local cache
stored
described local
database
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
Application number
CN201410333794.3A
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410333794.3A priority Critical patent/CN105446893A/zh
Publication of CN105446893A publication Critical patent/CN105446893A/zh
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

本发明提供一种数据存储方法及设备。数据存储方法包括:当有待存储数据到达时,按照第一数据存储逻辑将所述待存储数据存储到本地缓存和/或数据库中;当预设的同步周期到达时,按照第二数据存储逻辑将所述本地缓存中的数据存储到所述数据库中。本发明技术方案可以在保证数据存储设备的吞吐量的同时,提高数据存储的实时性。

Description

数据存储方法及设备
【技术领域】
本发明涉及数据存储技术领域,尤其涉及一种数据存储方法及设备。
【背景技术】
Hbase是一个分布式的、面向列的开源数据库。作为Hbase的客户端,在向Hbase写入数据时首先会将数据写入到本地缓存,当本地缓存中的数据量超过阈值后,再将本地缓存中的数据一次性写入Hbase,这样可以保证客户端的吞吐量。但是,由于数据先写入客户端的本地缓存,只有本地缓存中的数据量超过阈值后才会被写入Hbase,因此,实时性很差。
【发明内容】
本发明的多个方面提供一种数据存储方法及设备,用以在保证数据存储设备的吞吐量的同时,提高数据存储的实时性。
本发明的一方面,提供一种数据存储方法,包括:
当有待存储数据到达时,按照第一数据存储逻辑将所述待存储数据存储到本地缓存和/或数据库中;
当预设的同步周期到达时,按照第二数据存储逻辑将所述本地缓存中的数据存储到所述数据库中。
本发明的另一方面,提供一种数据存储设备,包括:
存储模块,用于在有待存储数据到达时,按照第一数据存储逻辑将所述待存储数据存储到本地缓存和/或数据库中;
同步模块,用于在预设的同步周期到达时,按照第二数据存储逻辑将所述本地缓存中的数据存储到所述数据库中。
在本发明技术方案中,当有待存储数据到达时,按照第一数据存储逻辑将待存储数据存储到本地缓存和/或数据库中,其中,若先将待存储数据存到本地缓存,有利于提高数据存储设备的吞吐量,若直接将待存储数据存储到数据库中,则有利于提高数据存储的实时性;另外,还设置同步周期,当同步周期到达时,按照第二数据存储逻辑将本地缓存中的数据存储到数据库中,可以防止本地缓存中的数据长时间无法写入数据库的情况,一定程度上提高了将数据存储到数据库中的实时性。
【附图说明】
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的数据存储方法的流程示意图;
图2为本发明另一实施例提供的数据存储方法的流程示意图;
图3为本发明一实施例提供的数据存储设备的结构示意图;
图4为本发明另一实施例提供的数据存储设备的结构示意图。
【具体实施方式】
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的数据存储方法的流程示意图。如图1所示,该方法包括:
101、当有待存储数据到达时,按照第一数据存储逻辑将该待存储数据存储到本地缓存和/或数据库中。
102、当预设的同步周期到达时,按照第二数据存储逻辑将本地缓存中的数据存储到数据库中。
首先值得说明的是,上述步骤101和102之间并没有先后顺序,哪个条件先到达就先执行哪个条件对应的操作。详细来说,如果是先有待存储数据到达,则先按照第一数据存储逻辑将待存储数据存储到本地缓存和/或数据库中,之后,当预设的同步周期到达时,再按照第二数据存储逻辑将本地缓存中的数据存储到数据库中。如果是预设的同步周期先到达,则先按照第二数据存储逻辑将本地缓存中的数据存储到数据库中,之后,当有待存储数据到达时,再按照第一数据存储逻辑将待存储数据存储到本地缓存和/或数据库中。
本实施例对上述第一数据存储逻辑不做限定,凡是能够将待存储数据存储到本地缓存和/或数据库中的数据存储逻辑都适用于本发明。同理,本实施例对上述第二数据存储逻辑也不做限定,凡是能够在同步周期到达时将本地缓存中的数据存储到数据库中的数据存储逻辑也都适用于本发明。
在本实施例中,当有待存储数据到达时,数据存储设备可以按照第一数据存储逻辑将待存储数据存储到本地缓存和/或数据库中。本地缓存是指数据存储设备一侧的缓存空间。
在此说明,数据存储设备可以在待存储数据到达时,直接将待存储数据存储到数据库中,即实时的将待存储数据存储到数据库中,这样可以保证数据存储的实时性。或者,数据存储设备可以在本地缓存中有存储空间时,将待存储数据存储到本地缓存中,而在本地缓存中没有存储空间时,将待存储数据存储到数据库中。这样先在本地缓存中进行缓存,之后可以统一将本地缓存中的数据存储到数据库中,有利于提高数据存储设备的吞吐量。
另外,在本实施例中,预先设置同步周期,用于周期性的按照第二数据存储逻辑将本地缓存中的数据存储到数据库中,以避免本地缓存中的数据长时间不被写到数据库中,提高数据被存储到数据库的实时性。为了更加清楚的理解本实施例所带来的实时性的有益效果,下面对现有技术中本地缓存中的数据长时间不被写到数据库中的情况进行举例说明:
假设本地缓存的大小为5个缓存空间,每个数据占用1个缓存空间,前后有2次数据写入请求,第一写入请求请求写入的数据是第一数据、第二数据和第三数据,第二写入请求请求写入的数据是第四数据、第五数据、第六数据和第七数据;
当处理第一写入请求时,本地缓存的空间足够,此时,本地缓存中的数据是第一数据、第二数据和第三数据,数据库中暂时没有数据;
当处理第二写入请求时,本地缓存的空间不足,在写入第四数据和第五数据后,本地缓存中的数据量已达到阈值(在该实施方式中是指本地缓存已满),则需要将本地缓存中的数据一次性写入数据库中,然后清空本地缓存,再继续写入第六数据和第七数据。由于此时本地缓存的空间足够,则本地缓存中的第六数据和第七数据将不被写入数据库,如果本地缓存中的数据量一直未达到阈值(即本地缓存未满),则第六数据和第七数据将一直不被写入数据库,导致第六数据和第七数据无法及时被存储到数据库中,实时性较差。
而本实施例通过设置同步周期,当同步周期到达时,无论本地缓存中的数据量是否达到阈值,强制按照第二数据存储逻辑将本地缓存中的数据存储到数据库中,有利于保证数据被存储到数据库中的实时性。例如,当同步周期到达时,数据存储设备就可以将本地缓存中的第六数据和第七数据存储到数据库中,保证第六数据和第七数据能够及时存储到数据库中,提高了数据存储的实时性。
在此说明,上述同步周期可以根据实际应用适应性设备,本实施例对同步周期的取值不做限定,例如可以是30秒、50秒、1分钟、5分钟、10分钟、30分钟、1小时、1天等等。
本发明实施例中涉及的数据库可以是各种数据库,可以是Hbase。
下面对第一数据存储逻辑,也就是步骤101的实现方式进行说明。
步骤101的一种实现方式为:当有待存储数据到达时,数据存储设备判断本地缓存中的数据量是否大于预设的第一阈值,如果本地缓存中的数据量不大于(即小于或等于)第一阈值,则将待存储数据写入本地缓存中;如果本地缓存中的数据量大于第一阈值,则将本地缓存中的数据写入数据库,并在清空本地缓存后将待存储数据写入本地缓存。在该实现方式中,当本地缓存有存储空间时,先将待存储数据存储到本地缓存,当本地缓存中的数据量达到第一阈值后,再一次性将本地缓存中的数据存储到数据库中,有利于提高数据存储设备的吞吐量。
步骤101的另一种实现方式包括:当有待存储数据到达时,数据存储设备将待存储数据写入本地缓存,在将待存储数据写入本地缓存后,判断本地缓存中的数据量是否大于预设的第一阈值,如果本地缓存的数据量大于第一阈值,则将本地缓存中的数据写入数据库,并清空本地缓存;如果本地缓存中的数据量不大于第一阈值,则结束此次存储操作。该实现方式与上述实现方式的区别在于存储待存储数据与判断本地缓存中的数据量是否大于第一阈值的先后顺序不同,但技术方案在实质上是相同的。因此,本实现方式也有利于提高数据存储设备的吞吐量。
步骤101的又一种实现方式包括:当有待存储数据到达时,数据存储设备判断本地缓存中的数据量是否大于预设的第一阈值,如果本地缓存中的数据量不大于第一阈值,则将待存储数据写入本地缓存中;如果本地缓存中的数据量大于第一阈值,则将待存储数据和本地缓存中的数据一并写入数据库中,并清空本地缓存。在该实现方式中,当本地缓存有存储空间时,先将待存储数据存储到本地缓存,当本地缓存中的数据量达到第一阈值后,再一次性将本地缓存中的数据连同待存储数据存储到数据库中,有利于提高数据存储设备的吞吐量,同时还有利于提高将待存储数据写入数据库的实时性。
下面对第二数据存储逻辑,也就是步骤102的实现方式进行说明。
步骤102的一种实现方式包括:当预设的同步周期到达时,数据存储设备判断本地缓存中是否有数据,如果本地缓存中有数据,则将本地缓存中的数据写入数据库,并清空本地缓存。如果本地缓存中没有数据,则数据存储设备可以不执行任何操作。在该实现方式中,在同步周期到达时,只要本地缓存中有数据,就将所有数据一次性写入数据库中,可以保证本地缓存中所有数据被写入数据库中的实时性。
步骤102的另一种实现方式包括:当预设的同步周期到达时,数据存储设备判断本地缓存中是否有数据,如果本地缓存中有数据,则将本地缓存中存储时间最早的N个数据写入数据库,并将写入数据库的N个数据从本地缓存中删除,N是小于本地缓存中的数据量的自然数。如果本地缓存中没有数据,则数据存储设备可以不执行任何操作。在该实现方式中,在同步周期到达时,数据存储设备按照存储时间对本地缓存中的数据进行排序,将最早存储到本地缓存中的部分数据,即存储时间最早的N个数据,写入数据库中,而不是将本地缓存中的所有数据都写入数据库中,这样一方面可以保证最早写入本地缓存中的数据被写入数据库中的实时性,另一方面有利于实现两种操作之间的均衡。所述两种操作是指因数据量大于第一阈值将本地缓存中的数据写入数据库的操作和因同步周期到达将本地缓存中的数据写入数据库的操作。
步骤102的又一种实现方式包括:当预设的同步周期到达时,数据存储设备判断本地缓存中是否有数据,如果本地缓存中有数据,则判断本地缓存中的数据量是否大于预设的第二阈值,如果本地缓存中的数据量大于第二阈值,则将本地缓存中的数据写入数据库,并清空本地缓存。如果本地缓存中的数据量不大于第二阈值,或者本地缓存中没有数据,则数据存储设备可以不执行任何操作。优选的,第二阈值小于第一阈值。在该实现方式中,通过设置第二阈值,只有当本地缓存中的数据量大于第二阈值时,数据存储设备才会将本地缓存中的数据写入数据库中,有利于减少与数据库的交互次数,有利于提高数据存储设备的吞吐量,同时又可以保证本地缓存中的数据被写入数据库中的实时性。
在此说明,上述步骤101的几种实现方式与步骤102的几种实现方式可以相互搭配,形成不同的具体实施方式。例如,一种具体实施方式的流程如图2所示,具体包括:
201、判断是否有待存储数据到达,如果判断结果为是,则执行步骤202;如果判断结果为否,则执行步骤205。
202、判断本地缓存中的数据量是否大于预设的第一阈值;如果判断判断结果为是,则执行步骤203;如果判断结果为否,则执行步骤204。
203、将本地缓存中的数据写入数据库,清空本地缓存,在清空本地缓存后将上述待存储数据写入本地缓存中,并返回执行步骤201。
204、将上述待存储数据存储到本地缓存中,并返回执行步骤201。
205、判断同步周期是否到达,如果判断结果为是,则执行步骤206,如果判断结果为否,则返回执行步骤201。
206、判断本地缓存中是否有数据,如果判断结果为是,则执行步骤207;如果判断结果为否,则返回执行步骤201。
207、将本地缓存中的数据写入数据库,并清空本地缓存,返回执行步骤201。
本实施例可以提高数据存储设备的吞吐量,又可以保证数据被写入数据库中的实时性。
进一步,在上述各实施例或实施方式中,可能会出现同步周期和待存储数据同时到达的情况。对于这种情况,可以预先配置同步事件优先级和存储事件优先级,用以限定在上述两种条件同时到达时数据存储设备执行两种条件对应的操作的先后顺序。具体来说,当同步周期和待存储数据同时到达时,数据存储设备获取同步周期对应的同步事件优先级和待存储数据对应的存储事件优先级,根据同步事件优先级和存储事件优先级,确定按照第一数据存储逻辑将待存储数据存储到本地缓存和/或数据库中的操作(即上述步骤101)与按照第二数据存储逻辑将本地缓存中的数据存储到数据库中的操作(即上述步骤102)的执行顺序。之后,数据存储设备按照所确定的执行顺序,执行相应的操作。例如,如果预先设定同步事件优先级高于存储事件优先级,则当同步周期和待存储数据同步到达时,数据存储设备优先执行步骤102所示的操作,再执行步骤101所示的操作。如果预先设定同比事件优先级低于存储事件优先级,则当当同步周期和待存储数据同步到达时,数据存储设备优先执行步骤101所示的操作,再执行步骤102所示的操作。
除上述方式之外,也可以根据两种事件抢占到资源的先后顺序,执行相应的操作。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图3为本发明一实施例提供的数据存储设备的结构示意图。如图3所示,该设备包括:存储模块31和同步模块32。
存储模块31,用于在有待存储数据到达时,按照第一数据存储逻辑将该待存储数据存储到本地缓存和/或数据库中。
同步模块32,用于在预设的同步周期到达时,按照第二数据存储逻辑将本地缓存中的数据存储到所述数据库中。
在此说明,本实施例的存储设备还包括:本地缓存33。存储模块31和同步模块32分别与本地缓存33连接。
在一可选实施方式中,存储模块31具体可用于在有待存储数据到达时,判断本地缓存中的数据量是否大于预设的第一阈值,如果本地缓存中的数据量不大于第一阈值,则将待存储数据写入本地缓存中;如果本地缓存中的数据量大于第一阈值,则将本地缓存中的数据写入数据库,并在清空本地缓存后将待存储数据写入本地缓存中。或者
存储模块31具体可用于在有待存储数据到达时,将待存储数据写入本地缓存,在将待存储数据写入本地缓存后,判断本地缓存中的数据量是否大于预设的第一阈值,如果本地缓存中的数据量大于第一阈值,则将本地缓存中的数据写入数据库,并清空本地缓存;如果本地缓存中的数据量不大于第一阈值,则结束此次存储操作。或者
存储模块31具体可用于在有待存储数据到达时,判断本地缓存中的数据量是否大于预设的第一阈值,如果本地缓存中的数据量不大于第一阈值,则将待存储数据写入本地缓存中;如果本地缓存中的数据量大于第一阈值,则将待存储数据和本地缓存中的数据一并写入数据库,并清空本地缓存。
在一可选实施方式中,同步模块32具体可用于在同步周期到达时,判断本地缓存中是否有数据,如果本地缓存中有数据,则将本地缓存中的数据写入数据库,并清空本地缓存。另外,如果本地缓存中没有数据,则同步模块32可以不执行任何操作。或者
同步模块32具体可用于在同步周期到达时,判断本地缓存中是否有数据,如果本地缓存中有数据,则将本地缓存中存储时间最早的前N个数据写入数据库,并将写入数据库的N个数据从本地缓存中删除,N为小于本地缓存中的数据量的自然数。另外,如果本地缓存中没有数据,则同步模块32可以不执行任何操作。或者
同步模块32具体可用于在同步周期到达时,判断本地缓存中是否有数据,如果本地缓存中有数据,则判断本地缓存中的数据量是否大于预设的第二阈值,如果本地缓存中的数据量大于第二阈值,则将本地缓存中的数据写入数据库,并清空本地缓存。另外,如果本地缓存中没有数据,或者如果本地缓存中的数据量不大于第二阈值,则同步模块32可以不执行任何操作。
优选的,第二阈值小于第一阈值。
在一可选实施方式中,如图4所示,数据存储设备还包括:获取模块34和确定模块35。
获取模块34,用于在同步周期和待存储数据同时到达时,获取同步周期对应的同步事件优先级和待存储数据对应的存储事件优先级。
确定模块35,与获取模块34连接,用于根据获取模块34获取的同步事件优先级和存储事件优先级,确定按照第一数据存储逻辑将待存储数据存储到本地缓存和/或数据库中的操作与按照第二数据存储逻辑将本地缓存中的数据存储到数据库中的操作的执行顺序。其中,存储模块31和同步模块32分别与确定模块35连接,用于在同步周期和待存储数据同时到达的情况下,按照确定模块35确定的执行顺序执行相应操作。
值得说明的是,本实施例涉及的数据库可以是任何数据库,例如可以是Hbase。
本实施例提供的数据存储设备的各功能模块可用于执行图1或图2所示方法实施例的流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例提供的数据存储设备,在有待存储数据到达时,按照第一数据存储逻辑将待存储数据存储到本地缓存和/或数据库中,其中,若先将待存储数据存到本地缓存,有利于提高数据存储设备的吞吐量,若直接将待存储数据存储到数据库中,则有利于提高数据存储的实时性;另外,还设置同步周期,在同步周期到达时,按照第二数据存储逻辑将本地缓存中的数据存储到数据库中,可以防止本地缓存中的数据长时间无法写入数据库的情况,一定程度上提高了将数据存储到数据库中的实时性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种数据存储方法,其特征在于,包括:
当有待存储数据到达时,按照第一数据存储逻辑将所述待存储数据存储到本地缓存和/或数据库中;
当预设的同步周期到达时,按照第二数据存储逻辑将所述本地缓存中的数据存储到所述数据库中。
2.根据权利要求1所述的方法,其特征在于,所述按照第一数据存储逻辑将所述待存储数据存储到本地缓存和/或数据库中,包括:
判断所述本地缓存中的数据量是否大于预设的第一阈值,如果所述本地缓存中的数据量不大于所述第一阈值,则将所述待存储数据写入所述本地缓存中;如果所述本地缓存中的数据量大于所述第一阈值,则将所述本地缓存中的数据写入所述数据库,并在清空所述本地缓存后将所述待存储数据写入所述本地缓存;或者
将所述待存储数据写入所述本地缓存,在将所述待存储数据写入所述本地缓存后,判断所述本地缓存中的数据量是否大于预设的第一阈值,如果所述本地缓存中的数据量大于所述第一阈值,则将所述本地缓存中的数据写入所述数据库,并清空所述本地缓存;如果所述本地缓存中的数据量不大于所述第一阈值,则结束此次存储操作;或者
判断所述本地缓存中的数据量是否大于预设的第一阈值,如果所述本地缓存中的数据量不大于所述第一阈值,则将所述待存储数据写入所述本地缓存中;如果所述本地缓存中的数据量大于所述第一阈值,则将所述待存储数据和所述本地缓存中的数据一并写入所述数据库,并清空所述本地缓存。
3.根据权利要求1或2所述的方法,其特征在于,所述按照第二数据存储逻辑将所述本地缓存中的数据存储到所述数据库中,包括:
判断所述本地缓存中是否有数据,如果所述本地缓存中有数据,则将所述本地缓存中的数据写入所述数据库,并清空所述本地缓存;或者
判断所述本地缓存中是否有数据,如果所述本地缓存中有数据,则将所述本地缓存中存储时间最早的前N个数据写入所述数据库,并将所述写入所述数据库的N个数据从所述本地缓存中删除,N为小于所述本地缓存中的数据量的自然数;或者
判断所述本地缓存中是否有数据,如果所述本地缓存中有数据,则判断所述本地缓存中的数据量是否大于预设的第二阈值,如果本地缓存中的数据量大于所述第二阈值,则将所述本地缓存中的数据写入所述数据库,并清空所述本地缓存。
4.根据权利要求1或2所述的方法,其特征在于,当所述同步周期和所述待存储数据同时到达时,获取所述同步周期对应的同步事件优先级和所述待存储数据对应的存储事件优先级,根据所述同步事件优先级和所述存储事件优先级,确定所述按照第一数据存储逻辑将所述待存储数据存储到本地缓存和/或数据库中的操作与所述按照第二数据存储逻辑将所述本地缓存中的数据存储到所述数据库中的操作的执行顺序。
5.根据权利要求1或2所述的方法,其特征在于,所述数据库为Hbase。
6.一种数据存储设备,其特征在于,包括:
存储模块,用于在有待存储数据到达时,按照第一数据存储逻辑将所述待存储数据存储到本地缓存和/或数据库中;
同步模块,用于在预设的同步周期到达时,按照第二数据存储逻辑将所述本地缓存中的数据存储到所述数据库中。
7.根据权利要求6所述的设备,其特征在于,所述存储模块具体用于在有待存储数据到达时,判断所述本地缓存中的数据量是否大于预设的第一阈值,如果所述本地缓存中的数据量不大于所述第一阈值,则将所述待存储数据写入所述本地缓存中;如果所述本地缓存中的数据量大于所述第一阈值,则将所述本地缓存中的数据写入所述数据库,并在清空所述本地缓存后将所述待存储数据写入所述本地缓存中;或者
所述存储模块具体用于在有待存储数据到达时,将所述待存储数据写入所述本地缓存,在将所述待存储数据写入所述本地缓存后,判断所述本地缓存中的数据量是否大于预设的第一阈值,如果所述本地缓存中的数据量大于所述第一阈值,则将所述本地缓存中的数据写入所述数据库,并清空所述本地缓存;如果所述本地缓存中的数据量不大于所述第一阈值,则结束此次存储操作;或者
所述存储模块具体用于在有待存储数据到达时,判断所述本地缓存中的数据量是否大于预设的第一阈值,如果所述本地缓存中的数据量不大于所述第一阈值,则将所述待存储数据写入所述本地缓存中;如果所述本地缓存中的数据量大于所述第一阈值,则将所述待存储数据和所述本地缓存中的数据一并写入所述数据库,并清空所述本地缓存。
8.根据权利要求6或7所述的设备,其特征在于,所述同步模块具体用于在所述同步周期到达时,判断所述本地缓存中是否有数据,如果所述本地缓存中有数据,则将所述本地缓存中的数据写入所述数据库,并清空所述本地缓存;或者
所述同步模块具体用于在所述同步周期到达时,判断所述本地缓存中是否有数据,如果所述本地缓存中有数据,则将所述本地缓存中存储时间最早的前N个数据写入所述数据库,并将所述写入所述数据库的N个数据从所述本地缓存中删除,N为小于所述本地缓存中的数据量的自然数;或者
所述同步模块具体用于在所述同步周期到达时,判断所述本地缓存中是否有数据,如果所述本地缓存中有数据,则判断所述本地缓存中的数据量是否大于预设的第二阈值,如果本地缓存中的数据量大于所述第二阈值,则将所述本地缓存中的数据写入所述数据库,并清空所述本地缓存。
9.根据权利要求6或7所述的设备,其特征在于,还包括:
获取模块,用于在所述同步周期和所述待存储数据同时到达时,获取所述同步周期对应的同步事件优先级和所述待存储数据对应的存储事件优先级;
确定模块,用于根据所述同步事件优先级和所述存储事件优先级,确定所述按照第一数据存储逻辑将所述待存储数据存储到本地缓存和/或数据库中的操作与所述按照第二数据存储逻辑将所述本地缓存中的数据存储到所述数据库中的操作的执行顺序。
10.根据权利要求6或7所述的设备,其特征在于,所述数据库为Hbase。
CN201410333794.3A 2014-07-14 2014-07-14 数据存储方法及设备 Pending CN105446893A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410333794.3A CN105446893A (zh) 2014-07-14 2014-07-14 数据存储方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410333794.3A CN105446893A (zh) 2014-07-14 2014-07-14 数据存储方法及设备

Publications (1)

Publication Number Publication Date
CN105446893A true CN105446893A (zh) 2016-03-30

Family

ID=55557119

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410333794.3A Pending CN105446893A (zh) 2014-07-14 2014-07-14 数据存储方法及设备

Country Status (1)

Country Link
CN (1) CN105446893A (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106202307A (zh) * 2016-07-01 2016-12-07 百势软件(北京)有限公司 一种批量日志保存方法及装置
CN106354667A (zh) * 2016-08-30 2017-01-25 浪潮(北京)电子信息产业有限公司 一种固态硬盘的缓存控制方法及装置
CN106407307A (zh) * 2016-08-31 2017-02-15 天津南大通用数据技术股份有限公司 一种分布式数据库节点数据交互方法及装置
CN107229673A (zh) * 2017-04-20 2017-10-03 努比亚技术有限公司 Hbase数据库的数据写入方法、Hbase终端及存储介质
CN107491314A (zh) * 2017-08-30 2017-12-19 四川长虹电器股份有限公司 基于读写锁算法对hbase实时数据无障碍写处理方法
CN107566434A (zh) * 2016-07-01 2018-01-09 北京京东尚科信息技术有限公司 一种分布式***中缓存数据读写方法及***
CN108563744A (zh) * 2018-04-12 2018-09-21 武汉斗鱼网络科技有限公司 基于Redis数据库的慢查询方法、装置及终端设备
CN108574870A (zh) * 2018-04-13 2018-09-25 郑州云海信息技术有限公司 一种多通道信号源的显示方法、装置及设备
CN108694187A (zh) * 2017-04-07 2018-10-23 北京国双科技有限公司 实时流数据的存储方法及装置
CN109413166A (zh) * 2018-10-09 2019-03-01 浙江明度智控科技有限公司 一种工业网关及其数据管理方法
CN110990435A (zh) * 2019-12-03 2020-04-10 秒针信息技术有限公司 数据同步方法、装置和计算机可读存储介质
CN111090705A (zh) * 2018-10-23 2020-05-01 杭州海康威视数字技术股份有限公司 一种多维数据处理方法、装置及设备、存储介质
CN112948440A (zh) * 2021-03-09 2021-06-11 北京小米移动软件有限公司 页面数据的处理方法及装置、终端、存储介质
CN114371810A (zh) * 2020-10-15 2022-04-19 ***通信集团设计院有限公司 Hdfs的数据存储方法及装置
CN115686383A (zh) * 2022-12-30 2023-02-03 摩尔线程智能科技(北京)有限责任公司 存储器的控制方法和控制器以及芯片***

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107566434A (zh) * 2016-07-01 2018-01-09 北京京东尚科信息技术有限公司 一种分布式***中缓存数据读写方法及***
CN107566434B (zh) * 2016-07-01 2022-01-07 北京京东尚科信息技术有限公司 缓存数据读写方法、***、电子设备及计算机可读介质
CN106202307B (zh) * 2016-07-01 2019-10-11 百势软件(北京)有限公司 一种批量日志保存方法及装置
CN106202307A (zh) * 2016-07-01 2016-12-07 百势软件(北京)有限公司 一种批量日志保存方法及装置
CN106354667B (zh) * 2016-08-30 2019-03-15 浪潮(北京)电子信息产业有限公司 一种固态硬盘的缓存控制方法及装置
CN106354667A (zh) * 2016-08-30 2017-01-25 浪潮(北京)电子信息产业有限公司 一种固态硬盘的缓存控制方法及装置
CN106407307A (zh) * 2016-08-31 2017-02-15 天津南大通用数据技术股份有限公司 一种分布式数据库节点数据交互方法及装置
CN108694187A (zh) * 2017-04-07 2018-10-23 北京国双科技有限公司 实时流数据的存储方法及装置
CN107229673A (zh) * 2017-04-20 2017-10-03 努比亚技术有限公司 Hbase数据库的数据写入方法、Hbase终端及存储介质
CN107491314A (zh) * 2017-08-30 2017-12-19 四川长虹电器股份有限公司 基于读写锁算法对hbase实时数据无障碍写处理方法
CN108563744B (zh) * 2018-04-12 2021-07-23 武汉斗鱼网络科技有限公司 基于Redis数据库的慢查询方法、装置及终端设备
CN108563744A (zh) * 2018-04-12 2018-09-21 武汉斗鱼网络科技有限公司 基于Redis数据库的慢查询方法、装置及终端设备
CN108574870A (zh) * 2018-04-13 2018-09-25 郑州云海信息技术有限公司 一种多通道信号源的显示方法、装置及设备
CN109413166A (zh) * 2018-10-09 2019-03-01 浙江明度智控科技有限公司 一种工业网关及其数据管理方法
CN109413166B (zh) * 2018-10-09 2021-07-27 浙江明度智控科技有限公司 一种工业网关及其数据管理方法
CN111090705A (zh) * 2018-10-23 2020-05-01 杭州海康威视数字技术股份有限公司 一种多维数据处理方法、装置及设备、存储介质
CN111090705B (zh) * 2018-10-23 2023-08-25 杭州海康威视数字技术股份有限公司 一种多维数据处理方法、装置及设备、存储介质
CN110990435A (zh) * 2019-12-03 2020-04-10 秒针信息技术有限公司 数据同步方法、装置和计算机可读存储介质
CN114371810A (zh) * 2020-10-15 2022-04-19 ***通信集团设计院有限公司 Hdfs的数据存储方法及装置
CN114371810B (zh) * 2020-10-15 2023-10-27 ***通信集团设计院有限公司 Hdfs的数据存储方法及装置
CN112948440A (zh) * 2021-03-09 2021-06-11 北京小米移动软件有限公司 页面数据的处理方法及装置、终端、存储介质
CN115686383A (zh) * 2022-12-30 2023-02-03 摩尔线程智能科技(北京)有限责任公司 存储器的控制方法和控制器以及芯片***
CN115686383B (zh) * 2022-12-30 2023-04-18 摩尔线程智能科技(北京)有限责任公司 存储器的控制方法和控制器以及芯片***

Similar Documents

Publication Publication Date Title
CN105446893A (zh) 数据存储方法及设备
CN105447075B (zh) 用于动态划分的计算机实现方法
CN105573660B (zh) 用于改善分簇磁盘阵列的性能的方法和装置
CN106503020B (zh) 日志数据处理方法及装置
US8904123B2 (en) Transferring learning metadata between storage servers having clusters via copy services operations on a shared virtual logical unit that stores the learning metadata
CN103744906A (zh) 一种数据同步***、方法及装置
CN106844108B (zh) 一种数据存储方法、服务器以及存储***
CN103049317B (zh) 云环境下基于队列的高并发数据快速写入***及方法
US20120137094A1 (en) Snapshot based replication
KR101574451B1 (ko) 트랜잭션 메모리 시스템 내구성 부여
CN111124277A (zh) 一种深度学习数据集缓存方法、***、终端及存储介质
CN103927338A (zh) 日志信息入库处理方法和装置
CN105159604A (zh) 一种磁盘数据读写方法和***
CN103440204B (zh) 一种更新文件***的方法和存储设备
CN104639347A (zh) 一种多集群监控方法、装置及***
EP3051408A1 (en) Data operating method and device
CN106201561B (zh) 分布式缓存集群的升级方法与设备
CN105824846A (zh) 数据迁移方法及装置
CN109379305A (zh) 一种数据下发方法、装置、服务器及存储介质
CN104484131A (zh) 多磁盘服务器的数据处理装置及对应的处理方法
CN109933461A (zh) 一种数据处理的方法和装置
CN103514140B (zh) 用于实现可重构***中配置信息多发射的重构控制器
CN105224418A (zh) 一种数据备份方法和装置
CN104503868A (zh) 数据同步方法、装置以及***
CN104536852B (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: 20160330