CN117632953A - 数据循环存储方法、装置、服务器及存储介质 - Google Patents

数据循环存储方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN117632953A
CN117632953A CN202311552730.8A CN202311552730A CN117632953A CN 117632953 A CN117632953 A CN 117632953A CN 202311552730 A CN202311552730 A CN 202311552730A CN 117632953 A CN117632953 A CN 117632953A
Authority
CN
China
Prior art keywords
index
target
state
data
storage space
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.)
Granted
Application number
CN202311552730.8A
Other languages
English (en)
Other versions
CN117632953B (zh
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.)
Guangzhou Zhiyuan Electronics Co Ltd
Original Assignee
Guangzhou Zhiyuan Electronics Co 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 Guangzhou Zhiyuan Electronics Co Ltd filed Critical Guangzhou Zhiyuan Electronics Co Ltd
Priority to CN202311552730.8A priority Critical patent/CN117632953B/zh
Publication of CN117632953A publication Critical patent/CN117632953A/zh
Application granted granted Critical
Publication of CN117632953B publication Critical patent/CN117632953B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种数据循环存储方法、装置、服务器及存储介质,涉及物联网技术领域,本方案的服务器通过按照用户对应的用户存储空间预配置相应的索引,并利用索引列表对索引的索引状态进行维护,以将对应同一用户的设备数据按照所设置的顺序依次存储至相应的索引中,从而在所有索引均存满后,不断地对删除索引并维护索引数组,重新利用清除数据后的索引,实现索引的循环存储利用,以便于始终保持新的设备数据的录入。

Description

数据循环存储方法、装置、服务器及存储介质
技术领域
本申请涉及物联网技术领域,尤其涉及一种数据循环存储方法、装置、服务器及存储介质。
背景技术
在物联网***中,设备端基于各种传感器采集数据,并以其作为设备数据通过网络上报到云端(即服务器端),云端对设备上报的经加密协议加密后的设备数据进行清洗,并存至服务器对应的数据库中。用户可通过云端提供的数据分析引擎对设备数据进行分析统计等处理,以得到分析结果。
通常地,考虑到存储空间带来的成本问题,在完成分析后,用户会选择把旧数据删除以腾出存储空间来存储新的设备数据,从而达到节省成本的目的。
相关技术通常采用ElasticSearch引擎对数据进行管理、分析等处理,ElasticSearch(简称ES)引擎是一个分布式、高扩展、高实时的搜索与数据分析引擎,其提供了基于查询的删除方式和基于索引的删除方式的两种删除方式。
且相关技术中通常把相同类型的设备数据存到同一个索引里,以减少索引数量,因此,基于索引的删除方式是删除整个索引以将索引中存储的数据删除,但该方式在多用户的情形下容易导致其他用户的设备数据被错误删除。而基于查询的删除方式在运行时需要消耗大量的内存资源和CPU(Central Processing Unit,中央处理器)资源,在ES引擎中对该方式存在资源限制,从而使得该方式的删除速度非常缓慢。因此,在提供给用户的存储空间有限的情况下,难以实现对存储空间的循环利用。
发明内容
本申请提供了一种数据循环存储方法、装置、服务器及存储介质,本方案能够在存储空间被占满后对所存储的设备数据进行快速删除以循环利用存储空间,以便于新数据的录入。
第一方面,本申请提供一种数据循环存储方法,应用于服务器,服务器搭载有ES引擎,ES引擎用于通过索引存储设备数据,该方法包括:
基于所配置的用户存储空间的容量,确定在用户存储空间内可配置的索引和索引信息,索引信息包括在用户存储空间内可配置的索引数量以及各索引对应的存储容量;
根据索引和索引数量,确定对应各用户存储空间的索引数组,以生成用于维护各用户存储空间内所有索引对应的索引状态的索引列表;
根据对所接收到的设备数据解析得到的用户标识,在索引列表中选取第一目标索引,以将设备数据存储至第一目标索引;
基于索引信息中的第一目标索引对应的存储容量,更新第一目标索引的索引状态;
在第一目标索引对应的索引状态为存满状态的情况下,在索引列表中选取第二目标索引作为存储设备数据的索引,第二目标索引为索引列表内在循环选取顺序上与第一目标索引连续的下一索引,循环选取顺序为以索引数组内各索引的排序进行循环的顺序;
基于第二目标索引的索引状态,确定是否进行索引删除操作,以在进行索引删除操作后循环使用用户存储空间。
第二方面,本申请还提供了一种数据循环存储装置,应用于服务器,服务器搭载有ES引擎,ES引擎用于通过索引存储设备数据,该装置包括:
索引配置模块,配置为基于所配置的用户存储空间的容量,确定在用户存储空间内可配置的索引和索引信息,索引信息包括在用户存储空间内可配置的索引数量以及各索引对应的存储容量;
列表生成模块,配置为根据索引和索引数量,确定对应各用户存储空间的索引数组,以生成用于维护各用户存储空间内所有索引对应的索引状态的索引列表;
第一数据存储模块,配置为根据对所接收到的设备数据解析得到的用户标识,在索引列表中选取第一目标索引,以将设备数据存储至第一目标索引;
状态更新模块,配置为基于索引信息中的第一目标索引对应的存储容量,更新第一目标索引的索引状态;
索引选取模块,配置为在第一目标索引对应的索引状态为存满状态的情况下,在索引列表中选取第二目标索引作为存储设备数据的索引,第二目标索引为索引列表内在循环选取顺序上与第一目标索引连续的下一索引,循环选取顺序为以索引数组内各索引的排序进行循环的顺序;
第二数据存储模块,配置为基于第二目标索引的索引状态,确定是否进行索引删除操作,以在进行索引删除操作后循环使用用户存储空间。
第三方面,本申请还提供了一种服务器,其包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述的数据循环存储方法。
第四方面,本申请还提供了一种存储有计算机可执行指令的存储介质,计算机可执行指令在由处理器执行时用于执行如上述的数据循环存储方法。
在本申请方案中,服务器通过按照用户对应的用户存储空间预配置相应的索引,并利用索引列表对索引的索引状态进行维护,以将对应同一用户的设备数据按照所设置的顺序依次存储至相应的索引中,从而在所有索引均存满后,不断地对删除索引并维护索引数组,重新利用清除数据后的索引,实现索引的循环存储利用,以便于始终保持新的设备数据的录入。
附图说明
图1为本申请一实施例提供的数据循环存储方法的步骤示意图;
图2为本申请一实施例提供的确定可配置的索引和索引信息的步骤示意图;
图3为本申请一实施例提供的更新索引状态的步骤示意图;
图4为本申请一实施例提供的进行索引删除操作的步骤示意图;
图5为本申请一实施例提供的数据循环存储装置的结构示意图;
图6为本申请一实施例提供的服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本申请实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请实施例,而非对本申请实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请实施例相关的部分而非全部结构,本领域技术人员在阅读本申请说明书后,应该能够想到,只要技术特征不互相矛盾,那么技术特征的任意组合均可以构成可选的实施方式。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。在本申请的描述中,“多个”表示两个及以上,“若干”表示一个及以上。
ES引擎中对数据的存储,其与索引是密不可分的,在ES引擎中,数据存储在文档中,而文档存储在索引中,即ES引擎中索引是一个包含文档的数据结构,其允许对文档搜索和分析。在进行数据存储时,ES引擎会将数据以文档的形式添加到相应的索引中。
基于ES引擎的服务器需要不断对用户对应的存储空间内存储的旧数据进行删除,以在对用户通过设备端上传新的设备数据时有足够的存储空间进行存储。相关技术中提供的两种方式,对于资源的占用较导致删除数据较慢,或者容易误删除数据,使得基于ES引擎的服务器难以满足有大量设备数据上传的应用场景的需求。
对此,本申请提供了一种数据循环存储方法,当然,该方法应用于搭载了ES引擎的服务器,以对用户通过设备端上传的数据进行存储以及对为用户分配的存储空间的循环利用。图1为本申请一实施例提供的数据循环存储方法的步骤示意图,具体步骤如下:
步骤S110、基于所配置的用户存储空间的容量,确定在用户存储空间内可配置的索引和索引信息,索引信息包括在用户存储空间内可配置的索引数量以及各索引对应的存储容量。
可以理解的是,服务器需要根据为各用户对应的用户存储空间所配置的容量,对各用户存储空间内可以配置的索引以及索引信息进行配置,如确定索引ID、索引数量、各索引对应的存储容量等,以便于对新的设备数据进行存储。应当想到的是,各用户所对应的用户存储空间的容量不同,对应地,为各用户存储空间所配置的索引在数量、容量上也可不同。
相应地,服务器按照相应的配置策略以对用户存储空间配置若干索引。图2为本申请一实施例提供的确定可配置的索引和索引信息的步骤示意图,服务器按照所设置的计算方式对应用户存储空间进行分配,从而确定相应的索引数量以及各索引的存储容量,具体步骤如下:
步骤S210、基于用户存储空间的容量,确定在用户存储空间内对应索引的估算数量。
步骤S220、选取估算数量和预设数量中的最大值作为索引数量。
步骤S230、结合用户存储空间的容量和索引数量,确定各索引对应的存储容量。
可以理解的是,服务器所计算的估算数量是基于相应的计算公式计算的,其为多个数值之和,如第一商值、第二商值与预设补偿值之和,其中,第一商值为用户存储空间的容量值和第一预设除数相除后的取值,第二商值为余数值与第二预设除数相除后的取值,余数值为用户存储空间的容量值和第一预设除数取余后的取值。可以想到的是,在服务器进行计算时,对上述数值是取整处理的。
服务器还设置有一个预设数量,通过对比估算数量和预设数量,从而从中选取一个最大值作为索引数量。因此,在用户存储空间的容量和索引数量均确定的情况下,各索引对应的存储容量也可确定。
示例性的,第一预设除数为100,第二预设除数为10,预设补偿值为4,索引数量以及索引对应的存储容量的计算公式如下:
INum=max{(SG/100)+[(SG%100)/10)]+4,50)}
ISize=SG/INum
其中,INum为索引数量,ISize为各索引对应的存储容量,SG为用户存储空间的容量,max{a,b}为在a和b中选取最大值的函数。
需要说明的是,在一些实施例中,服务器还可以对应所分配的用户存储空间配置固定数量以及固定存储容量的索引。且服务器可在对用户存储空间分配相应的索引后,按照各索引对应的存储分片依次设置对应的索引ID(Identity,标识),以区分和查找所配置的索引。
因此,本方案可通过根据各用户对应的用户存储空间,有效地避免了多用户的情况下不同用户的设备数据混杂的情况发生,并且为各用户存储空间预配置多个索引以及索引对应的存储容量,以便于循环利用多个索引对设备数据进行存储。
步骤S120、根据索引和索引数量,确定对应各用户存储空间的索引数组,以生成用于维护各用户存储空间内所有索引对应的索引状态的索引列表。
可以想到的是,索引数量对应于索引数组的大小,即表示该索引数组所存储的数据的个数。各索引数组对应各用户存储空间内配置的索引,且在索引数组中记录有所配置的索引,并且各索引按照相应的顺序依次记录于索引数组中。
此外,服务器可基于索引数组,生成索引列表,该索引列表中记录了各索引以及索引对应的索引状态,可以想到的是,索引列表中记录多个用户存储空间中所配置的索引及其对应的索引状态,以便于对所有的索引对应的索引状态进行维护。
其中,索引状态用于表示该索引是否可用以及该索引所对应的存储容量是否被占满。可以想到的是,对于索引是否可用,服务器可以通过ES引擎提供的获取索引状态的API接口,以对各索引进行是否可用检测;而对于存储容量是否被占满,服务器可以调用ES引擎提供的获取索引大小的API接口,以查询对应索引的大小并与索引的存储容量(如上述的ISize)比较,从而确定该索引对应的存储容量是否被占满。
步骤S130、根据对所接收到的设备数据解析得到的用户标识,在索引列表中选取第一目标索引,以将设备数据存储至第一目标索引。
可以理解的是,在用户通过设备端向服务器上传设备数据时,设备数据中通常需携带相应的用户标识,以确定设备数据的来源。在多用户上传的场景中,服务器需要对设备数据进行解析,以确定设备数据所携带的用户标识,从而确定存储该设备数据的用户存储空间,进而在索引列表中选取第一目标索引,以将设备数据存储至第一目标索引。应当想到的是,第一目标索引为所确定的用于存储该设备数据的用户存储空间内配置的索引,且该第一目标索引对应的存储分片未存满数据,以便于继续存储设备数据。
步骤S140、基于索引信息中的第一目标索引对应的存储容量,更新第一目标索引的索引状态。
可以理解的是,服务器会对第一目标索引对应的存储分片进行检测,以确定当前存储的数据量,进而对比当前存储的数据量和第一目标索引对应的存储容量,确定第一目标索引对应的存储分片是否已经被占满,以对第一目标索引的索引状态进行更新,例如,在第一目标索引对应的存储分片已经被占满的情况下,将第一目标索引对应的索引状态更新为存满状态。
步骤S150、在第一目标索引对应的索引状态为存满状态的情况下,在索引列表中选取第二目标索引作为存储设备数据的索引。
服务器对应索引列表中同一用户存储空间内的索引设置有相应的循环选取顺序,该循环选取顺序关联于索引数组,其为以索引数组内各索引的排序进行循环的顺序,示例性的,一索引数组内包括索引I、索引II和索引III,该循环选取顺序依次为索引I、索引II、索引III、索引I、索引II……,即为不断地按照索引数组内各索引的排序循环。
在循环选取顺序中,第二目标索引为索引列表内在循环选取顺序上与第一目标索引连续的下一索引,两者在循环选取顺序中是连续的。因此,在第一目标索引对应的索引状态为存满状态的情况下,服务器则会选取第二目标索引下一个用于存储设备数据的索引。
步骤S160、基于第二目标索引的索引状态,确定是否进行索引删除操作,以在进行索引删除操作后循环使用用户存储空间。
服务器对第二目标索引的索引状态进行检测,以确定是否进行索引删除操作,即确定该第二目标索引对应的存储分片是否已经被占满,以在被占满时对第二目标索引进行索引删除操作。可以理解的是,服务器对于用户存储空间内所配置的索引是采用循环选取顺序,以循环利用各索引进行设备数据的存储,因此,在所有索引均存满设备数据后,在进入下一循环前,服务器需要将下一用于存储设备数据的索引内当前存储的设备数据清空,以便于重新存储数据,从而实现对用户存储空间的循环使用。
示例性的,一用户存储空间内配置有索引I、索引II和索引III,对应的循环选取顺序依次为索引I、索引II、索引III、索引I、索引II……。若当前的第一目标索引为索引I,在索引I存满设备数据后,服务器选用索引II对设备数据进行存储。在索引I、索引II和索引III均存满后,即对于当前的第一目标索引为索引III,第二目标索引为索引I的情况,服务器对索引I进行索引删除操作,以删除索引I对应的存储分片内所存储的设备数据,从而再度存储新的设备数据。
由上述方案可知,服务器通过按照用户对应的用户存储空间预配置相应的索引,并利用索引列表对索引的索引状态进行维护,以将对应同一用户的设备数据按照所设置的顺序依次存储至相应的索引中,从而在所有索引均存满后,不断地对删除索引并维护索引数组,重新利用清除数据后的索引,实现索引的循环存储利用,以便于始终保持新的设备数据的录入。
在一些实施例中,服务器还搭载有Redis服务,服务器生成的索引列表可通过Redis服务进行管理,即服务器可通过Redis服务缓存索引列表。服务器可根据各索引的索引状态更新索引列表,以对索引列表进行维护。可以想到的是,服务器在查询各索引的索引状态时,可通过在Redis服务中缓存的索引列表进行查询。服务器针对不同的设备端均提供相同的数据循环存储方案,如通过相应的服务实现该功能,进而对于多个设备,服务器设置有相同数量的服务副本,以完成设备数据的存储。
因此,服务器利用Redis服务提供对索引列表的统一管理,以便于在其他服务副本需要查询索引状态时,可通过Redis服务提供的索引列表获悉索引状态,而且还利用Redis服务对各服务副本发起的更新请求对目标索引的索引状态进行更新。
在一实施例中,在选用一索引并将设备数据存储至该索引对应的存储分片内的情况下,服务器需要对该索引进行检测,以确定该索引的索引状态。图3为本申请一实施例提供的更新索引状态的步骤示意图,具体步骤如下:
步骤S310、基于预设的检测时长间隔,定时检测第一目标索引内所存储的数据量,以确定所存储的数据量是否超过第一目标索引对应的存储容量。
步骤S320、根据所存储的数据量与存储容量的对比结果,确定第一目标索引的索引状态,并在索引列表中更新第一目标索引的索引状态。
可以理解的是,服务器在对各用户分配对应的用户存储空间时,会对各用户存储空间另配置相应的冗余存储空间,以存储溢出容量后上传的数据。因此,服务器对于当前所进行存储的索引定时检测其中存储数据的数据量,即对当前的第一目标索引按照预设置的检测时长间隔进行定时检测,以便于确定所存储的数据量是否超过第一目标索引对应的存储容量。需要说明的是,所设置的检测时长间隔可根据实际应用需求设置。
在检测到所存储的数据量后,将其与第一目标索引的存储容量进行对比,服务器根据对比结果确定第一目标索引的索引状态,并在索引列表中进行更新。
例如,在定时的检测时刻时,若检测到所存储的数据量大于或等于第一目标索引的存储容量,对应地,服务器可确定第一目标索引的索引状态为存满状态,而且服务器还在索引列表中更新第一目标索引的索引状态。可以想到的是,若所存储的数据量在检测时刻前已达到第一目标索引对应的存储容量,超出部分则存储至冗余存储空间,当然,在计算所存储的数据量时,需要对第一目标索引对应存储分片以及冗余存储空间对应的存储分片进行统计。
因此,服务器通过定时检测索引的索引状态,从而实现对索引对应的存储分片内数据存储情况的检测,并更新索引列表,以便于调用下一索引进行数据存储,保持新的设备数据的录入。
在一实施例中,服务器对于是否进行索引删除操作,需要结合第二目标索引的索引状态,图4为本申请一实施例提供的进行索引删除操作的步骤示意图,具体步骤如下:
步骤S410、若第二目标索引的索引状态为存满状态,则删除第二目标索引,并在索引列表中保留第二目标索引的索引ID和索引状态。
步骤S420、基于清除数据后的用户存储空间,重新生成与第二目标索引的索引ID相同的第三目标索引,并在索引列表中对应于第二目标索引的索引ID关联于第三目标索引,以记录第三目标索引的索引状态。
步骤S430、更新索引列表,以将第三目标索引的索引状态更新为未存储状态,并将设备数据存储至第三目标索引,直至第三目标索引的索引状态为存满状态。
可以理解的是,在服务器检测到第二目标索引的索引状态为存满状态后,服务器删除第二目标索引,但服务器不对索引列表中与第二目标索引相关的记录进行同步删除,即服务器在索引列表中仍保留第二目标索引的索引ID和索引状态。
并且服务器在对第二目标索引对应的存储分片进行数据删除后,服务器会重新生成第三目标索引,该第三目标索引的索引ID与第二目标索引相同,且原本对应第二目标索引的存储分片则关联于第三目标索引,即服务器对应清除数据后的存储分片重新配置相应的索引,并仍保留相同的索引ID。应当想到的是,在循环选取顺序中,由于第二目标索引与第三目标索引的索引ID相同,第三目标索引则替代第二目标索引在循环选取顺序中的位置。
此外,在索引列表中,将对应于第二目标索引的索引ID关联于第三目标索引,并且通过索引列表记录第三目标索引的索引状态。可以想到的是,第三目标索引所对应的存储分片并未存储数据,对应地,更新索引列表,以将第三目标索引的索引状态更新为未存储状态。进而,将新接收到的设备数据则存储至第三目标索引,直至第三目标索引的索引状态为存满状态。
因此,服务器通过不断地删除并重新配置索引,减少对服务器的资源占用,不仅有效提升数据删除效率,还实现了对索引对应的存储分片的循环存储利用,以便于始终保持新的设备数据的录入。
需要说明的是,若第二目标索引的索引状态不为存满状态,则将设备数据存储至第二目标索引,直至第二目标索引的索引状态为存满状态。
在一些实施例中,服务器在对第二目标索引的索引状态进行检测时,确定第二目标索引的索引状态为存满状态且存在索引状态不为存满状态的空置索引,服务器将重新对循环选取顺序中的各索引重新排序。
示例性的,当用户在服务器中拓展了用户存储空间,服务器会对用户存储空间配置有新的索引,即空置索引。因此,服务器将所有空置索引的次序设置为高于第二目标索引的次序,并以次序最高的空置索引替代第二目标索引进行数据存储。
例如,当前用户存储空间内配置有索引I、索引II和索引III,对应的循环选取顺序依次为索引I、索引II、索引III、索引I、索引II……,而新增的索引IV作为空置索引。若第一目标索引为索引II,而第二目标索引为索引III,且索引II和索引III均为存满状态,则更新后的循环选取顺序为索引I、索引II、索引IV、索引III、索引I、索引II……,即以空置索引作为下一存储数据的索引。可以想到的是,若是存在多个空置索引,则在循环选取顺序中的第一目标索引和第二目标索引之间***多个空置索引,其中,在多个空置索引中位于第一目标索引后的下一索引即为多个空置索引中次序最高的空置索引。
因此,在存在空置索引的情况下,服务器优先利用空置索引,有助于提升数据存储效率,以将设备数据存满用户存储空间。
图5为本申请一实施例提供的数据循环存储装置的结构示意图,该装置应用于服务器,服务器搭载有ES引擎,ES引擎用于通过索引存储设备数据。装置用于执行上述实施例提供的数据循环存储方法,并具备执行方法对应的功能模块和有益效果。如图所示,该装置包括索引配置模块501、列表生成模块502、第一数据存储模块503、状态更新模块504、索引选取模块505和第二数据存储模块506。
其中,索引配置模块501配置为基于所配置的用户存储空间的容量,确定在用户存储空间内可配置的索引和索引信息,索引信息包括在用户存储空间内可配置的索引数量以及各索引对应的存储容量;
列表生成模块502配置为根据索引和索引数量,确定对应各用户存储空间的索引数组,以生成用于维护各用户存储空间内所有索引对应的索引状态的索引列表;
第一数据存储模块503配置为根据对所接收到的设备数据解析得到的用户标识,在索引列表中选取第一目标索引,以将设备数据存储至第一目标索引;
状态更新模块504配置为基于索引信息中的第一目标索引对应的存储容量,更新第一目标索引的索引状态;
索引选取模块505配置为在第一目标索引对应的索引状态为存满状态的情况下,在索引列表中选取第二目标索引作为存储设备数据的索引,第二目标索引为索引列表内在循环选取顺序上与第一目标索引连续的下一索引,循环选取顺序为以索引数组内各索引的排序进行循环的顺序;
第二数据存储模块506配置为基于第二目标索引的索引状态,确定是否进行索引删除操作,以在进行索引删除操作后循环使用用户存储空间。
在上述实施例的基础上,索引配置模块501还配置为:
基于用户存储空间的容量,确定在用户存储空间内对应索引的估算数量,估算数量为第一商值、第二商值与预设补偿值之和,第一商值为用户存储空间的容量值和第一预设除数相除后的取值,第二商值为余数值与第二预设除数相除后的取值,余数值为用户存储空间的容量值和第一预设除数取余后的取值;
选取估算数量和预设数量中的最大值作为索引数量;
结合用户存储空间的容量和索引数量,确定各索引对应的存储容量。
在上述实施例的基础上,服务器还搭载有Redis服务,Redis服务用于缓存索引列表,并根据各索引的索引状态更新索引列表,以对索引列表进行维护。
在上述实施例的基础上,状态更新模块504还配置为:
基于预设的检测时长间隔,定时检测第一目标索引内所存储的数据量,以确定所存储的数据量是否超过第一目标索引对应的存储容量;
根据所存储的数据量与存储容量的对比结果,确定第一目标索引的索引状态,并在索引列表中更新第一目标索引的索引状态。
在上述实施例的基础上,第二数据存储模块506还配置为:
若第二目标索引的索引状态为存满状态,则删除第二目标索引,并在索引列表中保留第二目标索引的索引ID和索引状态;
基于清除数据后的用户存储空间,重新生成与第二目标索引的索引ID相同的第三目标索引,并在索引列表中对应于第二目标索引的索引ID关联于第三目标索引,以记录第三目标索引的索引状态;
更新索引列表,以将第三目标索引的索引状态更新为未存储状态,并将设备数据存储至第三目标索引,直至第三目标索引的索引状态为存满状态。
在上述实施例的基础上,第二数据存储模块506还配置为:
若第二目标索引的索引状态不为存满状态,则将设备数据存储至第二目标索引,直至第二目标索引的索引状态为存满状态。
在上述实施例的基础上,该装置还包括索引排序模块,该索引排序模块配置为:
若第二目标索引的索引状态为存满状态且存在索引状态不为存满状态的空置索引,则对循环选取顺序中的各索引重新排序,以将所有空置索引的次序设置为高于第二目标索引的次序,并以次序最高的空置索引替代第二目标索引进行数据存储。
值得注意的是,上述数据循环存储装置的实施例中,各模块只是按照功能逻辑进行划分的,但并不局限于上述划分,只要能够实现相应的功能即可;另外,各模块的具体名称也只是为了便于互相区分,并不用于限制本申请的保护范围。
图6为本申请一实施例提供的服务器的结构示意图,该设备用于执行如上述实施例提供的数据循环存储方法,并具备执行方法相应的功能模块和有益效果。如图所示,服务器包括处理器601、存储器602、输入装置603和输出装置604。处理器601的数量可以是一个或多个,图中以一个处理器601为例;处理器601、存储器602、输入装置603和输出装置604可以通过总线或其他方式连接,图中以通过总线连接为例。存储器602作为一种计算机可读的存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的数据循环存储方法对应的程序指令/模块。处理器601通过运行存储在存储器602中的软件程序、指令以及模块,从而执行相应的各种功能应用以及数据处理,即实现上述的数据循环存储方法。
存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据使用过程中所记录或创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器602可进一步包括相对于处理器601远程设置的存储器,这些远程设置的存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置603可用于向处理器601输入相应的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入;输出装置604可用于发送或显示与设备的用户设置以及功能控制有关的键信号输出。
本申请实施例还提供一种存储有计算机可执行指令的存储介质,计算机可执行指令在由处理器执行时用于执行本申请任一实施例提供的数据循环存储方法中的相关操作。
计算机可读的存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

Claims (10)

1.一种数据循环存储方法,其特征在于,应用于服务器,所述服务器搭载有ES引擎,所述ES引擎用于通过索引存储设备数据,所述方法包括:
基于所配置的用户存储空间的容量,确定在所述用户存储空间内可配置的索引和索引信息,所述索引信息包括在所述用户存储空间内可配置的索引数量以及各索引对应的存储容量;
根据所述索引和所述索引数量,确定对应各用户存储空间的索引数组,以生成用于维护各所述用户存储空间内所有索引对应的索引状态的索引列表;
根据对所接收到的设备数据解析得到的用户标识,在所述索引列表中选取第一目标索引,以将所述设备数据存储至所述第一目标索引;
基于所述索引信息中的所述第一目标索引对应的存储容量,更新所述第一目标索引的索引状态;
在所述第一目标索引对应的索引状态为存满状态的情况下,在所述索引列表中选取第二目标索引作为存储所述设备数据的索引,所述第二目标索引为所述索引列表内在循环选取顺序上与所述第一目标索引连续的下一索引,所述循环选取顺序为以所述索引数组内各索引的排序进行循环的顺序;
基于所述第二目标索引的索引状态,确定是否进行索引删除操作,以在进行索引删除操作后循环使用所述用户存储空间。
2.根据权利要求1所述的数据循环存储方法,其特征在于,所述基于所配置的用户存储空间的容量,确定在所述用户存储空间内可配置的索引和索引信息,所述索引信息包括在所述用户存储空间内可配置的索引数量以及各索引对应的存储容量,包括:
基于所述用户存储空间的容量,确定在所述用户存储空间内对应所述索引的估算数量,所述估算数量为第一商值、第二商值与预设补偿值之和,所述第一商值为所述用户存储空间的容量值和第一预设除数相除后的取值,所述第二商值为余数值与第二预设除数相除后的取值,所述余数值为所述用户存储空间的容量值和所述第一预设除数取余后的取值;
选取所述估算数量和预设数量中的最大值作为所述索引数量;
结合所述用户存储空间的容量和所述索引数量,确定各所述索引对应的存储容量。
3.根据权利要求1所述的数据循环存储方法,其特征在于,所述服务器还搭载有Redis服务,所述Redis服务用于缓存所述索引列表,并根据各索引的索引状态更新所述索引列表,以对所述索引列表进行维护。
4.根据权利要求1所述的数据循环存储方法,其特征在于,所述基于所述索引信息中的所述第一目标索引对应的存储容量,更新所述第一目标索引的索引状态,包括:
基于预设的检测时长间隔,定时检测所述第一目标索引内所存储的数据量,以确定所存储的数据量是否超过所述第一目标索引对应的存储容量;
根据所存储的数据量与所述存储容量的对比结果,确定所述第一目标索引的索引状态,并在所述索引列表中更新所述第一目标索引的索引状态。
5.根据权利要求1所述的数据循环存储方法,其特征在于,所述基于所述第二目标索引的索引状态,确定是否进行索引删除操作,以在进行索引删除操作后循环使用所述用户存储空间,包括:
若所述第二目标索引的索引状态为存满状态,则删除所述第二目标索引,并在所述索引列表中保留所述第二目标索引的索引ID和索引状态;
基于清除数据后的用户存储空间,重新生成与所述第二目标索引的索引ID相同的第三目标索引,并在所述索引列表中对应于所述第二目标索引的索引ID关联于所述第三目标索引,以记录所述第三目标索引的索引状态;
更新所述索引列表,以将所述第三目标索引的索引状态更新为未存储状态,并将所述设备数据存储至所述第三目标索引,直至所述第三目标索引的索引状态为存满状态。
6.根据权利要求1或5所述的数据循环存储方法,其特征在于,所述基于所述第二目标索引的索引状态,确定是否进行索引删除操作,以在进行索引删除操作后循环使用所述用户存储空间,包括:
若所述第二目标索引的索引状态不为存满状态,则将所述设备数据存储至所述第二目标索引,直至所述第二目标索引的索引状态为存满状态。
7.根据权利要求1所述的数据循环存储方法,其特征在于,所述方法还包括:
若所述第二目标索引的索引状态为存满状态且存在索引状态不为存满状态的空置索引,则对所述循环选取顺序中的各索引重新排序,以将所有空置索引的次序设置为高于所述第二目标索引的次序,并以次序最高的空置索引替代所述第二目标索引进行数据存储。
8.一种数据循环存储装置,其特征在于,应用于服务器,所述服务器搭载有ES引擎,所述ES引擎用于通过索引存储设备数据,所述装置包括:
索引配置模块,配置为基于所配置的用户存储空间的容量,确定在所述用户存储空间内可配置的索引和索引信息,所述索引信息包括在所述用户存储空间内可配置的索引数量以及各索引对应的存储容量;
列表生成模块,配置为根据所述索引和所述索引数量,确定对应各用户存储空间的索引数组,以生成用于维护各所述用户存储空间内所有索引对应的索引状态的索引列表;
第一数据存储模块,配置为根据对所接收到的设备数据解析得到的用户标识,在所述索引列表中选取第一目标索引,以将所述设备数据存储至所述第一目标索引;
状态更新模块,配置为基于所述索引信息中的所述第一目标索引对应的存储容量,更新所述第一目标索引的索引状态;
索引选取模块,配置为在所述第一目标索引对应的索引状态为存满状态的情况下,在所述索引列表中选取第二目标索引作为存储所述设备数据的索引,所述第二目标索引为所述索引列表内在循环选取顺序上与所述第一目标索引连续的下一索引,所述循环选取顺序为以所述索引数组内各索引的排序进行循环的顺序;
第二数据存储模块,配置为基于所述第二目标索引的索引状态,确定是否进行索引删除操作,以在进行索引删除操作后循环使用所述用户存储空间。
9.一种服务器,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当一个或多个所述程序被一个或多个所述处理器执行,使得一个或多个所述处理器实现如权利要求1-7任一项的数据循环存储方法。
10.一种存储有计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由处理器执行时用于执行如权利要求1-7任一项所述的数据循环存储方法。
CN202311552730.8A 2023-11-20 2023-11-20 数据循环存储方法、装置、服务器及存储介质 Active CN117632953B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311552730.8A CN117632953B (zh) 2023-11-20 2023-11-20 数据循环存储方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311552730.8A CN117632953B (zh) 2023-11-20 2023-11-20 数据循环存储方法、装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN117632953A true CN117632953A (zh) 2024-03-01
CN117632953B CN117632953B (zh) 2024-07-16

Family

ID=90020879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311552730.8A Active CN117632953B (zh) 2023-11-20 2023-11-20 数据循环存储方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN117632953B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797096A (zh) * 2020-06-29 2020-10-20 中国平安财产保险股份有限公司 基于ElasticSearch的数据索引方法、装置、计算机设备及存储介质
CN111886591A (zh) * 2019-09-12 2020-11-03 创新先进技术有限公司 日志结构存储***
US10885009B1 (en) * 2016-06-14 2021-01-05 Amazon Technologies, Inc. Generating aggregate views for data indices
CN114205641A (zh) * 2021-11-30 2022-03-18 杭州华橙软件技术有限公司 一种视频数据处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10885009B1 (en) * 2016-06-14 2021-01-05 Amazon Technologies, Inc. Generating aggregate views for data indices
CN111886591A (zh) * 2019-09-12 2020-11-03 创新先进技术有限公司 日志结构存储***
CN111797096A (zh) * 2020-06-29 2020-10-20 中国平安财产保险股份有限公司 基于ElasticSearch的数据索引方法、装置、计算机设备及存储介质
CN114205641A (zh) * 2021-11-30 2022-03-18 杭州华橙软件技术有限公司 一种视频数据处理方法及装置

Also Published As

Publication number Publication date
CN117632953B (zh) 2024-07-16

Similar Documents

Publication Publication Date Title
US11474972B2 (en) Metadata query method and apparatus
CN107622091B (zh) 一种数据库查询方法和装置
CN106294190B (zh) 一种存储空间管理方法及装置
CN102932415B (zh) 一种镜像文件存储方法及装置
CN110858162B (zh) 内存管理方法及装置、服务器
CN109240607B (zh) 一种文件读取方法和装置
CN107329704B (zh) 一种缓存镜像方法及控制器
CN106503008B (zh) 文件存储方法和装置及文件查询方法和装置
CN109766318B (zh) 文件读取方法及装置
CN110888837B (zh) 对象存储小文件归并方法及装置
CN105095261A (zh) 数据***方法和装置
CN113568582B (zh) 数据管理方法、装置和存储设备
CN114253908A (zh) 键值存储***的数据管理方法及其装置
WO2022083287A1 (zh) 存储空间管理方法、装置、设备及存储介质
WO2024041376A1 (zh) 分布式图数据处理***、方法、装置、设备及存储介质
CN114610680A (zh) 分布式文件***元数据管理方法、装置、设备及存储介质
CN106294189B (zh) 内存碎片整理方法及装置
KR102354343B1 (ko) 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치
CN112711564B (zh) 合并处理方法以及相关设备
CN111752941B (zh) 一种数据存储、访问方法、装置、服务器及存储介质
CN117632953B (zh) 数据循环存储方法、装置、服务器及存储介质
CN108804571B (zh) 一种数据存储方法、装置以及设备
CN107111549B (zh) 一种文件***的管理方法及装置
CN111857556A (zh) 管理存储对象的元数据的方法、装置和计算机程序产品
CN115145954A (zh) 一种数据查询方法、数据存储方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant