CN115686343A - 数据更新方法及装置 - Google Patents

数据更新方法及装置 Download PDF

Info

Publication number
CN115686343A
CN115686343A CN202110833079.6A CN202110833079A CN115686343A CN 115686343 A CN115686343 A CN 115686343A CN 202110833079 A CN202110833079 A CN 202110833079A CN 115686343 A CN115686343 A CN 115686343A
Authority
CN
China
Prior art keywords
data
operation information
storage block
change operation
storage
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
CN202110833079.6A
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110833079.6A priority Critical patent/CN115686343A/zh
Publication of CN115686343A publication Critical patent/CN115686343A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

本申请的实施例揭示了一种数据更新方法及装置,应用于数据存储***,该***包括可变存储块和数据存储块,该方法包括:获取数据变更操作信息,将获取到的数据变更操作信息写入可变存储块,在可变存储块的已占用存储空间达到预设第一存储阈值时,从可变存储块中读取已占用存储空间中存储的数据变更操作信息,基于读取到的数据变更操作信息更新数据存储块中存储的数据。本申请实施例的技术方案能够提升存储***读写性能,降低存储***崩溃的概率,提升存储***的稳定性。

Description

数据更新方法及装置
技术领域
本申请涉及数据处理领域,具体而言,涉及一种数据更新方法及装置。
背景技术
随着互联网技术(例如大数据、人工智能等)的发展,数据量呈现爆发式增长,数据存储需求也急剧增加。而存储***中,随着数据存储量的增加,数据读写性能降低,严重影响存储***的稳定性。
发明内容
为解决上述技术问题,本申请的实施例提供了一种数据更新方法及装置、电子设备、计算可读存储介质。
根据本申请实施例的一个方面,提供了一种数据更新方法,应用于数据存储***,所述***包括可变存储块和数据存储块,所述方法包括:
获取数据变更操作信息;
将获取到的数据变更操作信息写入所述可变存储块,并在所述可变存储块的已占用存储空间达到预设第一存储阈值时,从所述可变存储块中读取所述已占用存储空间存储的数据变更操作信息;
基于读取到的数据变更操作信息,更新所述数据存储块中存储的数据。
根据本申请实施例的一个方面,提供了一种数据更新装置,应用于数据存储***,所述***包括可变存储块和数据存储块,所述装置包括:
获取模块,配置为获取数据变更操作信息;
读取模块,配置为将获取到的数据变更操作信息写入所述可变存储块,并在所述可变存储块的已占用存储空间达到预设第一阈值时,从所述可变存储块中读取所述已占用存储空间存储的数据变更操作信息;
更新模块,配置为基于读取到的数据变更操作信息,更新所述数据存储块中存储的数据。
根据本申请实施例的一个方面,提供了一种电子设备,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行上述的任一项所述的数据更新方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述任一项所述的数据更新方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的数据更新方法。
在本申请的实施例所提供的技术方案中,数据存储***包括可变存储块和数据存储块,通过获取数据变更操作信息,将获取到的数据变更操作信息写入可变存储块,在可变存储块的已占用存储空间达到预设第一存储阈值时,从可变存储块中读取已占用存储空间中存储的数据变更操作信息,基于读取到的数据变更操作信息更新数据存储块中存储的数据,一方面,将数据变更操作信息的写入,与数据存储块中的数据整理分离,从而提升数据变更操作信息的读写性能;另一方面,在可变存储块中的已占用存储空间达到预设第一存储阈值时,才从可变存储块中读取已占用存储空间中存储的数据变更操作信息,并基于数据变更操作信息更新数据,使得即使短时间内获取的数据变更操作信息较多,也可先将数据变更操作信息暂时存储在可变存储块中,在可变存储块的已占用存储空间达到一定程度时,再基于数据变更操作信息更新数据存储块中的数据,从而为数据的更新提供了缓冲时间,降低了由于数据变更操作信息急剧增加导致存储***读写性能降低,存储***崩溃的概率,提升了存储***的稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本申请一示例性实施例示出的实施环境示意图;
图2本申请的另一示例性实施例示出的实施环境示意图;
图3是本申请的一示例性实施例示出的一种数据更新方法的流程图;
图4是图3所示实施例中的步骤S120在一示例性实施例中的流程图;
图5-1是本申请的一示例性实施例示出的可变存储块示意图;
图5-2是本申请的一示例性实施例示出的对图5-1示出的可变存储块进行更新后的示意图;
图6是本申请的另一示例性实施例示出的数据更新方法的流程图;
图7是本申请的一示例性实施例示出的数据存储块示意图;
图8是本申请的又一示例性实施例示出的数据更新方法的流程图;
图9是图8所示实施例中的步骤S240在一示例性实施例中的流程图;
图10是图3所示实施例中的步骤S130在一示例性实施例中的流程图;
图11是本申请的一示例性实施例示出的元数据存储块示意图;
图12-1是本申请的一示例性实施例示出的存储块的结构示意图;
图12-2是图12-1示出的公共块头的结构示意图;
图13是基于图2所示的应用场景在一示例性实施例中的流程图;
图14是本申请的一示例性实施例示出的数据更新装置的框图;
图15是本申请的一示例性实施例示出的电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
还需要说明的是:在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
在介绍本申请实施例的技术方案之前,先对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储***(以下简称存储***)是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储***。
目前,存储***的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件***上,文件***将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件***将每个对象分别写入该逻辑卷的物理存储空间,且文件***会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件***能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储***为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
在相关技术中,随着互联网技术(例如大数据、人工智能等)的发展,数据量呈现爆发式增长,数据存储需求也急剧增加。而存储***中,随着数据存储量的增加,数据读写性能降低,严重影响存储***的稳定性。基于此,本申请实施例提出了一种数据更新方法及装置,可以提升存储***读写性能和稳定性。
请参阅图1,图1是本申请的一示例性实施例示出的实施环境示意图。该实施环境包括服务器10、可变存储块11和数据存储块12。
其中,服务器10可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器,本处不对此进行限制。
可变存储块11和数据存储块12均为能够存储数据的存储资源。其中,可变存储块11可以是独立的存储设备,数据存储块12可以是独立的存储设备;或者,可变存储块11和数据存储块12可以是基于云存储技术构建的云存储***中的存储资源。
数据存储块12用于存储数据,可变存储块11用于存储数据变更操作信息,该数据变更操作信息用于对数据存储块12中存储的数据进行变更。
服务器10可以获取来自于用户的数据变更操作信息,将获取到的数据变更操作信息写入可变存储块11,并在可变存储块11的已占用存储空间达到第一存储阈值时,从可变存储块11中读取已占用存储空间中存储的数据变更操作信息,基于读取到的数据变更操作信息,更新数据存储块12中存储的数据。这样,一方面,将数据变更操作信息的写入,与数据存储块12中的数据整理分离,从而提升数据变更操作信息的读写性能;另一方面,在可变存储块11中的已占用存储空间达到预设第一存储阈值时,才从可变存储块11中读取已占用存储空间中存储的数据变更操作信息,并基于数据变更操作信息更新数据,使得即使短时间内获取的数据变更操作信息较多,也可先将数据变更操作信息暂时存储在可变存储块11中,在可变存储块11的已占用存储空间达到一定程度时,再基于数据变更操作信息更新数据存储块12中的数据,从而为数据的更新提供了缓冲时间,降低了由于数据变更操作信息急剧增加导致存储***读写性能降低,存储***崩溃的概率,提升了存储***的稳定性。
请参见图2,图2是本申请的另一示例性实施例示出的实施环境示意图,该实施环境在图1所示的实施环境基础上,还包括元数据存储块13。元数据存储块13可以是独立的存储设备;或者,也可以是基于云存储技术构建的云存储***中的存储资源。
元数据存储块13用于存储可变存储块11的地址以及数据存储块12的地址。
本实施例中,服务器10可以访问元数据存储块13,以从元数据存储块13中,获取可变存储块11的地址,并基于可变存储块11的地址,将数据变更操作信息存储至可变存储块11,或从可变存储块11中读取数据变更操作信息。服务器10也可以从元数据存储块13中获取数据存储块12的地址,并基于读取到的数据变更操作信息更新数据存储块12的地址中存储的数据。
需要说明的是,图1和图2中,可变存储块11、数据存储块12以及元数据存储块13的数量仅仅是示例性的。根据实际需要,可以具有任意数目的可变存储块11、数据存储块12以及元数据存储块13。例如,可以设置一个元数据存储块13。
若可变存储块11的数量为多个,其中一个可变存储块11为活跃可变存储块,服务器10可以将获取到的数据变更操作信息写入活跃可变存储块,在活跃可变存储块的已占用存储空间达到预设第二存储阈值时,将活跃可变存储块切换为冻结可变存储块(其中,冻结可变存储块中禁止写入数据);从多个可变存储块中选择一个未存储数据的可变存储块作为新的活跃可变存储块,并跳转至将获取到的数据变更操作信息写入活跃可变存储块的步骤;在监测到冻结可变存储块的个数达到预设个数阈值时,从所有的冻结可变存储块中读取数据变更操作信息。这样,同一时间,只有一个可变存储块11可以存储数据变更操作信息,当该可变存储块11中的已占用存储空间达到预设第二存储阈值时,则禁止向该可变存储块11中存储数据,使可变存储块11切换为冻结可变存储块,从而保证各个冻结可变存储块中存储的数据变更操作信息在获取时间(其中,获取数据变更操作信息的时间)上具有先后顺序,从而使得后续读取过程中,可以先读取获取时间靠前的冻结可变存储块11中的数据变更操作信息并基于读取到的数据变更操作信息更新数据存储块12中的数据,再读取时间靠后的冻结可变存储块11中的数据变更操作信息并基于读取到的数据变更操作信息更新数据存储块12中的数据,从而保证基于数据变更操作信息的更新是基于时间先后顺序执行的。
若数据存储块12的数量为多个,则元数据存储块13中,各数据存储块12的地址可以基于索引标识号范围有序存储。这样,服务器10可以从元数据存储块13中获取多个数据存储块12之间的顺序以及各个数据存储块12对应的索引标识号范围,根据多个数据存储块12之间的顺序,依次将各个数据存储块12的索引标识号范围与读取到的数据变更操作信息中含有的索引标识号进行比对,以从多个数据存储块12中查找出第一目标数据存储块;从元数据存储块13中获取第一目标数据存储块的地址,并基于读取到的数据变更操作信息,更新第一目标数据存储块的地址中存储的数据,其中,第一目标数据存储块的索引标识号范围与读取到的数据变更操作信息中含有的索引标识号匹配。从而提升查找速度。
图3是根据一示例性实施例示出的一种数据更新方法的流程图。该方法应用于数据存储***,数据存储***包括图1或图2所示的可变存储块11和数据存储块12,并由图1或图2所示实施例环境中的服务器10具体执行。其中,可变存储块11可以是独立的存储设备;或者,可以是基于云存储技术构建的云存储***中的存储资源;数据存储块12可以是独立的存储设备;或者,可以是基于云存储技术构建的云存储***中的存储资源。可变存储块11的数量和容量可以根据实际需要灵活设置,数据存储块12的数量和容量可以根据实际需要灵活设置,不同可变存储块11的容量可以相同,也可以不同;不同数据存储块12的容量可以相同,也可以不同。应当理解的是,可变存储块11的容量为可变存储块的最大可用存储空间的大小,数据存储块12的容量为数据存储块的最大可用存储空间的大小。其中,可变存储块11和数据存储块12可以部署在不同的存储节点,从而实现分布式存储。
如图3所示,在一示例性实施例中,数据更新方法可以包括步骤S110至步骤S130,详细介绍如下:
步骤S110,获取数据变更操作信息。
需要说明的是,本实施例中的数据存储块用于存储数据,该数据存储块中的数据可以进行变更(例如新增、替换、删除等),数据变更操作信息用于指示服务器如何对数据存储块中的数据进行变更,其为数据变更操作对应的信息。数据变更操作包括但不限于数据新增操作、数据替换操作、数据删除操作等中的至少一种。
在一些实施方式中,可以在服务器提供的平台上进行数据变更操作,服务器获取数据变更操作信息。其中,服务器提供的平台可以是网站或应用软件。
S120,将获取到的数据变更操作信息写入可变存储块,并在可变存储块的已占用存储空间达到预设第一存储阈值时,从可变存储块中读取已占用存储空间存储的数据变更操作信息。
需要说明的是,可变存储块用于存储数据变更操作信息。预设第一存储阈值为预先设置的,其具体取值可以根据实际需要灵活设置,例如可以为可变存储块的容量的100%,或者可以为可变存储块的容量的90%,或者可以为可变存储块的容量的80%。
本实施例中,在获取到数据变更操作信息之后,将获取到的数据变更操作信息写入可变存储块,并在可变存储块的已存储空间达到预设第一存储阈值时,从已存储空间中读取数据变更操作信息。
在一些实施方式中,数据变更操作信息可以有序存储在可变存储块中,这样,在从可变存储块中读取数据变更操作信息时,可以根据顺序依次从中读取数据变更操作信息。其中,该顺序可以是基于数据变更操作信息的获取时间排序,例如,可以是获取时间越晚的,顺序越靠前;也可以是获取时间越晚的,顺序越靠后;这样,可以根据顺序,从可变存储块中,先读取获取时间靠前的数据变更操作信息,再读取获取时间靠后的数据变更操作信息,以使基于数据变更操作信息的更新是基于时间先后顺序进行的。或者,该顺序可以是基于数据变更操作信息中含有的待变更数据的索引标识号进行排序,例如,可以是索引标识号越小的,顺序越靠前;也可以索引标识号越小的,顺序越靠后。需要说明的是,为了提升数据的检索速度,通常会为数据创建索引,索引为一种单独的,物理的对数据表中一列或多列的值进行排序的一种存储结构;索引标识号用于区别不同的索引。为了提升对待处理数据的处理速度,数据变更操作信息中可以含有待处理数据的索引标识号,可以基于待处理数据的索引标识号有序存储。
S130,基于读取到的数据变更操作信息,更新数据存储块中存储的数据。
在读取到数据变更操作信息后,基于读取到的数据变更操作信息,更新数据存储块中存储的数据。
本实施例中,一方面,将数据变更操作信息的写入,与数据存储块中的数据整理分离,从而提升数据变更操作信息的读写性能;另一方面,在可变存储块中的已占用存储空间达到预设第一存储阈值时,才从可变存储块中读取已占用存储空间中存储的数据变更操作信息,并基于数据变更操作信息更新数据,使得即使短时间内获取的数据变更操作信息较多,也可先将数据变更操作信息暂时存储在可变存储块中,在可变存储块的已占用存储空间达到一定程度时,再基于数据变更操作信息更新数据存储块中的数据,从而为数据的更新提供了缓冲时间,降低了由于数据变更操作信息急剧增加导致存储***读写性能降低,存储***崩溃的概率,提升了存储***的稳定性。
参见图4,图4为图3所示的步骤S120中,将获取到的数据变更操作信息写入可变存储块的步骤在一示例性实施例中的流程图。如图4所示,将获取到的数据变更操作信息写入可变存储块的过程,可以包括步骤S121至步骤S122,详细介绍如下:
步骤S121,基于获取到的数据变更操作信息中含有的索引标识号,确定获取到的数据变更操作信息在可变存储块中的存储顺序。
需要说明的是,为了提升数据的检索速度,本实施例中,会为数据创建索引,索引为一种单独的,物理的对数据表中一列或多列的值进行排序的一种存储结构。索引标识号为索引id,用于对索引进行区分。为了快速对待处理数据进行处理,数据变更操作信息中可以含有待处理数据的索引标识号。
可变存储块中的数据变更操作信息基于数据变更操作信息中含有的索引标识号有序存储,其中,可以按照索引标识号由大到小的顺序存储,也可以按照索引标识号由小到大的顺序存储。
本实施例中,在获取数据变更操作信息之后,可以先基于数据变更操作信息中含有的索引标识号,确定数据变更操作信息在可变存储块中的存储顺序。
步骤S122,基于确定出的存储顺序,将获取到的数据变更操作信息存储至可变存储块。
在确定出数据变更操作信息的存储顺序之后,可以基于确定出的存储顺序将数据变更操作信息存储至可变存储块中。举例来说,假设可变存储块中的数据变更操作信息按照索引标识号由小到大的顺序存储,可变存储块中存储的数据变更操作信息和数据变更操作信息的索引标识号如图5-1所示,若获取到数据变更操作信息4,数据变更操作信息4中含有的索引标识号为6,则基于索引标识号6,确定数据变更操作信息4的存储顺序为3,因此,参见图5-2所示,将数据变更操作信息4存储在第3位,将原本存储在第3位的数据变更操作信息3存储在第4位。
本实施例中,可变存储块中的数据变更操作信息基于索引标识号有序存储,这样,可以将索引标识号相同的多条数据变更操作信息存储在一块,后续基于数据变更操作信息更新数据存储块中的数据时,只需要查找一次索引标识号的位置,即可基于这多条数据变更操作信息,更新数据存储块中的数据,提升查找速度和数据更新速度。
参见图6,图6为在可变存储块中的数据变更操作信息基于数据变更操作信息中含有的索引标识号有序存储的条件下,根据一示例性实施例示出的数据更新方法的流程图。
如图6所示,在一示例性实施例中,数据更新方法还可以包括步骤S140至步骤S160,详细介绍如下:
步骤S140,在从可变存储块中读取第一数据变更操作信息,并基于第一数据变更操作信息更新数据存储块中存储的数据之后,从可变存储块中读取第二数据变更操作信息。
需要说明的是,第一数据变更操作信息为可变存储块中存储的任一数据变更操作信息,第二数据变更操作信息也为可变存储块中存储的数据变更操作信息。其中,第二数据变更操作信息的存储位置位于第一数据变更操作信息之后,且第二数据变更操作信息的存储位置与第一数据变更操作信息的存储位置相邻,也就是说,第一数据变更操作信息和第二数据变更操作信息为可变存储块中存储的一对存储位置相邻的数据变更操作信息,其中,第一数据变更操作信息为存储位置靠前的数据变更操作信息,第二数据变更操作信息为存储位置靠后的数据变更操作信息。
本实施例中,可变存储块中的数据变更操作信息基于数据变更操作信息中含有的索引标识号有序存储,因此,可以根据该顺序,先从可变存储块中读取第一数据变更操作信息,基于第一数据变更操作信息更新数据存储块中存储的数据,再从可变存储块中读取第二数据变更操作信息。
步骤S150,以第一位置为起点,从数据存储块中查找第二数据变更操作信息中含有的索引标识号,以确定第二数据变更操作信息中含有的索引标识号在数据存储块中的第二位置。
其中,第一位置为第一数据变更操作信息中含有的索引标识号在数据存储块中的位置。第二位置为第二数据变更操作信息中含有的索引标识号在数据存储块中的位置。
在基于第一数据变更操作信息更新数据存储块中存储的数据的过程中,会确定第一位置,在读取第二数据变更操作信息之后,可以以第一位置为起点,在数据存储块中查找第二数据变更操作信息中含有的索引标识号,从而得到第二位置。需要说明的是,在存储数据和数据的索引标识号时,通常是基于索引标识号有序存储,基于该存储顺序与索引标识号的关系,以及第一数据变更操作信息中含有的索引标识号和第二数据变更操作信息中含有的索引标识号之间的关系,可以确定出第一位置位于第二位置之前还是之后,从而以第一位置为起点,可以快速确定第二位置。其中,若可变存储块中的数据变更操作信息按照索引标识号由小到大的顺序存储,则可以以第一位置为起点,按照索引标识号由小到大的方向,从数据存储块中查找第二数据变更操作信息中含有的索引标识号,以得到第二位置;若可变存储块中的数据变更操作信息按照索引标识号由大到小的顺序存储,则可以以第一位置为起点,按照索引标识号由大到小的方向,从数据存储块中查找第二数据变更操作信息中含有的索引标识号,以确定第二位置。举例来说,如图7所示,若数据和数据的索引标识号,按照索引标识号由小到大的顺序存储在数据存储块中(需要说明的是,在其他示例中,数据和数据的索引标识号,也可以按照索引标识号由大到小的顺序存储在数据存储块中),如图5-1所示,可变存储块中的数据变更操作信息按照索引标识号由小到大的顺序存储,假设第一数据变更操作信息为数据变更操作信息2,则第二数据变更操作信息为数据变更操作信息3,在基于第一数据变更操作信息更新数据存储块中存储的数据过程中,查找到数据变更操作信息2中含有的索引标识号3在数据存储块中的第一位置(即图7中的第4行),在读取数据变更操作信息3之后,以第一位置(即图7中的第4行)为起点,按照索引标识号由小到大的顺序(即图7中由上到下的顺序),从数据存储块中查找8,以确定第二位置。
步骤S160,基于第二数据变更操作信息,更新第二位置中存储的数据。
在确定第二位置之后,基于第二数据变更操作信息,更新第二位置中存储的数据。
本实施例中,在从可变存储块中读取第一数据变更操作信息,并基于第一数据变更操作信息更新数据存储块中存储的数据之后,从可变存储块中读取第二数据变更操作信息;第二数据变更操作信息的存储位置位于第一数据变更操作信息之后,且第二数据变更操作信息的存储位置与第一数据变更操作信息的存储位置相邻;以第一位置为起点,从数据存储块中查找第二数据变更操作信息中含有的索引标识号,以确定第二数据变更操作信息中含有的索引标识号在数据存储块中的第二位置;第一位置为第一数据变更操作信息中含有的索引标识号在数据存储块中的位置;基于第二数据变更操作信息,更新第二位置中存储的数据;从而可以提升查找速度,提升更新效率。
参见图8,图8为在可变存储块的数量为多个(即至少两个),其中一个可变存储块为活跃可变存储块的条件下,图3所示实施例中的步骤S120在一示例性实施例中的流程图。需要说明的是,多个可变存储块中,各个可变存储块的容量可以相同,也可以不同。
如图8所示,将获取到的数据变更操作信息写入可变存储块,并在可变存储块的已占用存储空间达到预设第一存储阈值时,从可变存储块中读取已占用存储空间存储的数据变更操作信息的过程,可以包括步骤S210至步骤S240,详细介绍如下:
步骤S210,将获取到的数据变更操作信息写入活跃可变存储块。
在获取到数据变更操作信息,将数据变更操作信息写入活跃可变存储块。其中,具体的写入过程可以参见前述记载,此处不再赘述。
步骤S220,在活跃可变存储块的已占用存储空间达到预设第二存储阈值时,将活跃可变存储块切换为冻结可变存储块。
需要说明的是,预设第二存储阈值为预先设置的,其具体取值可以根据实际需要灵活设置,例如可以为可变存储块的容量的100%,或者可以为可变存储块的容量的950%,或者可以为可变存储块的容量的70%。
冻结可变存储块中禁止写入数据。
在活跃可变存储块的已占用存储空间达到预设第二存储阈值时,将活跃可变存储块切换为冻结可变存储块。
步骤S230,从多个可变存储块中选择一个未存储数据的可变存储块作为新的活跃可变存储块,并跳转至将获取到的数据变更操作信息写入活跃可变存储块的步骤。
在将活跃可变存储块切换为冻结可变存储块后,需要从多个可变存储块中选择一个未存储数据的可变存储块作为新的活跃可变存储块,并跳转至步骤S210。
步骤S240,在监测到冻结可变存储块的个数达到预设个数阈值时,从所有的冻结可变存储块中读取数据变更操作信息。
预设个数阈值可以根据实际需要灵活设置,例如,可以设置为可变存储块总个数的50%,可变存储块总个数的90%,或者可以设置为1个、2个、5个等。
在监测到冻结可变存储块的个数达到预设个数阈值时,从所有的冻结可变存储块中读取数据变更操作信息。
基于本实施例提供的方法,可以使得各个冻结可变存储块中的数据变更操作信息的获取时间存在时间先后顺序(即一个冻结可变存储块中的各条数据变更操作信息的获取时间,均早于另一个冻结可变存储块中的各条数据变更操作信息的获取时间,或者,一个冻结可变存储块中的各条数据变更操作信息的获取时间,均晚于另一个冻结可变存储块中的各条数据变更操作信息的获取时间),从而保证基于数据变更操作信息的更新按时间先后顺序执行,避免混乱。
参见图9,图9为在***还包括元数据存储块的条件下,图8所示实施例中的步骤S240在一示例性实施例中的流程图。
如图9所示,从所有的冻结可变存储块中读取数据变更操作信息的过程可以包括步骤S241至步骤S242,详细介绍如下:
步骤S241,从元数据存储块中获取各个冻结可变存储块之间的顺序。
需要说明的是,各个冻结可变存储块之间的顺序基于各个冻结可变存储块的时间进行排序,其中,时间越晚,排序越靠后。冻结可变存储块的时间可以为最先写入冻结可变存储块中的数据变更操作信息的获取时间。
元数据存储块中存储有***包括的多个可变存储块的地址,基于地址,可以查找到对应的可变存储块。其中,冻结可变存储块的地址可以基于各个冻结可变存储块的时间,按照时间先后顺序有序存储,从而使得可以从元数据存储块中获取各个冻结可变存储块之间的顺序。
本实施例中,在监测到冻结可变存储块的个数达到预设个数阈值时,访问元数据存储块,以从元数据存储块中获取各个冻结可变存储块之间的顺序。
步骤S242,根据各个冻结可变存储块之间的顺序,依次从各个冻结可变存储块中读取数据变更操作信息。
根据可变存储块之间的顺序,先读取时间靠前的冻结可变存储块中的数据变更操作信息,再读取时间靠后的冻结可变存储块中的数据变更操作信息,从而保证各数据变更操作信息按时间先后顺序被更新至数据存储块中。
参见图10,图10为在***还包括元数据存储块,数据存储块的数量为多个的条件下,图3所示实施例中的步骤S130在一示例性实施例中的流程图。需要说明的是,这多个数据存储块的容量可以相同也可以不同。
如图10所示,基于读取到的数据变更操作信息,更新数据存储块中存储的数据的过程,可以包括步骤S131至步骤S133,详细介绍如下:
步骤S131,从元数据存储块中获取多个数据存储块之间的顺序以及各个数据存储块对应的索引标识号范围。
多个数据存储块之间的顺序基于各个数据存储块的索引标识号范围进行排序,其中,可以是按照索引标识号范围由大到小的顺序进行排序,也可以是按照索引标识号范围由小到大的顺序排序。
需要说明的是,数据存储块中存储有数据与数据的索引标识号,数据存储块对应的索引标识号范围为数据存储块中存储的索引标识号的范围。为了避免相同索引标识号的数据存储在不同的数据存储块中,导致检索速度慢等问题,各个数据存储块对应的索引标识号范围可以不存在重叠。
元数据存储块中存储有多个数据存储块中各个数据存储块的地址以及各个数据存储块对应的索引标识号范围,基于该地址可以查找到对应的元数据存储块。各个数据存储块的地址和索引标识号范围可以基于索引标识号范围有序存储在元数据存储块中,使得可以从元数据存储块中获取多个数据存储块之间的顺序以及各个数据存储块对应的索引标识号范围。举例来说,参见图11所示,按照索引标识号范围由小到大的顺序,存储各个数据存储块的地址和对应的索引标识号范围。
本实施例中,在读取数据变更操作信息之后,从元数据存储块中获取多个数据存储块之间的顺序以及各个数据存储块对应的索引标识号范围,以方便查找读取的数据变更操作信息对应的数据存储块。
步骤S132,根据多个数据存储块之间的顺序,依次将各个数据存储块的索引标识号范围与读取到的数据变更操作信息中含有的索引标识号进行比对,以从多个数据存储块中查找出第一目标数据存储块。
第一目标数据存储块的索引标识号范围与读取到的数据变更操作信息中含有的索引标识号匹配,即数据变更操作信息中含有的索引标识号,处于第一目标数据存储块的索引标识号范围。举例来说,假设读取到的数据变更操作信息中含有的索引标识号为16,存在一个数据存储块,其对应的索引标识号范围为10-20,则该数据存储块为第一目标数据存储块。
根据多个数据存储块之间的顺序,先将顺序靠前的数据存储块对应的索引标识号范围与读取到的数据变更操作信息中含有的索引标识号进行比对,再将顺序靠后的数据存储块对应的索引标识号范围与读取到的数据变更操作信息中含有的索引标识号进行比对,以从多个数据存储块中确定第一目标数据存储块。
步骤S133,从元数据存储块中获取第一目标数据存储块的地址,并基于读取到的数据变更操作信息,更新第一目标数据存储块的地址中存储的数据。
在确定第一目标数据存储块后,从元数据存储块中获取第一目标数据存储块的地址,基于该地址,查找到第一目标数据存储块,从而基于读取到的数据变更操作信息,更新第一目标数据存储块的地址中存储的数据。
本实施例中,基于多个数据存储块之间的顺序以及各个数据存储块对应的索引标识号范围查找数据,从而可以提升查找速度,提升数据更新速度。
在一示例性实施例中,在数据变更操作信息包括数据新增操作信息、数据替换操作信息和数据删除操作信息中的至少一种的条件下,图10所示的步骤S133可以包括步骤S310-步骤S330,详细介绍如下:
步骤S310,若读取到数据新增操作信息,则将数据新增操作信息中含有的待新增数据和待新增数据的索引标识号存储至第一目标数据存储块的地址对应的存储区域中。
数据新增操作信息中含有待新增数据和待新增数据的索引标识号,若读取到数据新增操作信息,则将待新增数据和待新增数据的索引标识号存储至第一目标数据存储块的地址对应的存储区域中。
在数据存储块中的数据和数据对应的索引标识号,基于索引标识号有序存储的条件下,还可以先基于待新增数据的索引标识号,确定在第一目标数据存储块中的位置,从而基于确定出的位置,存储待新增数据和待新增数据的索引标识号。
步骤S320,若读取到数据替换操作信息,则从第一目标数据存储块的地址对应的存储区域中,查找数据替换操作信息中含有的索引标识号,并将查找出的索引标识号对应的数据替换为数据替换操作信息中含有的待替换数据。
数据替换操作信息含有待替换数据和待替换数据的索引标识号,若读取到数据替换操作信息,则从第一目标数据存储块的地址对应的存储区域中,查找待替换数据的索引标识号,将该索引标识号的数据替换为待替换数据。
步骤S330,若读取到数据删除操作信息,则从第一目标数据存储块的地址对应的存储区域中,查找数据删除操作信息中含有的索引标识号,并将查找出的索引标识号对应的数据删除。
数据删除操作信息含有待删除数据的索引标识号,若读取到数据删除操作信息,则从第一目标数据存储块的地址对应的存储区域中,查找待删除数据的索引标识号,并将该索引标识号对应的数据删除。
在一示例性实施例中,数据更新方法还可以包括步骤S410-S450,详细介绍如下:
步骤S410,接收终端发送的数据查找请求。
数据查找请求用于请求查询数据,其包括待查找数据的索引标识号。
服务器可以具备数据查询功能,可以接收终端发送的数据查询请求。
步骤S420,从元数据存储块中获取多个数据存储块之间的顺序以及各个数据存储块对应的索引标识号范围。
多个数据存储块之间的顺序基于各个数据存储块的索引标识号范围进行排序,其中,可以是按照索引标识号范围由大到小的顺序进行排序,也可以是按照索引标识号范围由小到大的顺序排序。
元数据存储块中存储有多个数据存储块中各个数据存储块的地址以及各个数据存储块对应的索引标识号范围,基于该地址可以查找到对应的元数据存储块。各个数据存储块的地址和索引标识号范围可以基于索引标识号范围有序存储在元数据存储块中,使得可以从元数据存储块中获取多个数据存储块之间的顺序以及各个数据存储块对应的索引标识号范围。
本实施例中,在接收到数据查找请求后,访问元数据存储块,以从元数据存储块中获取多个数据存储块之间的顺序以及各个数据存储块对应的索引标识号范围。
步骤S430,根据多个数据存储块之间的顺序,依次将各数据存储块对应的索引标识号范围与待查找数据的索引标识号进行比对,以从多个数据存储块中查找出第二目标数据存储块。
第二目标数据存储块的索引标识号范围与待查找数据的索引标识号匹配,其中,索引标识号范围与索引标识号匹配为该索引标识号处于索引标识号范围。
根据多个数据存储块之间的顺序,先将顺序靠前的数据存储块对应的索引标识号范围与待查找数据的索引标识号进行比对,再将顺序靠后的数据存储块对应的索引标识号范围与待查找数据的索引标识号进行比对,从而查找出第二目标数据存储块。
步骤S440,依次将第二目标数据存储块中的索引标识号与待查找数据的索引标识号进行比对,以从第二目标存储块中查找出待查找数据。
本实施例中,数据存储块中存储有数据以及数据对应的索引标识号,数据以及数据对应的索引标识号根据索引标识号有序存储,这样,可以进一步提升查找速度。其中,可以基于索引标识号由大到小的顺序存储,也可以基于索引标识号由小到大的顺序存储。
基于数据存储块中各索引标识号的顺序,依次将第二目标数据存储块中的索引标识号与待查找数据的索引标识号进行比对,以从第二目标存储块中查找出待查找数据。
步骤S450,将查找出的数据发送至终端。
将查找出的数据发送至终端,从而使终端对查找出的数据进行处理。
本实施例中,支持通过索引标识号的范围进行查找,从而提升查找速度。
在一示例性实施例中,对于可变存储块、数据存储块以及元数据存储块中的每一个存储块,其均由块头和块体组成,参见图12-1所示,块头是公共块头,采用字节流直接存储。块体用于存储数据,例如,对于可变存储块,其块体用于存储数据变更操作信息;对于数据存储块,其块体用于存储数据以及数据的索引标识号;对于元数据存储块,其块体用于存储可变存储块的地址、数据存储块的地址以及数据存储块的索引号范围。块体中的数据采用块头中指定的编码算法和压缩算法进行存储。
参见图12-2所示,公共块头包括:
魔数:记录一个固定的数字,主要用于块的基础校验,校验该存储块是为可变存储块、数据存储块或元数据存储块。若读到脏数据,可通过魔数校验出来,从而可以跳过脏数据。
协议版本:记录存储块结构的协议版本。对于存储块结构,无论是公共块头或块体,都有可能进行升级,因此该字段用于记录当前存储块结构所属的协议版本。
头长度:记录公共块头的字节长度,使得读取到数据后,便于快速截取出公共块头进行解析。
总长度:记录存储块的总长度,便于截取块体进行后续处理。
块类型:记录存储块类型,包括可变存储块,元数据存储块,数据存储块。
数据版本号:记录块体中数据的版本号。存储块的块体中,每次有数据发生变化时,该数据版本号就会发生变更。
压缩算法:记录块体的压缩算法,便于读取该字段后,采用对应的压缩算法进行压缩或解压缩。
编码算法:记录块体的编码算法,便于读取该字段后采用对应的编码算法进行编码或解码。
数据条数:记录块体中存储的数据总条数。
预留字段:用于后续可能扩充字段备用。
参见图13,图13是基于图2所示的应用场景,在一示例性实施例中,数据更新方法的交互流程图。本实施例中的数据更新方法应用于数据更新***,该***包括可变存储块、数据存储块以及元数据存储块。
其中,数据存储块用于存储数据以及数据对应的索引标识号,其存储顺序为按照索引标识号由小到大方式进行排序,索引标识号越小,存储顺序越靠前;为了避免相同索引标识号的数据存储在不同的数据存储块中,导致检索速度慢等问题,各个数据存储块对应的索引标识号范围可以不存在重叠。
可变存储块用于存储数据变更操作信息,数据变更操作信息中含有待处理数据的索引标识号,数据变更操作信息在可变存储块中的存储顺序为按照索引标识号由小到大方式进行排序,索引标识号越小,存储顺序越靠前,其中,数据变更操作信息用于对数据存储块中的数据进行变更。
可变存储块的数量为多个,其中一个为活跃可变存储块;数据存储块的数量也为多个。
元数据存储块用于存储这多个可变存储块中,各个可变存储块的地址;元数据存储块还用于存储这多个数据存储块中,各个数据存储块的地址以及索引标识号范围,各个数据存储块的地址以及索引标识号范围的存储顺序为:索引标识号范围越小,存储顺序越靠前。
如图13所示,在一示例性实施例中,数据更新方法可以包括步骤S510至步骤S519,详细介绍如下:
步骤S510,服务器获取数据变更操作信息。
用户可以在服务器提供的平台上进行数据变更操作,服务器获取数据变更操作信息。其中,服务器提供的平台可以是网站或应用软件。
步骤S511,服务器基于数据变更操作信息中含有的索引标识号,确定数据变更操作信息在活跃可变存储块中的存储顺序。
需要说明的是,索引标识号越大,存储顺序越靠后。这样,可以把一段时间内获取到的索引标识号相同的多条数据变更操作信息存储在一块,后续基于数据变更操作信息更新数据存储块中的数据时,只需要查找一次索引标识号的位置,即可基于这多条数据变更操作信息,更新数据存储块中的数据,提升查找速度和数据更新速度。
步骤S512,服务器基于确定出的存储顺序,将获取到的数据变更操作信息存储至活跃可变存储块。
基于确定出的存储顺序,将获取到的数据变更操作信息存储至活跃可变存储块中,使得可变存储块中,按照索引标识号由小到大的顺序存储数据变更操作信息。
步骤S513,服务器在活跃可变存储块的已占用存储空间达到预设第二存储阈值时,将活跃可变存储块切换为冻结可变存储块。
其中,冻结可变存储块中禁止写入数据。
预设第二存储阈值可以根据实际需要灵活设置。
步骤S514,服务器从多个可变存储块中选择一个未存储数据的可变存储块作为新的活跃可变存储块,并跳转至步骤S511。
步骤S515,服务器在监测到冻结可变存储块的个数达到预设个数阈值时,从元数据存储块中获取各个冻结可变存储块之间的顺序。
各个冻结可变存储块之间的顺序基于各个冻结可变存储块的时间进行排序,时间越晚,排序越靠后,冻结可变存储块的时间为最先写入冻结可变存储块中的数据变更操作信息的获取时间。
预设个数阈值可以根据实际需要灵活设置。
步骤S516,服务器根据各个冻结可变存储块之间的顺序,依次从各个冻结可变存储块中读取数据变更操作信息。
服务器先读取排序靠前的冻结可变存储块中存储的数据变更操作信息,再读取排序靠后的冻结可变存储块中存储的数据变更操作信息。
步骤S517,服务器从元数据存储块中获取多个数据存储块之间的顺序以及各个数据存储块对应的索引标识号范围。
步骤S518,服务器根据多个数据存储块之间的顺序,依次将各个数据存储块的索引标识号范围与读取到的数据变更操作信息中含有的索引标识号进行比对,以从多个数据存储块中查找出第一目标数据存储块。
第一目标数据存储块的索引标识号范围与读取到的数据变更操作信息中含有的索引标识号匹配。
先将排序靠前的数据存储块的索引标识号范围与读取到的数据变更操作信息中含有的索引标识号进行比对,再将排序靠后的数据存储块的索引标识号范围与读取到的数据变更操作信息中含有的索引标识号进行比对,以查找出第一目标数据存储块。
步骤S519,服务器从元数据存储块中获取第一目标数据存储块的地址,并基于读取到的数据变更操作信息,更新第一目标数据存储块的地址中存储的数据。
从元数据存储块中获取第一目标数据存储块的地址,基于第一目标数据存储块的地址确定第一目标数据存储块,再从第一目标数据存储块中查找数据变更操作信息中含有的索引标识号,并基于读取到的数据变更操作信息,更新查找到的索引标识号对应的数据。
需要说明的是,以上步骤S510至步骤S519所涉及的详细过程均在前述的各个实施例中进行了描述,因此本处不再进行赘述。
图14是本申请的一示例性实施例示出的数据更新装置的框图,应用于数据存储***,***包括可变存储块和数据存储,可变存储块和数据存储块可以部署在不同的存储节点,该装置包括:
获取模块601,配置为获取数据变更操作信息;读取模块602,配置为将获取到的数据变更操作信息写入可变存储块,并在可变存储块的已占用存储空间达到预设第一阈值时,从可变存储块中读取已占用存储空间存储的数据变更操作信息;更新模块603,配置为基于读取到的数据变更操作信息,更新数据存储块中存储的数据。
在另一示例性实施例中,获取模块601包括:
确定模块,配置为基于获取到的数据变更操作信息中含有的索引标识号,确定获取到的数据变更操作信息在可变存储块中的存储顺序。
存储模块,配置为基于确定出的存储顺序,将获取到的数据变更操作信息存储至可变存储块。
在另一示例性实施例中,该装置还包括:
操作信息读取模块,配置为在从可变存储块中读取第一数据变更操作信息,并基于第一数据变更操作信息更新数据存储块中存储的数据之后,从可变存储块中读取第二数据变更操作信息;第二数据变更操作信息的存储位置位于第一数据变更操作信息之后,且第二数据变更操作信息的存储位置与第一数据变更操作信息的存储位置相邻。
位置确定模块,配置为以第一位置为起点,从数据存储块中查找第二数据变更操作信息中含有的索引标识号,以确定第二数据变更操作信息中含有的索引标识号在数据存储块中的第二位置;第一位置为第一数据变更操作信息中含有的索引标识号在数据存储块中的位置。
数据更新模块,配置为基于第二数据变更操作信息,更新第二位置中存储的数据。
在另一示例性实施例中,在可变存储块的数量为多个,其中一个可变存储块为活跃可变存储块的条件下,读取模块602包括:
写入子模块,配置为将获取到的数据变更操作信息写入活跃可变存储块。
切换模块,配置为在活跃可变存储块的已占用存储空间达到预设第二存储阈值时,将活跃可变存储块切换为冻结可变存储块;其中,冻结可变存储块中禁止写入数据。
跳转模块,配置为从多个可变存储块中选择一个未存储数据的可变存储块作为新的活跃可变存储块,并跳转至将获取到的数据变更操作信息写入活跃可变存储块的步骤。
读取子模块,配置为在监测到冻结可变存储块的个数达到预设个数阈值时,从所有的冻结可变存储块中读取数据变更操作信息。
在另一示例性实施例中,在***还包括元数据存储块的条件下,读取模块602包括:
顺序获取模块,配置为从元数据存储块中获取各个冻结可变存储块之间的顺序;其中,各个冻结可变存储块之间的顺序基于各个冻结可变存储块的时间进行排序,时间越晚,排序越靠后,冻结可变存储块的时间为最先写入冻结可变存储块中的数据变更操作信息的获取时间。
顺序读取模块,配置为根据各个冻结可变存储块之间的顺序,依次从各个冻结可变存储块中读取数据变更操作信息。
在另一示例性实施例中,在***还包括元数据存储块,数据存储块的数量为多个的条件下,更新模块603还包括:
第一数据获取模块,配置为从元数据存储块中获取多个数据存储块之间的顺序以及各个数据存储块对应的索引标识号范围;其中,多个数据存储块之间的顺序基于各个数据存储块的索引标识号范围进行排序。
第一查找模块,配置为根据多个数据存储块之间的顺序,依次将各个数据存储块的索引标识号范围与读取到的数据变更操作信息中含有的索引标识号进行比对,以从多个数据存储块中查找出第一目标数据存储块;第一目标数据存储块的索引标识号范围与读取到的数据变更操作信息中含有的索引标识号匹配。
更新子模块,配置为诶从元数据存储块中获取第一目标数据存储块的地址,并基于读取到的数据变更操作信息,更新第一目标数据存储块的地址中存储的数据。
在另一示例性实施例中,在数据变更操作信息包括数据新增操作信息、数据替换操作信息和数据删除操作信息中的至少一种条件下,更新子模块包括:
数据新增模块,配置为若读取到数据新增操作信息,则将数据新增操作信息中含有的待新增数据和待新增数据的索引标识号存储至第一目标数据存储块的地址对应的存储区域中。
数据替换模块,配置为若读取到数据替换操作信息,则从第一目标数据存储块的地址对应的存储区域中,查找数据替换操作信息中含有的索引标识号,并将查找出的索引标识号对应的数据替换为数据替换操作信息中含有的待替换数据。
数据删除模块,配置为若读取到数据删除操作信息,则从第一目标数据存储块的地址对应的存储区域中,查找数据删除操作信息中含有的索引标识号,并将查找出的索引标识号对应的数据删除。
在另一示例性实施例中,在数据存储块中的数据根据索引标识号有序存储的条件下,该装置还包括:
接收模块,配置为接收终端发送的数据查找请求;数据查找请求包括待查找数据的索引标识号;
第二数据获取模块,配置为从元数据存储块中获取多个数据存储块之间的顺序以及各个数据存储块对应的索引标识号范围。
第二查找模块,配置为根据多个数据存储块之间的顺序,依次将各数据存储块对应的索引标识号范围与待查找数据的索引标识号进行比对,以从多个数据存储块中查找出第二目标数据存储块;第二目标数据存储块的索引标识号范围与待查找数据的索引标识号匹配。
第三查找模块,配置为依次将第二目标数据存储块中的索引标识号与待查找数据的索引标识号进行比对,以从第二目标存储块中查找出待查找数据。
发送模块,配置为将查找出的数据发送至终端。
本申请的实施例还提供了一种电子设备,包括处理器和存储器,其中,存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时实现如前所述的数据更新方法。
图15是根据一示例性实施例示出的一种电子设备的结构示意图。
需要说明的是,该电子设备只是一个适配于本申请的示例,不能认为是提供了对本申请的使用范围的任何限制。该电子设备也不能解释为需要依赖于或者必须具有图15中示出的示例性的电子设备中的一个或者多个组件。
如图15所示,在一示例性实施例中,电子设备包括处理组件801、存储器802、电源组件803、多媒体组件804、音频组件805、传感器组件807和通信组件808。其中,上述组件并不全是必须的,电子设备可以根据自身功能需求增加其他组件或减少某些组件,本实施例不作限定。
处理组件801通常控制电子设备的整体操作,诸如与显示、数据通信以及日志数据处理相关联的操作等。处理组件801可以包括一个或多个处理器809来执行指令,以完成上述操作的全部或部分步骤。此外,处理组件801可以包括一个或多个模块,便于处理组件801和其他组件之间的交互。例如,处理组件801可以包括多媒体模块,以方便多媒体组件804和处理组件801之间的交互。
存储器802被配置为存储各种类型的数据以支持在电子设备的操作,这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令。存储器802中存储有一个或多个模块,该一个或多个模块被配置成由该一个或多个处理器809执行,以完成上述实施例中所描述的方法中的全部或者部分步骤。
电源组件803为电子设备的各种组件提供电力。电源组件803可以包括电源管理***,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
多媒体组件804包括在电子设备和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括TP(Touch Panel,触摸面板)和LCD(Liquid Crystal Display,液晶显示器)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件805被配置为输出和/或输入音频信号。例如,音频组件805包括一个麦克风,当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。在一些实施例中,音频组件805还包括一个扬声器,用于输出音频信号。
传感器组件807包括一个或多个传感器,用于为电子设备提供各个方面的状态评估。例如,传感器组件807可以检测到电子设备的打开/关闭状态,还可以检测电子设备的温度变化。
通信组件808被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,例如Wi-Fi(Wireless-Fidelity,无线网络)。
可以理解,图15所示的结构仅为示意,该电子设备可以包括比图15中所示更多或更少的组件,或者具有与图15所示不同的组件。图15中所示的各组件均可以采用硬件、软件或者其组合来实现。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
需要说明的是,本申请实施例的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的方法。
还需要说明的是,本申请实施例所公开的数据更新方法,其可以应用于区块链***。区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
其中,每个可变存储块可以对应一条区块链,记为第一区块链,每个数据存储块可以对应一条区块链,记为第二区块链;每个元数据库存储块可以对应一条区块链,记为第三区块链。其中,第一区块链用于存储数据变更操作信息,第二区块链用于存储数据和数据对应的索引标识号,第三区块链用于存储第一区块链的地址、第二区块链的地址、第二区块链对应的索引标识号范围,从而实现可信存储。区块链***中的节点在获取到数据变更操作信息之后,访问第三区块链,以从第三区块链上查找第一区块链的地址,基于第一区块链的地址,将获取到的数据变更操作信息存储至第一区块链上,在第一区块链的已占用存储空间达到预设第一存储阈值时,从第一区块链上读取数据变更操作信息,并基于第三区块链上存储的各条第二区块链的地址和各条第二区块链对应的索引标识号范围,查找读取到的数据变更操作信息对应的第二区块链,基于读取到的数据变更操作信息更新查找出的第二区块链上的数据。上述数据更新方法的过程,也可以基于智能合约来维护,从而实现可信计算。应当理解的是,智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,可以自动执行传统合约中的“如果发生这种情况就执行那种结果”的代码;开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,合约可以进行升级或注销。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。

Claims (10)

1.一种数据更新方法,其特征在于,应用于数据存储***,所述***包括可变存储块和数据存储块,所述方法包括:
获取数据变更操作信息;
将获取到的数据变更操作信息写入所述可变存储块,并在所述可变存储块的已占用存储空间达到预设第一存储阈值时,从所述可变存储块中读取所述已占用存储空间存储的数据变更操作信息;
基于读取到的数据变更操作信息,更新所述数据存储块中存储的数据。
2.如权利要求1所述的方法,其特征在于,所述将获取到的数据变更操作信息写入所述可变存储块,包括:
基于获取到的数据变更操作信息中含有的索引标识号,确定获取到的数据变更操作信息在所述可变存储块中的存储顺序;
基于确定出的存储顺序,将获取到的数据变更操作信息存储至所述可变存储块。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
在从所述可变存储块中读取第一数据变更操作信息,并基于所述第一数据变更操作信息更新所述数据存储块中存储的数据之后,从所述可变存储块中读取第二数据变更操作信息;所述第二数据变更操作信息的存储位置位于所述第一数据变更操作信息之后,且所述第二数据变更操作信息的存储位置与所述第一数据变更操作信息的存储位置相邻;
以第一位置为起点,从所述数据存储块中查找所述第二数据变更操作信息中含有的索引标识号,以确定所述第二数据变更操作信息中含有的索引标识号在所述数据存储块中的第二位置;所述第一位置为所述第一数据变更操作信息中含有的索引标识号在所述数据存储块中的位置;
基于所述第二数据变更操作信息,更新所述第二位置中存储的数据。
4.如权利要求1所述的方法,其特征在于,所述可变存储块的数量为多个,其中一个可变存储块为活跃可变存储块;
所述将获取到的数据变更操作信息写入所述可变存储块,并在所述可变存储块的已占用存储空间达到预设第一存储阈值时,从所述可变存储块中读取所述已占用存储空间存储的数据变更操作信息,包括:
将获取到的数据变更操作信息写入所述活跃可变存储块;
在所述活跃可变存储块的已占用存储空间达到预设第二存储阈值时,将所述活跃可变存储块切换为冻结可变存储块;其中,所述冻结可变存储块中禁止写入数据;
从多个可变存储块中选择一个未存储数据的可变存储块作为新的活跃可变存储块,并跳转至所述将获取到的数据变更操作信息写入所述活跃可变存储块的步骤;
在监测到所述冻结可变存储块的个数达到预设个数阈值时,从所有的冻结可变存储块中读取数据变更操作信息。
5.如权利要求4所述的方法,其特征在于,所述***还包括元数据存储块;
所述从所有的冻结可变存储块中读取数据变更操作信息,包括:
从所述元数据存储块中获取各个冻结可变存储块之间的顺序;其中,各个冻结可变存储块之间的顺序基于各个冻结可变存储块的时间进行排序,时间越晚,排序越靠后,冻结可变存储块的时间为最先写入冻结可变存储块中的数据变更操作信息的获取时间;
根据各个冻结可变存储块之间的顺序,依次从各个冻结可变存储块中读取数据变更操作信息。
6.如权利要求1所述的方法,其特征在于,所述***还包括元数据存储块,所述数据存储块的数量为多个;
所述基于读取到的数据变更操作信息,更新所述数据存储块中存储的数据,包括:
从所述元数据存储块中获取多个数据存储块之间的顺序以及各个数据存储块对应的索引标识号范围;其中,所述多个数据存储块之间的顺序基于各个数据存储块的索引标识号范围进行排序;
根据所述多个数据存储块之间的顺序,依次将各个数据存储块的索引标识号范围与读取到的数据变更操作信息中含有的索引标识号进行比对,以从所述多个数据存储块中查找出第一目标数据存储块;所述第一目标数据存储块的索引标识号范围与读取到的数据变更操作信息中含有的索引标识号匹配;
从所述元数据存储块中获取所述第一目标数据存储块的地址,并基于读取到的数据变更操作信息,更新所述第一目标数据存储块的地址中存储的数据。
7.如权利要求6所述的方法,其特征在于,所述数据变更操作信息包括数据新增操作信息、数据替换操作信息和数据删除操作信息中的至少一种;
所述基于读取到的数据变更操作信息,更新所述第一目标数据存储块的地址中存储的数据,包括:
若读取到所述数据新增操作信息,则将数据新增操作信息中含有的待新增数据和待新增数据的索引标识号存储至所述第一目标数据存储块的地址对应的存储区域中;
若读取到所述数据替换操作信息,则从所述第一目标数据存储块的地址对应的存储区域中,查找所述数据替换操作信息中含有的索引标识号,并将查找出的索引标识号对应的数据替换为所述数据替换操作信息中含有的待替换数据;
若读取到所述数据删除操作信息,则从所述第一目标数据存储块的地址对应的存储区域中,查找所述数据删除操作信息中含有的索引标识号,并将查找出的索引标识号对应的数据删除。
8.如权利要求6所述的方法,其特征在于,所述数据存储块中的数据根据索引标识号有序存储;所述方法还包括:
接收终端发送的数据查找请求;所述数据查找请求包括待查找数据的索引标识号;
从所述元数据存储块中获取所述多个数据存储块之间的顺序以及各个数据存储块对应的索引标识号范围;
根据所述多个数据存储块之间的顺序,依次将各所述数据存储块对应的索引标识号范围与所述待查找数据的索引标识号进行比对,以从所述多个数据存储块中查找出第二目标数据存储块;所述第二目标数据存储块的索引标识号范围与待查找数据的索引标识号匹配;
依次将所述第二目标数据存储块中的索引标识号与所述待查找数据的索引标识号进行比对,以从所述第二目标存储块中查找出所述待查找数据;
将查找出的数据发送至所述终端。
9.如权利要求1所述的方法,其特征在于,所述可变存储块和所述数据存储块部署在不同的存储节点。
10.一种数据更新装置,其特征在于,应用于数据存储***,所述***包括可变存储块和数据存储块,所述装置包括:
获取模块,配置为获取数据变更操作信息;
读取模块,配置为将获取到的数据变更操作信息写入所述可变存储块,并在所述可变存储块的已占用存储空间达到预设第一阈值时,从所述可变存储块中读取所述已占用存储空间存储的数据变更操作信息;
更新模块,配置为基于读取到的数据变更操作信息,更新所述数据存储块中存储的数据。
CN202110833079.6A 2021-07-22 2021-07-22 数据更新方法及装置 Pending CN115686343A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110833079.6A CN115686343A (zh) 2021-07-22 2021-07-22 数据更新方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110833079.6A CN115686343A (zh) 2021-07-22 2021-07-22 数据更新方法及装置

Publications (1)

Publication Number Publication Date
CN115686343A true CN115686343A (zh) 2023-02-03

Family

ID=85044127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110833079.6A Pending CN115686343A (zh) 2021-07-22 2021-07-22 数据更新方法及装置

Country Status (1)

Country Link
CN (1) CN115686343A (zh)

Similar Documents

Publication Publication Date Title
KR102007070B1 (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
CN111247518B (zh) 用于数据库分片的方法和***
US7447839B2 (en) System for a distributed column chunk data store
US10552378B2 (en) Dividing a dataset into sub-datasets having a subset of values of an attribute of the dataset
US8949222B2 (en) Changing the compression level of query plans
US20090089334A1 (en) Lazy updates to indexes in a database
US20100161780A1 (en) Hot data management method based on hit counter
US20070061543A1 (en) Method for a distributed column chunk data store
CN111339078A (zh) 数据实时存储方法、数据查询方法、装置、设备、介质
US10915534B2 (en) Extreme value computation
US10579262B2 (en) Optimization of data deduplication
CN111400334A (zh) 数据处理方法、装置、存储介质及电子装置
CN113760847A (zh) 日志数据处理方法、装置、设备及存储介质
CN110618790A (zh) 基于重复数据删除的雾存储数据去冗余方法
KR102354343B1 (ko) 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치
US20150269086A1 (en) Storage System and Storage Method
CN115686343A (zh) 数据更新方法及装置
CN107077509B (zh) 一种改进浏览体验的方法、装置和设备
US20130218851A1 (en) Storage system, data management device, method and program
JP2010191903A (ja) 分散ファイルシステムのストライピング種別選択方法及びその分散ファイルシステム
KR20230096180A (ko) 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 lsm 트리 장치 및 방법
KR20220027634A (ko) 인 메모리 데이터베이스의 데이터를 처리하는 방법 및 장치
CN114491324A (zh) 信息推送方法、装置、计算机设备和存储介质
CN115794807A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40081512

Country of ref document: HK