CN106156038B - 数据存储方法和装置 - Google Patents
数据存储方法和装置 Download PDFInfo
- Publication number
- CN106156038B CN106156038B CN201510136766.7A CN201510136766A CN106156038B CN 106156038 B CN106156038 B CN 106156038B CN 201510136766 A CN201510136766 A CN 201510136766A CN 106156038 B CN106156038 B CN 106156038B
- Authority
- CN
- China
- Prior art keywords
- data
- shelves
- caching
- index information
- time identifier
- 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.)
- Active
Links
Abstract
本发明涉及一种数据存储方法和装置。所述方法包括以下步骤:获取新增的数据,对每条新增的数据生成对应的时间标识;按照时间标识的倒序将对应的数据存储到缓存中;达到缓存的设定容量后,将符合设定条件的数据移出所述缓存;将移出的数据与已生成的最新数据档中的数据合并,将超出已生成的最新数据档的数据按照数据档的设定容量划分,并生成新的数据档;对所述新的数据档生成索引信息,并更新已生成的最新数据档的索引信息。通过对每个数据生成对应的时间标识,并按照时间标识倒序将数据存储到缓存中,如此列表的数据量将不受键值最大大小限制,后续读取数据时,可从缓存或数据档中读取,不需读取整个列表,减少了流量浪费,降低了数据访问开销。
Description
技术领域
本发明涉及计算机应用领域,特别是涉及一种数据存储方法和装置。
背景技术
随着互联网技术的发展,越来越多的用户通过网络从事社交活动。为了方便用户从事社交活动,提供了各种社交类应用,用户通过终端下载社交类应用并安装,然后通过社交类应用访问网络,即可发布消息、查看消息以及评论消息等。
因用户通过社交类应用可发布众多的消息,社交类应用的服务提供者也可发布各种消息,随着时间的推移,大量的消息产生,消息以列表形式存储,则列表类数据越来越多,容易形成一个列表达到万条以上数据。传统的数据存储方式是一个列表的数据存在一个value(键值)中,一屏数据读取时(一次列表包括3至15条数据),会将整个列表数据读取出来,如此读取了大量不必要的数据,造成流量浪费、数据访问开销大。
发明内容
基于此,有必要针对传统的数据读取时会读取大量不必要的数据,造成流量浪费、数据访问开销大的问题,提供一种数据存储方法和装置,能减少流量浪费,降低数据访问开销,降低存储开销。
一种数据存储方法,包括以下步骤:
获取新增的数据,对每条新增的数据生成对应的时间标识;
按照时间标识的倒序将对应的数据存储到缓存中;
达到所述缓存的设定容量后,将符合设定条件的数据移出所述缓存;
将移出的数据与已生成的最新数据档中的数据合并,将超出已生成的最新数据档的数据按照数据档的设定容量划分,并生成新的数据档;
对所述新的数据档生成索引信息,并更新已生成的最新数据档的索引信息。
一种数据存储装置,包括:
时间标识生成模块,用于获取新增的数据,对每条新增的数据生成对应的时间标识;
存储模块,用于按照时间标识的倒序将对应的数据存储到缓存中;
移出模块,用于达到所述缓存的设定容量后,将符合设定条件的数据移出所述缓存;
归档模块,用于将移出的数据与已生成的最新数据档中的数据合并,将超出已生成的最新数据档的数据按照数据档的设定容量划分,并生成新的数据档;
索引信息生成模块,用于对所述新的数据档生成索引信息,并更新已生成的最新数据档的索引信息。
上述数据存储方法和装置,通过对每个数据生成对应的时间标识,并按照时间标识倒序将数据存储到缓存中,最新的数据在缓存中处于最前面,并将移除的数据进行归档,对新的数据档生成索引信息,如此列表的数据量将不受value最大大小限制,后续读取数据时,可从缓存或数据档中读取,不需读取整个列表,减少了接口浪费,降低了数据访问开销。对不同访问密度的数据档放到不同成本的存储(Memory、SSD、STAT、SAS盘等)设备中,从而降低存储成本。
附图说明
图1为一个实施例中数据存储方法的流程图;
图2为数据存储的结构示意图;
图3为一个实施例中数据存储装置的结构示意图;
图4为另一个实施例中数据存储装置的结构示意图;
图5为另一个实施例中数据存储装置的结构示意图;
图6为能实现本发明实施例的一个计算机系统的模块图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为一个实施例中数据存储方法的流程图。如图1所示,该数据存储方法,包括以下步骤:
步骤102,获取新增的数据,对每条新增的数据生成对应的时间标识。
具体的,每条数据生成唯一的时间标识,可精确到微妙,该时间标识可采用秒+微秒方式表示,例如2014年12月26日15时32分40秒10微秒。
步骤104,按照时间标识的倒序将对应的数据存储到缓存中。
具体的,按照时间的倒序将对应的数据存储到缓存中,最新的在第一条,最老的在最后一条。
步骤106,达到该缓存的设定容量后,将符合设定条件的数据移出该缓存。
本实施例中,该设定条件为按照从最新的时间标识起时间向前推移,保留数据的最大数量为指定数量,将超出指定数量的数据移出;或者该设定条件为距离达到缓存的设定容量的时间点超过指定时长的数据移出;或者该设定条件包括按照从最新的时间标识起时间向前推移,保留数据的最大数量为指定数量,且距离达到缓存的设定容量的时间点超过指定时长的数据移出。
例如保留的最大数量为M条数据,则从最新的时间标识起时间向前推移,如最新的时间标识为2014年11月12日15时25分25秒20微秒,向前推移,如2014年11月12日15时25分25秒10微秒、2014年11月12日15时25分24秒10微秒、……,如此直到第M条数据。距离达到缓存的设定容量的时间点超过指定时长中指定时长可根据需要设定,例如指定时长为2小时、3小时等。
在缓存中存储着最新的数据,一般最新的数据被访问较为频繁,访问量大。
步骤108,将移出的数据与已生成的最新数据档中的数据合并,将超出已生成的最新数据档的数据按照数据档的设定容量划分,并生成新的数据档。
本实施例中,数据档的设定容量可根据需要设定,例如100条、90条等。将移出的数据与已生成的最新数据档中的数据合并,合并后的数据是按照时间标识倒序排列的,合并后的数据先将已生成的最新数据档填满,然后将超出已生成的最新数据档的数据再按照数据档的设定容量进行划分,例如超出的数据为150条,数据档的设定容量为100条,则将100条生成新的数据档,将50条生成另一新的数据档。此外,还可将数据档中的数据进行分屏,每屏包含设定条数数据。一个数据档可包括一屏或多屏数据。每屏包含的设定条数与终端屏幕的显示区域大小相关,设定条数可为显示区域所能容纳的最大条数。
步骤110,对该新的数据档生成索引信息,并更新已生成的最新数据档的索引信息。
在一个实施例中,对该新的数据档生成索引信息的步骤包括:对该新的数据档分配数据档档号,记录数据档中数据条数、数据档所在存储设备标识、数据档中数据的开始时间标识和结束时间标识。
具体的,对新的数据档分配数据档档号,可采用数据档档号自增1方式计算新的数据档档号。数据档所在存储设备标识可为存储设备的编号或者存储设备的设备号等。存储设备的编号可为预先配置的,用于唯一标示存储设备。数据档中数据的开始时间标识是指数据档中最后一条数据的时间标识,数据的结束时间标识是指数据档中第一条数据的时间标识。存储设备可为内存、SSD(Solid State Disk、Solid State Drive,固态硬盘)盘、SAS(Serial Attached SCSI(Small Computer System Interface,小型计算机系统接口))盘、SATA(Serial Advanced Technology Attachment,串行硬件驱动器接口)盘、磁盘等。
此外,上述数据存储方法还包括:将数据档的索引信息存储在索引中。图2为数据存储的结构示意图。如图2所示,缓存中存储有最新的数据,索引中存储有索引信息,根据索引信息可查找到对应的数据档,数据档包括数据档0、数据档1、数据档2、……、数据档N。
上述数据存储方法,通过对每个数据生成对应的时间标识,并按照时间标识倒序将数据存储到缓存中,最新的数据在缓存中处于最前面,并将移除的数据进行归档,对新的数据档生成索引信息,如此列表的数据量将不受value最大大小限制,后续读取数据时,可从缓存或数据档中读取,不需读取整个列表,减少了流量浪费,降低了数据访问开销。
在一个实施例中,上述数据存储方法还包括:将数据档按照访问量进行排序,将访问量大于或等于设定访问量阈值的数据档存储在第一类存储设备,将访问量小于设定访问量阈值的数据档存储在第二类存储设备,且第一类存储设备性能高于第二类存储设备性能,并记录数据档所在存储设备标识。
具体的,通过统计访问次数得到每个数据档的访问量。设定的访问量阈值可为根据统计历史访问数据进行分析得出,例如统计得到数据档的访问量分别为1000次、900次、800次、700次等,则可设定访问量阈值为900次,将大于或等于900次的数据档存储在第一类存储设备,将小于900次的数据档存储在第二类存储设备。第一类存储设备可为内存或SSD盘,第二类存储设备可为SAS盘、SATA盘、磁盘等。根据数据档的访问量将访问量高的数据存储在性能高的存储设备中,访问量低的数据存储在性能低的存储设备中,满足了数据的存储要求,因访问量高的数据存储在性能高的存储设备满足了大量访问的硬件需求,也降低了存储设备的成本。对不同访问密度(即单位时间内的访问量)的数据档放到不同成本的存储(Memory、SSD、STAT、SAS盘等)设备中,从而降低存储成本。
数据档作为独立的value,可以存入到配置的独立key-value存储设备(Memory、SSD、STAT、SAS盘)中,降低存储成本。
在一个实施例中,上述数据存储方法还包括:获取数据访问请求;根据该数据访问请求从缓存中查找,若在缓存中查找到,则直接读取数据,若在缓存中未查找到,则读取索引信息,根据该索引信息及该数据访问请求中数据的时间标识定位数据所在数据档档号,再读取该数据档档号所对应的数据档中数据。
具体的,若数据访问请求中只含有一条数据,则查找该条数据,若数据访问请求中包含连续的多条数据,则进行翻屏查找。
本实施例中,若该数据访问请求中包含一条数据,则根据该数据访问请求从缓存中查找,若在缓存中查找到,直接读取该数据;若在缓存中未查找到,则读取索引信息,根据索引信息及该数据访问请求中数据的时间标识定位数据所在数据档档号,读取该数据档档号所对应的数据档中数据,并匹配得到该数据访问请求中数据的时间标识所对应的数据。
具体的,在缓存中查找可将数据访问请求中的数据的时间标识与缓存中的数据的时间标识进行对比,若相同,则所要访问的数据在缓存中,直接读取该数据,不需从数据档中读取,提高了数据读取的效率,且只需读取一次就可取出所需数据。在缓存中未查找到时,读取索引信息,索引信息中包括数据档的开始时间标识和结束时间标识,将数据访问请求中的数据的时间标识与索引信息中的数据档的开始时间标识和结束时间标识进行比较,得到数据访问请求中的数据所在的数据档,然后读取该数据档中的数据,再从读取的数据档中匹配到对应的数据。
若该数据访问请求中包含连续的设定数量数据,则根据该数据访问请求从缓存中查找,若在缓存中查找到从数据访问请求中第一条数据开始的数据条数大于或等于该设定数量,则直接从缓存中读取该设定数量数据;若在缓存中查找到从该数据访问请求中第一条数据开始的数据数量少于该设定数量,则读取索引信息,根据索引信息及剩余数量的数据的时间标识定位剩余数量的数据所在数据档档号,读取剩余数量的数据所在的数据档档号所对应的数据档中数据。
例如包含连续的L开始到T的K条数据,在缓存中查找到从L开始的数据条数大于或等于K条,则直接从缓存中读取从L开始的K条数据,若在缓存中查找到从L开始的数据条数小于K条数据,例如从L开始的数据为S条,则读取索引信息,查找剩余(K-S)条数据所在数据档档号,将(K-S)条与数据档条数比较确定(K-S)条数据需要几个数据档。因剩余(K-S)条数据与缓存中的数据连续,则(K-S)条数据从最新数据档开始查找连续需要几档数据。
在一个实施例中,上述数据存储方法还包括:接收删除请求;根据该删除请求从缓存中查找,若在缓存中查找到,直接删除该数据;若在缓存中未查找到,则读取索引信息,根据该删除请求中数据的时间标识定位数据所在数据档档号,读取该数据档档号所对应的数据档中数据,并匹配得到该删除请求中数据的时间标识所对应的数据,再删除匹配的数据。
具体的,删除数据档中的数据后,可更新该数据档的索引信息,若删除数据档中第一条数据,则更新数据档的结束时间标识和数据档中数据条数;若删除数据档中最后一条数据,则更新数据档的开始时间标识和数据档中数据条数;若删除了数据档中间某一条数据,则更新数据档中数据条数。
图3为一个实施例中数据存储装置的结构示意图。如图3所示,该数据存储装置,包括时间标识生成模块310、存储模块320、移除模块330、归档模块340和索引信息生成模块350。其中:
时间标识生成模块310用于获取新增的数据,对每条新增的数据生成对应的时间标识。
具体的,每条数据生成唯一的时间标识,可精确到微妙,该时间标识可采用秒+微秒方式表示,例如2014年12月26日15时32分40秒10微秒。
存储模块320用于按照时间标识的倒序将对应的数据存储到缓存中。具体的,按照时间的倒序将对应的数据存储到缓存中,最新的在第一条,最老的在最后一条。
移出模块330用于达到该缓存的设定容量后,将符合设定条件的数据移出该缓存。
本实施例中,该设定条件为按照从最新的时间标识起时间向前推移,保留数据的最大数量为指定数量,将超出指定数量的数据移出;或者该设定条件为距离达到缓存的设定容量的时间点超过指定时长的数据移出;或者该设定条件包括按照从最新的时间标识起时间向前推移,保留数据的最大数量为指定数量,且距离达到缓存的设定容量的时间点超过指定时长的数据移出。
例如保留的最大数量为M条数据,则从最新的时间标识起时间向前推移,如最新的时间标识为2014年11月12日15时25分25秒20微秒,向前推移,如2014年11月12日15时25分25秒10微秒、2014年11月12日15时25分24秒10微秒、……,如此直到第M条数据。距离达到缓存的设定容量的时间点超过指定时长中指定时长可根据需要设定,例如指定时长为2小时、3小时等。
在缓存中存储着最新的数据,一般最新的数据被访问较为频繁,访问量大。
归档模块340用于将移出的数据与已生成的最新数据档中的数据合并,将超出已生成的最新数据档的数据按照数据档的设定容量划分,并生成新的数据档。本实施例中,数据档的设定容量可根据需要设定,例如100条、90条等。将移出的数据与已生成的最新数据档中的数据合并,合并后的数据是按照时间标识倒序排列的,合并后的数据先将已生成的最新数据档填满,然后将超出已生成的最新数据档的数据再按照数据档的设定容量进行划分,例如超出的数据为150条,数据档的设定容量为100条,则将100条生成新的数据档,将50条生成另一新的数据档。此外,还可将数据档中的数据进行分屏,每屏包含设定条数数据。一个数据档可包括一屏或多屏数据。每屏包含的设定条数与终端屏幕的显示区域大小相关,设定条数可为显示区域所能容纳的最大条数。
索引信息生成模块350用于对该新的数据档生成索引信息,并更新已生成的最新数据档的索引信息。
本实施例中,索引信息生成模块350还用于对该新的数据档分配数据档档号,记录数据档中数据条数、数据档所在存储设备标识、数据档中数据的开始时间标识和结束时间标识。
具体的,对新的数据档分配数据档档号,可采用数据档档号自增1方式计算新的数据档档号。数据档所在存储设备标识可为存储设备的编号或者存储设备的设备号等。存储设备的编号可为预先配置的,用于唯一标示存储设备。数据档中数据的开始时间标识是指数据档中最后一条数据的时间标识,数据的结束时间标识是指数据档中第一条数据的时间标识。存储设备可为内存、SSD盘、SAS盘、SATA盘、磁盘等。
此外,存储模块320还用于将数据档的索引信息存储在索引中。
上述数据存储装置,通过对每个数据生成对应的时间标识,并按照时间标识倒序将数据存储到缓存中,最新的数据在缓存中处于最前面,并将移除的数据进行归档,对新的数据档生成索引信息,如此列表的数据量将不受value最大大小限制,后续读取数据时,可从缓存或数据档中读取,不需读取整个列表,减少了流量浪费,降低了数据访问开销。
在一个实施例中,该存储模块还用于将数据档按照访问量进行排序,将访问量大于或等于设定访问量阈值的数据档存储在第一类存储设备,将访问量小于设定访问量阈值的数据档存储在第二类存储设备,且第一类存储设备性能高于第二类存储设备性能,并记录数据档所在存储设备标识。
具体的,通过统计访问次数得到每个数据档的访问量。设定的访问量阈值可为根据统计历史访问数据进行分析得出,例如统计得到数据档的访问量分别为1000次、900次、800次、700次等,则可设定访问量阈值为900次,将大于或等于900次的数据档存储在第一类存储设备,将小于900次的数据档存储在第二类存储设备。第一类存储设备可为内存或SSD盘,第二类存储设备可为SAS盘、SATA盘、磁盘等。根据数据档的访问量将访问量高的数据存储在性能高的存储设备中,访问量低的数据存储在性能低的存储设备中,满足了数据的存储要求,因访问量高的数据存储在性能高的存储设备满足了大量访问的硬件需求,也降低了存储设备的成本。对不同访问密度的数据档放到不同成本的存储(Memory、SSD、STAT、SAS盘等)设备中,从而降低存储成本。
数据档作为独立的value,可以存入到配置的独立key-value存储设备(Memory、SSD、STAT、SAS盘)中,降低存储成本。
图4为另一个实施例中数据存储装置的结构示意图。如图4所示,该数据存储装置,包括时间标识生成模块310、存储模块320、移除模块330、归档模块340和索引信息生成模块350,还包括请求获取模块360、查找模块370。其中:
请求获取模块360用于获取数据访问请求。
查找模块370用于根据该数据访问请求从缓存中查找,若在缓存中查找到,则直接读取数据,若在缓存中未查找到,则读取索引信息,根据该索引信息及该数据访问请求中数据的时间标识定位数据所在数据档档号,再读取该数据档档号所对应的数据档中数据。
具体的,若数据访问请求中只含有一条数据,则查找该条数据,若数据访问请求中包含连续的多条数据,则进行翻屏查找。
在一个实施例中,查找模块370还用于若该数据访问请求中包含一条数据,则根据该数据访问请求从缓存中查找,若在缓存中查找到,直接读取数据;以及若在缓存中未查找到,则读取索引信息,根据该数据访问请求中数据的时间标识定位数据所在数据档档号,读取该数据档档号所对应的数据档中数据,并匹配得到该数据访问请求中数据的时间标识所对应的数据。
具体的,在缓存中查找可将数据访问请求中的数据的时间标识与缓存中的数据的时间标识进行对比,若相同,则所要访问的数据在缓存中,直接读取该数据,不需从数据档中读取,提高了数据读取的效率,且只需读取一次就可取出所需数据。在缓存中未查找到时,读取索引信息,索引信息中包括数据档的开始时间标识和结束时间标识,将数据访问请求中的数据的时间标识与索引信息中的数据档的开始时间标识和结束时间标识进行比较,得到数据访问请求中的数据所在的数据档,然后读取该数据档中的数据,再从读取的数据档中匹配到对应的数据。
在一个实施例中,查找模块370还用于若该数据访问请求中包含连续的设定数量数据,则根据该数据访问请求从缓存中查找,若在缓存中查找到从数据访问请求中第一条数据开始的数据条数大于或等于该设定数量,则直接从缓存中读取该设定数量数据;以及若在缓存中查找到从该数据访问请求中第一条数据开始的数据数量少于该设定数量,则读取索引信息,根据剩余数量的数据的时间标识定位剩余数量的数据所在数据档档号,读取剩余数量的数据所在的数据档档号所对应的数据档中数据。
例如包含连续的L开始到T的K条数据,在缓存中查找到从L开始的数据条数大于或等于K条,则直接从缓存中读取从L开始的K条数据,若在缓存中查找到从L开始的数据条数小于K条数据,例如从L开始的数据为S条,则读取索引信息,查找剩余(K-S)条数据所在数据档档号,将(K-S)条与数据档条数比较确定(K-S)条数据需要几个数据档。因剩余(K-S)条数据与缓存中的数据连续,则(K-S)条数据从最新数据档开始查找连续需要几档数据。
图5为另一个实施例中数据存储装置的结构示意图。如图5所示,该数据存储装置,除了包括时间标识生成模块310、存储模块320、移除模块330、归档模块340和索引信息生成模块350,还包括接收模块380和删除模块390。其中:
接收模块380用于接收删除请求。
删除模块390用于根据该删除请求从缓存中查找,若在缓存中查找到,直接删除该数据;以及若在缓存中未查找到,则读取索引信息,根据该删除请求中数据的时间标识定位数据所在数据档档号,读取该数据档档号所对应的数据档中数据,并匹配得到该删除请求中数据的时间标识所对应的数据,再删除匹配的数据。
具体的,删除数据档中的数据后,可更新该数据档的索引信息,若删除数据档中第一条数据,则更新数据档的结束时间标识和数据档中数据条数;若删除数据档中最后一条数据,则更新数据档的开始时间标识和数据档中数据条数;若删除了数据档中间某一条数据,则更新数据档中数据条数。
在其他实施例中,上述数据存储装置可包括时间标识生成模块310、存储模块320、移除模块330、归档模块340、索引信息生成模块350、请求获取模块360、查找模块370、接收模块380和删除模块390中所有可能的组合,在此不再一一列举。
上述数据存储方法和装置可应用于key-value值结构,也可应用于非key-value值结构。
图6为能实现本发明实施例的一个计算机系统1000的模块图。该计算机系统1000只是一个适用于本发明的计算机环境的示例,不能认为是提出了对本发明的使用范围的任何限制。计算机系统1000也不能解释为需要依赖于或具有图示的示例性的计算机系统1000中的一个或多个部件的组合。
图6中示出的计算机系统1000是一个适合用于本发明的计算机系统的例子。具有不同子系统配置的其它架构也可以使用。例如有大众所熟知的台式机、笔记本、个人数字助理、智能电话、平板电脑、便携式媒体播放器、机顶盒等类似设备可以适用于本发明的一些实施例。但不限于以上所列举的设备。
如图6所示,计算机系统1000包括处理器1010、存储器1020和系统总线1022。包括存储器1020和处理器1010在内的各种系统组件连接到系统总线1022上。处理器1010是一个用来通过计算机系统中基本的算术和逻辑运算来执行计算机程序指令的硬件。存储器1020是一个用于临时或永久性存储计算程序或数据(例如,程序状态信息)的物理设备。系统总线1020可以为以下几种类型的总线结构中的任意一种,包括存储器总线或存储控制器、外设总线和局部总线。处理器1010和存储器1020可以通过系统总线1022进行数据通信。其中存储器1020包括只读存储器(ROM)或闪存(图中都未示出),以及随机存取存储器(RAM),RAM通常是指加载了操作系统和应用程序的主存储器。
计算机系统1000还包括显示接口1030(例如,图形处理单元)、显示设备1040(例如,液晶显示器)、音频接口1050(例如,声卡)以及音频设备1060(例如,扬声器)。显示设备1040和音频设备1060是用于体验多媒体内容的媒体设备。
计算机系统1000一般包括一个存储设备1070。存储设备1070可以从多种计算机可读介质中选择,计算机可读介质是指可以通过计算机系统1000访问的任何可利用的介质,包括移动的和固定的两种介质。例如,计算机可读介质包括但不限于,闪速存储器(微型SD卡),CD-ROM,数字通用光盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并可由计算机系统1000访问的任何其它介质。
计算机系统1000还包括输入装置1080和输入接口1090(例如,IO控制器)。用户可以通过输入装置1080,如键盘、鼠标、显示装置1040上的触摸面板设备,输入指令和信息到计算机系统1000中。输入装置1080通常是通过输入接口1090连接到系统总线1022上的,但也可以通过其它接口或总线结构相连接,如通用串行总线(USB)。
计算机系统1000可在网络环境中与一个或者多个网络设备进行逻辑连接。网络设备可以是个人电脑、服务器、路由器、智能电话、平板电脑或者其它公共网络节点。计算机系统1000通过局域网(LAN)接口1100或者移动通信单元1110与网络设备相连接。局域网(LAN)是指在有限区域内,例如家庭、学校、计算机实验室、或者使用网络媒体的办公楼,互联组成的计算机网络。WiFi和双绞线布线以太网是最常用的构建局域网的两种技术。WiFi是一种能使计算机系统1000间交换数据或通过无线电波连接到无线网络的技术。移动通信单元1110能在一个广阔的地理区域内移动的同时通过无线电通信线路接听和拨打电话。除了通话以外,移动通信单元1110也支持在提供移动数据服务的2G,3G或4G蜂窝通信系统中进行互联网访问。
应当指出的是,其它包括比计算机系统1000更多或更少的子系统的计算机系统也能适用于发明。例如,计算机系统1000可以包括能在短距离内交换数据的蓝牙单元,用于照相的图像传感器,以及用于测量加速度的加速计。
如上面详细描述的,适用于本发明的计算机系统1000能执行数据存储方法的指定操作。计算机系统1000通过处理器1010运行在计算机可读介质中的软件指令的形式来执行这些操作。这些软件指令可以从存储设备1070或者通过局域网接口1100从另一设备读入到存储器1020中。存储在存储器1020中的软件指令使得处理器1010执行上述的数据存储方法。此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明。因此,实现本发明并不限于任何特定硬件电路和软件的组合。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种数据存储方法,包括以下步骤:
获取新增的数据,对每条新增的数据生成对应的时间标识;
按照时间标识的倒序将对应的数据存储到缓存中;
达到所述缓存的设定容量后,将符合设定条件的数据移出所述缓存,且数据移出后在所述缓存中仍存储着最新的数据;
将移出的数据与已生成的最新数据档中的数据合并,将合并后的数据按照时间标识的倒序进行排列,通过合并后的数据先将已生成的最新数据档填满,再将超出已生成的最新数据档的数据按照数据档的设定容量划分,并生成新的数据档;
对所述新的数据档生成索引信息,并更新已生成的最新数据档的索引信息,将所述最新数据档的索引信息存储在索引中;
获取数据访问请求;
根据所述数据访问请求从缓存中查找,若在缓存中查找到,则直接读取数据,若在缓存中未查找到,则读取索引信息,根据所述索引信息及所述数据访问请求中数据的时间标识定位数据所在数据档档号,再读取所述数据档档号所对应的数据档中数据;
通过统计访问次数得到每个数据档的访问量,将数据档按照访问量进行排序,将访问量大于或等于设定访问量阈值的数据档存储在第一类存储设备,将访问量小于设定访问量阈值的数据档存储在第二类存储设备,且第一类存储设备性能高于第二类存储设备性能,并记录数据档所在存储设备标识,其中,所述访问量阈值根据统计历史数据进行分析得出。
2.根据权利要求1所述的方法,其特征在于,所述对所述新的数据档生成索引信息的步骤包括:
对所述新的数据档分配数据档档号,记录数据档中数据条数、数据档所在存储设备标识、数据档中数据的开始时间标识和结束时间标识。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述数据访问请求中包含一条数据,则根据所述数据访问请求从缓存中查找,若在缓存中查找到,直接读取所述数据;若在缓存中未查找到,则读取索引信息,根据所述数据访问请求中数据的时间标识定位数据所在数据档档号,读取所述数据档档号所对应的数据档中数据,并匹配得到所述数据访问请求中数据的时间标识所对应的数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述数据访问请求中包含连续的设定数量数据,则根据所述数据访问请求从缓存中查找,若在缓存中查找到从数据访问请求中第一条数据开始的数据条数大于或等于所述设定数量,则直接从缓存中读取所述设定数量数据;若在缓存中查找到从所述数据访问请求中第一条数据开始的数据数量少于所述设定数量,则读取索引信息,根据剩余数量的数据的时间标识定位剩余数量的数据所在数据档档号,读取剩余数量的数据所在的数据档档号所对应的数据档中数据。
5.根据权利要求1所述的方法,其特征在于,所述设定条件为按照从最新的时间标识起时间向前推移,保留数据的最大数量为指定数量,将超出指定数量的数据移出;或者所述设定条件为距离达到缓存的设定容量的时间点超过指定时长的数据移出;或者所述设定条件包括按照从最新的时间标识起时间向前推移,保留数据的最大数量为指定数量,且距离达到缓存的设定容量的时间点超过指定时长的数据移出。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收删除请求;
根据所述删除请求从缓存中查找,若在缓存中查找到,直接删除所述数据;若在缓存中未查找到,则读取索引信息,根据所述删除请求中数据的时间标识定位数据所在数据档档号,读取所述数据档档号所对应的数据档中数据,并匹配得到所述删除请求中数据的时间标识所对应的数据,再删除匹配的数据。
7.一种数据存储装置,其特征在于,包括:
时间标识生成模块,用于获取新增的数据,对每条新增的数据生成对应的时间标识;
存储模块,用于按照时间标识的倒序将对应的数据存储到缓存中;通过统计访问次数得到每个数据档的访问量,将数据档按照访问量进行排序,将访问量大于或等于设定访问量阈值的数据档存储在第一类存储设备,将访问量小于设定访问量阈值的数据档存储在第二类存储设备,且第一类存储设备性能高于第二类存储设备性能,并记录数据档所在存储设备标识,其中,所述访问量阈值根据统计历史访问数据进行分析得出;
移出模块,用于达到所述缓存的设定容量后,将符合设定条件的数据移出所述缓存,且数据移出后在所述缓存中仍存储着最新的数据;
归档模块,用于将移出的数据与已生成的最新数据档中的数据合并,将合并后的数据按照时间标识的倒序进行排列,通过合并后的数据先将已生成的最新数据档填满,再将超出已生成的最新数据档的数据按照数据档的设定容量划分,并生成新的数据档;
索引信息生成模块,用于对所述新的数据档生成索引信息,并更新已生成的最新数据档的索引信息,将所述最新数据档的索引信息存储在索引中;
请求获取模块,用于获取数据访问请求;
查找模块,用于根据所述数据访问请求从缓存中查找,若在缓存中查找到,则直接读取数据,若在缓存中未查找到,则读取索引信息,根据所述索引信息及所述数据访问请求中数据的时间标识定位数据所在数据档档号,再读取所述数据档档号所对应的数据档中数据。
8.根据权利要求7所述的装置,其特征在于,所述索引信息生成模块还用于对所述新的数据档分配数据档档号,记录数据档中数据条数、数据档所在存储设备标识、数据档中数据的开始时间标识和结束时间标识。
9.根据权利要求7所述的装置,其特征在于,所述查找模块还用于若所述数据访问请求中包含一条数据,则根据所述数据访问请求从缓存中查找,若在缓存中查找到,直接读取数据;以及若在缓存中未查找到,则读取索引信息,根据所述数据访问请求中数据的时间标识定位数据所在数据档档号,读取所述数据档档号所对应的数据档中数据,并匹配得到所述数据访问请求中数据的时间标识所对应的数据。
10.根据权利要求7所述的装置,其特征在于,所述查找模块还用于若所述数据访问请求中包含连续的设定数量数据,则根据所述数据访问请求从缓存中查找,若在缓存中查找到从数据访问请求中第一条数据开始的数据条数大于或等于所述设定数量,则直接从缓存中读取所述设定数量数据;以及若在缓存中查找到从所述数据访问请求中第一条数据开始的数据数量少于所述设定数量,则读取索引信息,根据剩余数量的数据的时间标识定位剩余数量的数据所在数据档档号,读取剩余数量的数据所在的数据档档号所对应的数据档中数据。
11.根据权利要求7所述的装置,其特征在于,所述设定条件为按照从最新的时间标识起时间向前推移,保留数据的最大数量为指定数量,将超出指定数量的数据移出;或者所述设定条件为距离达到缓存的设定容量的时间点超过指定时长的数据移出;或者所述设定条件包括按照从最新的时间标识起时间向前推移,保留数据的最大数量为指定数量,且距离达到缓存的设定容量的时间点超过指定时长的数据移出。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收删除请求;
删除模块,用于根据所述删除请求从缓存中查找,若在缓存中查找到,直接删除所述数据;以及若在缓存中未查找到,则读取索引信息,根据所述删除请求中数据的时间标识定位数据所在数据档档号,读取所述数据档档号所对应的数据档中数据,并匹配得到所述删除请求中数据的时间标识所对应的数据,再删除匹配的数据。
13.一种计算机系统,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510136766.7A CN106156038B (zh) | 2015-03-26 | 2015-03-26 | 数据存储方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510136766.7A CN106156038B (zh) | 2015-03-26 | 2015-03-26 | 数据存储方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106156038A CN106156038A (zh) | 2016-11-23 |
CN106156038B true CN106156038B (zh) | 2019-11-29 |
Family
ID=57339425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510136766.7A Active CN106156038B (zh) | 2015-03-26 | 2015-03-26 | 数据存储方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106156038B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391526B (zh) | 2017-03-28 | 2021-04-02 | 创新先进技术有限公司 | 一种基于区块链的数据处理方法及设备 |
CN107870981B (zh) * | 2017-09-30 | 2021-10-22 | 平安科技(深圳)有限公司 | 电子装置、数据表归档处理的方法及存储介质 |
CN110019358B (zh) * | 2017-09-30 | 2021-08-24 | 北京搜狗科技发展有限公司 | 一种数据处理方法、装置及设备和存储介质 |
CN109697140B (zh) * | 2018-11-19 | 2023-08-25 | 深圳市腾讯信息技术有限公司 | 数据备份方法及装置、数据恢复方法及装置、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0096199A2 (en) * | 1982-06-21 | 1983-12-21 | International Business Machines Corporation | Method and apparatus for logging journal data in a computing apparatus |
CN1996305A (zh) * | 2006-12-22 | 2007-07-11 | 华为技术有限公司 | 一种数据存储及读取方法及装置以及数据传输系统 |
CN201993755U (zh) * | 2011-01-30 | 2011-09-28 | 上海振华重工(集团)股份有限公司 | 实时数据库的数据过滤压缩存储系统 |
CN103532754A (zh) * | 2013-10-12 | 2014-01-22 | 北京首信科技股份有限公司 | 一种通过高速内存、分布式处理海量日志的系统及方法 |
-
2015
- 2015-03-26 CN CN201510136766.7A patent/CN106156038B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0096199A2 (en) * | 1982-06-21 | 1983-12-21 | International Business Machines Corporation | Method and apparatus for logging journal data in a computing apparatus |
CN1996305A (zh) * | 2006-12-22 | 2007-07-11 | 华为技术有限公司 | 一种数据存储及读取方法及装置以及数据传输系统 |
CN201993755U (zh) * | 2011-01-30 | 2011-09-28 | 上海振华重工(集团)股份有限公司 | 实时数据库的数据过滤压缩存储系统 |
CN103532754A (zh) * | 2013-10-12 | 2014-01-22 | 北京首信科技股份有限公司 | 一种通过高速内存、分布式处理海量日志的系统及方法 |
Non-Patent Citations (1)
Title |
---|
一种海量数据库记录归档处理和查询方案;周斌 等;《信息技术与标准化》;20111031(第10期);第47-51页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106156038A (zh) | 2016-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8510499B1 (en) | Solid state drive caching using memory structures to determine a storage space replacement candidate | |
US11537584B2 (en) | Pre-caching of relational database management system based on data retrieval patterns | |
US10509739B1 (en) | Optimized read IO for mix read/write scenario by chunking write IOs | |
US11531491B2 (en) | Systems and methods for random to sequential storage mapping | |
JP2013509658A (ja) | 将来の使用推量に基づく記憶メモリの割り当て | |
US10719245B1 (en) | Transactional IO scheduler for storage systems with multiple storage devices | |
CN109804359A (zh) | 用于将数据回写到存储设备的系统和方法 | |
CN106156038B (zh) | 数据存储方法和装置 | |
US10223038B2 (en) | File management in a file system | |
US10417192B2 (en) | File classification in a distributed file system | |
US11237761B2 (en) | Management of multiple physical function nonvolatile memory devices | |
CN108304142B (zh) | 一种数据管理方法和装置 | |
CN109697019B (zh) | 基于fat文件系统的数据写入的方法和系统 | |
CN109783321B (zh) | 监控数据管理方法、装置、终端设备 | |
CN105653539A (zh) | 索引分布式存储的实现方法和装置 | |
CN109947667B (zh) | 数据访问预测方法和装置 | |
CN114020193A (zh) | 跨页勾选确定方法、装置、电子设备及存储介质 | |
CN105808451B (zh) | 一种数据缓存方法以及相关装置 | |
US10592123B1 (en) | Policy driven IO scheduler to improve write IO performance in hybrid storage systems | |
JP2017027301A (ja) | ストレージ制御装置、階層化ストレージ制御プログラム、階層化ストレージ制御方法 | |
US10261722B2 (en) | Performing caching utilizing dispersed system buffers | |
JP7431490B2 (ja) | 階層型ストレージ管理システムにおけるデータ・マイグレーション | |
US10599340B1 (en) | Policy driven IO scheduler to improve read IO performance in hybrid storage systems | |
US20180322187A1 (en) | Dynamic alternate keys for use in file systems utilizing a keyed index | |
US20190369907A1 (en) | Data writing device and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210922 Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |