CN118034596A - 数据存储的处理方法及装置、电子设备和存储介质 - Google Patents

数据存储的处理方法及装置、电子设备和存储介质 Download PDF

Info

Publication number
CN118034596A
CN118034596A CN202410185439.XA CN202410185439A CN118034596A CN 118034596 A CN118034596 A CN 118034596A CN 202410185439 A CN202410185439 A CN 202410185439A CN 118034596 A CN118034596 A CN 118034596A
Authority
CN
China
Prior art keywords
data
stored
storage
storage address
target
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
CN202410185439.XA
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.)
Beijing Yunsizhixue Technology Co ltd
Original Assignee
Beijing Yunsizhixue Technology 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 Beijing Yunsizhixue Technology Co ltd filed Critical Beijing Yunsizhixue Technology Co ltd
Priority to CN202410185439.XA priority Critical patent/CN118034596A/zh
Publication of CN118034596A publication Critical patent/CN118034596A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开公开了数据存储的处理方法及装置、电子设备和存储介质,涉及数据处理技术领域,主要技术方案包括:在至少两个数据文件进行预设形式存储时,分别分配所述至少两个数据文件中的待存储数据对应的存储地址;根据数据文件的类别,将所述存储地址进行分类组合,得到至少两类存储地址组;对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列;响应于对目标数据的索引指令,在所述存储地址组序列中利用二分查找方式查找所述目标数据对应的目标存储地址。与相关技术相比,实现了正确建立数据与数据对应的存储地址的索引关系,避免数据损坏。

Description

数据存储的处理方法及装置、电子设备和存储介质
技术领域
本公开涉及数据处理技术领域,尤其涉及一种数据存储的处理方法及装置、电子设备和存储介质。
背景技术
数据在进行存储时,系统会为数据分配存储地址,通过索引数据的存储地址可以快速查找到存储地址对应的数据。
跳表数据结构是一种常见的存储数据结构,跳表数据结构在进行存储时,需要将待存储数据插入到已存储数据中,每次插入数据时,需要调整数据的存储地址,如果数据在进行存储时,应用程序异常中断,可能会使数据的存储地址不能及时调整,导致数据的存储地址错误,由于无法正确建立数据与数据对应的存储地址的索引关系,从而导致数据损坏。
发明内容
本公开提供了一种数据存储的处理方法及装置、电子设备和存储介质。其主要目的在于解决由于无法正确建立数据与数据对应的存储地址的索引关系,从而导致数据损坏的问题。
根据本公开的第一方面,提供了一种数据存储的处理方法,其中,包括:
在至少两个数据文件进行预设形式存储时,分别分配所述至少两个数据文件中的待存储数据对应的存储地址;所述预设形式存储为将后存储的数据存储至已存储数据的末端;
根据数据文件的类别,将所述存储地址进行分类组合,得到至少两类存储地址组;
对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列;
响应于对目标数据的索引指令,在所述存储地址组序列中利用二分查找方式查找所述目标数据对应的目标存储地址,以便基于所述目标存储地址索引对应的所述目标数据。
可选的,在对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列之前,所述方法还包括:
若在至少两个数据文件进行所述预设形式存储的过程中,应用程序异常中断,则对所述已存储数据进行识别,得到识别结果;
若所述识别结果为所述已存储数据缺失键数据、值数据、键值对数据中的至少一个,则将所述已存储数据进行删除;所述已存储数据包括键数据、值数据、键值对数据;
若在根据数据文件的类别,将所述存储地址进行分类组合过程中,应用程序异常中断,则重新将所述存储地址进行分类组合。
可选的,所述至少两个数据文件进行预设形式存储包括:
获取所述至少两个数据文件中的待存储数据;所述待存储数据为键值对数据;
对所述键值对数据进行数据识别,得到所述键值对数据对应的键数据及对应的值数据;
在所述键值对数据进行预设形式存储时,依次将所述键数据、所述值数据、键值对数据进行存储,得到键值对数据对应的已存储数据。
可选的,所述分别分配所述至少两个数据文件中的待存储数据对应的存储地址包括:
为所述待存储数据中的第一个待存储数据分配存储地址,得到所述第一个待存储数据对应的第一存储地址;
为所述第一个待存储数据中的键数据分配预设第一存储长度,及为所述第一个待存储数据中的值数据分配预设第二存储长度;所述预设第二存储长度大于所述预设第一存储长度;
对所述第一个待存储数据中键值对数据进行存储长度计算,得到所述第一个待存储数据中键值对数据对应的计算存储长度;
对所述预设第一存储长度、所述预设第二存储长度、所述计算存储长度进行加和计算,得到所述第一个待存储数据的综合存储长度;
对所述第一存储地址与所述综合存储长度进行加和计算,得到所述待存储数据中第二个待存储数据对应的第二存储地址;
基于所述第二存储地址的分配方法,依次分配所述待存储数据中剩余待存储数据的存储地址。
可选的,所述响应于对目标数据的索引指令,在所述存储地址组序列中利用二分查找方式查找所述目标数据对应的目标存储地址包括:
获取所述索引指令中的所述目标数据的目标键数据;
在所述存储地址组序列中对所述键数据进行二分查找,得到所述目标数据对应的目标存储地址组;
在所述目标存储地址组中对所述目标键数据进行二分查找,得到所述目标已存储数据对应的目标存储地址。
根据本公开的第二方面,提供了一种数据存储的处理装置,包括:
分配单元,用于在至少两个数据文件进行预设形式存储时,分别分配所述至少两个数据文件中的待存储数据对应的存储地址;所述预设形式存储为将后存储的数据存储至已存储数据的末端;
组合单元,用于根据数据文件的类别,将所述存储地址进行分类组合,得到至少两类存储地址组;
处理单元,用于对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列;
查找单元,用于响应于对目标数据的索引指令,在所述存储地址组序列中利用二分查找方式查找所述目标数据对应的目标存储地址,以便基于所述目标存储地址索引对应的所述目标数据。
可选的,所述装置还包括:
第一识别单元,用于在对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列之前,当在至少两个数据文件进行所述预设形式存储的过程中,应用程序异常中断时,对所述已存储数据进行识别,得到识别结果;
删除单元,用于当所述识别结果为所述已存储数据缺失键数据、值数据、键值对数据中的至少一个时,将所述已存储数据进行删除;所述已存储数据包括键数据、值数据、键值对数据;
组合单元还用于,当在根据数据文件的类别,将所述存储地址进行分类组合过程中,应用程序异常中断时,则重新将所述存储地址进行分类组合。
可选的,所述装置还包括:
获取单元,用于获取所述至少两个数据文件中的待存储数据;所述待存储数据为键值对数据;
第二识别单元,用于对所述键值对数据进行数据识别,得到所述键值对数据对应的键数据及对应的值数据;
存储单元,在所述键值对数据进行预设形式存储时,依次将所述键数据、所述值数据、键值对数据进行存储,得到键值对数据对应的已存储数据。
可选的,所述分配单元包括:
第一分配模块,用于为所述待存储数据中的第一个待存储数据分配存储地址,得到所述第一个待存储数据对应的第一存储地址;
第二分配模块,用于为所述第一个待存储数据中的键数据分配预设第一存储长度,及为所述第一个待存储数据中的值数据分配预设第二存储长度;所述预设第二存储长度大于所述预设第一存储长度;
计算模块,用于对所述第一个待存储数据中键值对数据进行存储长度计算,得到所述第一个待存储数据中键值对数据对应的计算存储长度;
计算模块还用于,对所述预设第一存储长度、所述预设第二存储长度、所述计算存储长度进行加和计算,得到所述第一个待存储数据的综合存储长度;
计算模块还用于,对所述第一存储地址与所述综合存储长度进行加和计算,得到所述待存储数据中第二个待存储数据对应的第二存储地址;
第三分配模块,用于基于所述第二存储地址的分配方法,依次分配所述待存储数据中剩余待存储数据的存储地址。
可选的,所述查找单元包括:
获取模块,用于获取所述索引指令中的所述目标数据的目标键数据;
查找模块,用于在所述存储地址组序列中对所述键数据进行二分查找,得到所述目标数据对应的目标存储地址组;
查找模块还用于,在所述目标存储地址组中对所述目标键数据进行二分查找,得到所述目标已存储数据对应的目标存储地址。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述第一方面所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如前述第一方面所述的方法。
本公开提供的数据存储的处理方法及装置、电子设备和存储介质,在至少两个数据文件进行预设形式存储时,分别分配所述至少两个数据文件中的待存储数据对应的存储地址;所述预设形式存储为将后存储的数据存储至已存储数据的末端;根据数据文件的类别,将所述存储地址进行分类组合,得到至少两类存储地址组;对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列;响应于对目标数据的索引指令,在所述存储地址组序列中利用二分查找方式查找所述目标数据对应的目标存储地址,以便基于所述目标存储地址索引对应的所述目标数据。与相关技术相比,本公开实施例通过根据数据文件的类别,将至少两个数据文件中的待存储数据对应的存储地址进行分类组合,得到至少两类存储地址组;对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列,根据所述存储地址组序列索引对应的存储数据,实现了正确建立数据与数据对应的存储地址的索引关系,避免数据损坏。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开实施例所提供的一种数据存储的处理方法的流程示意图;
图2为本公开实施例所提供的一种应用程序异常中断下的数据文件的处理方法的流程示意图;
图3为本公开实施例所提供的一种预设形式存储的方法的流程示意图;
图4为本公开实施例所提供的一种已存储数据及存储地址的结构示意图;
图5为本公开实施例提供的一种数据存储的处理装置的结构示意图;
图6为本公开实施例提供的另一种数据存储的处理装置的结构示意图;
图7为本公开实施例提供的示例电子设备的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面参考附图描述本公开实施例的数据存储的处理方法、装置、电子设备和存储介质。
图1为本公开实施例所提供的一种数据存储的处理方法的流程示意图。
如图1所示,该方法应用于存储设备中,该方法包含以下步骤:
步骤101,在至少两个数据文件进行预设形式存储时,分别分配所述至少两个数据文件中的待存储数据对应的存储地址;所述预设形式存储为将后存储的数据存储至已存储数据的末端。
现有存储技术中,存储数据需要进行数据的移动和重写操作,这可能导致数据读写性能下降和数据丢失的风险,而预设形式存储是一种新型数据存储技术,预设形式存储在不移动或重写已存储数据的情况下,将待存储数据追加到已存储数据的末尾,即将后存储的数据存储至已存储数据的末端,可以提高数据的读写性能,避免数据丢失。
数据文件中的待存储数据存储至存储设备时,存储设备会为待存储数据分配存储地址,所述存储地址用于唯一标识和定位待存储数据在存储设备中的位置,其中,待存储数据可以为内存中的临时数据,存储设备可以为硬盘或内存,本公开实施例对所述存储设备、所述待存储数据的类型及来源不进行限定。
步骤102,根据数据文件的类别,将所述存储地址进行分类组合,得到至少两类存储地址组。
同一个数据文件中的待存储数据是按照待存储数据的排列顺序依次存储至存储设备中的,因此,同一个数据文件中的待存储数据在存储设备中的也是存在排列顺序的,但是不同数据文件中的待存储数据之间没有顺序关系,通过根据数据文件的类别,将所述存储地址进行分类组合,得到至少两类存储地址组,可以优化数据的读取、存储及访问效率。
为了便于理解,提供了一种示例进行说明,关于数据文件的类别,例如,一个数据文件为视频文件,一个数据文件为音频文件,将所述视频文件中的待存储数据对应的存储地址按照待存储数据的排列顺序组合为一个存储地址组,将所述音频文件中的待存储数据对应的存储地址按照待存储数据的排列顺序组合为一个存储地址组。
数据文件的类别包括但不限于文本文件、图像文件、音频文件及视频文件,但是应当明确的是,该种说法并非意在限定所述数据文件的类别仅能为文本文件、图像文件、音频文件及视频文件,也可以是其他文件。
步骤103,对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列。
通过步骤102,得到了至少两类存储地址组,同一个存储地址组中的存储地址存在排列顺序,不同存储地址组中的存储地址之间是无序的,为了使不同的存储地址组变得有序时,需要对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列,其中,所述多路归并处理为按照数据文件存储的时间先后顺序对存储地址组进行排序,通过将多个存储地址组进行多路归并处理,可以实现存储地址的整合、有序性及连续性,从而提高存储地址的管理和访问效率。
步骤104,响应于对目标数据的索引指令,在所述存储地址组序列中利用二分查找方式查找所述目标数据对应的目标存储地址,以便基于所述目标存储地址索引对应的所述目标数据。
存储设备中存在大量的存储数据,直接遍历存储设备进行数据查找的效率较低,可以将存储地址组序列存储到内存中,通过索引内存中的存储地址组序列进行数据查询,响应于对目标数据的索引指令,在所述存储地址组序列中利用二分查找方式查找所述目标数据对应的目标存储地址,以便基于所述目标存储地址索引对应的所述目标数据,其中,二分查找是一种高效的查找算法,二分查找适用于已经排好序的数据序列,二分查找的基本思想是将目标值与序列的中间元素进行比较,如果目标值小于中间元素,则在序列的前半部分继续查找;如果目标值大于中间元素,则在序列的后半部分继续查找;如果目标值等于中间元素,则直接返回该位置。通过不断地将查找范围缩小一半,最终可以找到目标值的位置或确定目标值不存在于序列中,二分查找可以提高数据查找效率、降低数据访问成本。
为了便于理解,提供了一种示例进行说明,关于二分查找,例如,存储地址组序列包括存储地址组a、存储地址组b、存储地址组成c,其中,存储地址组a包括存储地址1、存储地址2、存储地址3,存储地址组b包括存储地址4、存储地址5、存储地址6,存储地址组c包括存储地址7、存储地址8、存储地址9,对目标数据的索引指令的目标存储地址为存储地址9,首先,存储地址组a、存储地址组b、存储地址组成c的中间值为存储地址组b,存储地址组b中的中间值为存储地址5,将目标存储地址与存储地址5进行比较,发现目标存储地址大于存储地址5,也大于存储地址组b中的最大值,所以可以确定目标存储地址在大于存储地址组b的存储地址组c中,将目标存储地址组c中的中间值存储地址8与目标存储地址进行比较,发现目标存储地址大于目标存储地址8,二存储地址组c中大于目标存储地址8只有存储地址9,所以,目标存储地址为存储地址9。
本公开提供的数据存储的处理方法,在至少两个数据文件进行预设形式存储时,分别分配所述至少两个数据文件中的待存储数据对应的存储地址;所述预设形式存储为将后存储的数据存储至已存储数据的末端;根据数据文件的类别,将所述存储地址进行分类组合,得到至少两类存储地址组;对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列;响应于对目标数据的索引指令,在所述存储地址组序列中利用二分查找方式查找所述目标数据对应的目标存储地址,以便基于所述目标存储地址索引对应的所述目标数据。与相关技术相比,本公开实施例通过根据数据文件的类别,将至少两个数据文件中的待存储数据对应的存储地址进行分类组合,得到至少两类存储地址组;对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列,根据所述存储地址组序列索引对应的存储数据,实现了正确建立数据与数据对应的存储地址的索引关系,避免数据损坏。
在实际应用中,在对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列之前,应用程序可能会异常中断,需要对数据文件进行处理,可以采用但不局限于以下方式实现,如图2所示,图2为本公开实施例所提供的一种应用程序异常中断下的数据文件的处理方法的流程示意图,包括:
步骤201,若在至少两个数据文件进行所述预设形式存储的过程中,应用程序异常中断,则对所述已存储数据进行识别,得到识别结果。
若在至少两个数据文件进行所述预设形式存储的过程中,应用程序异常中断,可能会导致部分待存储数据没有存储至存储设备中,影响数据的访问和使用,因此,需要对对所述已存储数据进行识别,得到识别结果,以便判断所述存储设备中的存储文件是否完整。
步骤202,若所述识别结果为所述已存储数据缺失键数据、值数据、键值对数据中的至少一个,则将所述已存储数据进行删除;所述已存储数据包括键数据、值数据、键值对数据。
待存储数据在存储至存储设备时,是以键数据、值数据、键值对数据的形式进行存储的,所以已存储数据包括键数据、值数据、键值对数据,若所述识别结果为所述已存储数据缺失键数据、值数据、键值对数据中的至少一个,则确定所述已存储数据不完整,即所述已存储数据已损坏,无法进行读取,需要将所述已存储数据进行删除。
步骤203,若在根据数据文件的类别,将所述存储地址进行分类组合过程中,应用程序异常中断,则重新将所述存储地址进行分类组合。
若在根据数据文件的类别,将所述存储地址进行分类组合过程中,应用程序异常中断,由于内存只能临时存储数据,一旦应当程序异常中断,存储在内存中的应用程序组会被删除,因此,需要重新将所述存储地址进行分类组合,以便基于所述存储地址组对数据进行索引。
作为对步骤101的细化,在执行所述至少两个数据文件进行预设形式存储时,可以采用但不局限于以下方式实现,如图3所示,图3为本公开实施例所提供的一种预设形式存储的方法的流程示意图,包括:
步骤301,获取所述至少两个数据文件中的待存储数据;所述待存储数据为键值对数据。
数据文件中的待存储数据是以键值对的形式存在的数据,键值对数据是一种数据存储的表示方式,键值对数据由键和相应的值组成的数据对,每个键都是唯一的,并且与一个特定的值关联,在键值对数据中,键用于标识和索引值,而值则是与该键相关联的数据,在对数据文件中的待存储数据进行存储之前,需要获取数据文件中的待存储数据,本公开实施例对所述待存储数据的来源不进行限定。
步骤302,对所述键值对数据进行数据识别,得到所述键值对数据对应的键数据及对应的值数据。
由于待存储数据在进行存储时,是以键数据、值数据、键值对数据的形式进行存储的,因此,需要对待存储数据进行识别,即对所述键值对数据进行数据识别,得到所述键值对数据对应的键数据及对应的值数据,以便完成待存储数据的存储。
步骤303,在所述键值对数据进行预设形式存储时,依次将所述键数据、所述值数据、键值对数据进行存储,得到键值对数据对应的已存储数据。
同一个数据文件中待存储数据是有序的,不同数据文件中的待存储数据之间是无序的,为了使不同数据文件在存储后的数据之间有序,按照数据文件存储的时间先后顺序对待存储数据进行预设形式存储,依次将所述键数据、所述值数据、键值对数据进行存储,得到键值对数据对应的已存储数据。
作为对步骤101的细化,每个待存储数据都有对应的存储地址,存储地址是用来唯一标识存储器中某个数据或指令所在位置的值,存储地址可以帮助我们准确定位和访问存储器中的数据,在执行所述分别分配所述至少两个数据文件中的待存储数据对应的存储地址时,可以采用但不局限于以下方式实现,为所述待存储数据中的第一个待存储数据分配存储地址,得到所述第一个待存储数据对应的第一存储地址;为所述第一个待存储数据中的键数据分配预设第一存储长度,及为所述第一个待存储数据中的值数据分配预设第二存储长度;所述预设第二存储长度大于所述预设第一存储长度;对所述第一个待存储数据中键值对数据进行存储长度计算,得到所述第一个待存储数据中键值对数据对应的计算存储长度;对所述预设第一存储长度、所述预设第二存储长度、所述计算存储长度进行加和计算,得到所述第一个待存储数据的综合存储长度;对所述第一存储地址与所述综合存储长度进行加和计算,得到所述待存储数据中第二个待存储数据对应的第二存储地址;基于所述第二存储地址的分配方法,依次分配所述待存储数据中剩余待存储数据的存储地址。
其中,预设第一存储长度可以为uint16,即两个字节,预设第二存储长度可以为uint32,即4个字节,存储地址也有对应的存储长度,可以为uint32,即4个字节,但是应当明确的是,该种说法并非意在限定存储长度仅能为上述长度,也可以为其他任意长度。
为了便于对已存储数据及存储地址进行更好地理解,如图4所述,图4为本公开实施例所提供的一种已存储数据及存储地址的结构示意图,已存储数据包括键数据、所述值数据、键值对数据,同一个数据文件中的待存储数据的存储地址组成存储地址组,多个存储地址组组成存储地址组序列。
作为对步骤104的细化,为了更快的查找到目标数据,可以通过查找目标数据的存储地址的方式来查找,在执行所述响应于对目标数据的索引指令,在所述存储地址组序列中利用二分查找方式查找所述目标数据对应的目标存储地址时,可以采用但不局限于以下方式实现,获取所述索引指令中的所述目标数据的目标键数据;在所述存储地址组序列中对所述键数据进行二分查找,得到所述目标数据对应的目标存储地址组;在所述目标存储地址组中对所述目标键数据进行二分查找,得到所述目标已存储数据对应的目标存储地址。
为了便于理解,提供了一种示例进行说明,当读取目标数据的存储地址时,先用二分查找在存储地址组序列中找到一个存储地址组,再用二分查找在存储地址组中找到一个存储地址,接着可以从存储地址对应的已存储数据中按照存储地址的起始位置开始读取,因为键数据加上值数据是定长共6字节,所以存储地址+6字节+键值对数据能读取到下一个已存储数据的存储地址,同理存储地址+6字节+键数据就能读取到值数据。
综上所述,本公开实施例能实现以下效果:
1.本公开实施例通过根据数据文件的类别,将至少两个数据文件中的待存储数据对应的存储地址进行分类组合,得到至少两类存储地址组;对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列,根据所述存储地址组序列索引对应的存储数据,实现了正确建立数据与数据对应的存储地址的索引关系,避免数据损坏。
2.本公开实施例通过以预设形式存储数据,写入性能更高,然后在内存中创建有序的多级索引,以较低的内存保证了读写的高性能,而在程序异常中断后,能够根据磁盘文件重建索引,而不用担心数据损坏,安全性更高。
与上述的数据存储的处理方法相对应,本发明还提出一种数据存储的处理装置。由于本发明的装置实施例与上述的方法实施例相对应,对于装置实施例中未披露的细节可参照上述的方法实施例,本发明中不再进行赘述。
图5为本公开实施例提供的一种数据存储的处理装置的结构示意图,如图5所示,包括:
分配单元41,用于在至少两个数据文件进行预设形式存储时,分别分配所述至少两个数据文件中的待存储数据对应的存储地址;所述预设形式存储为将后存储的数据存储至已存储数据的末端;
组合单元42,用于根据数据文件的类别,将所述存储地址进行分类组合,得到至少两类存储地址组;
处理单元43,用于对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列;
查找单元44,用于响应于对目标数据的索引指令,在所述存储地址组序列中利用二分查找方式查找所述目标数据对应的目标存储地址,以便基于所述目标存储地址索引对应的所述目标数据。
本公开提供的数据存储的处理装置,在至少两个数据文件进行预设形式存储时,分别分配所述至少两个数据文件中的待存储数据对应的存储地址;所述预设形式存储为将后存储的数据存储至已存储数据的末端;根据数据文件的类别,将所述存储地址进行分类组合,得到至少两类存储地址组;对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列;响应于对目标数据的索引指令,在所述存储地址组序列中利用二分查找方式查找所述目标数据对应的目标存储地址,以便基于所述目标存储地址索引对应的所述目标数据。与相关技术相比,本公开实施例通过根据数据文件的类别,将至少两个数据文件中的待存储数据对应的存储地址进行分类组合,得到至少两类存储地址组;对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列,根据所述存储地址组序列索引对应的存储数据,实现了正确建立数据与数据对应的存储地址的索引关系,避免数据损坏。
进一步地,在本实施例一种可能的实现方式中,如图6所示,所述装置还包括:
第一识别单元45,用于在对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列之前,当在至少两个数据文件进行所述预设形式存储的过程中,应用程序异常中断时,对所述已存储数据进行识别,得到识别结果;
删除单元46,用于当所述识别结果为所述已存储数据缺失键数据、值数据、键值对数据中的至少一个时,将所述已存储数据进行删除;所述已存储数据包括键数据、值数据、键值对数据;
组合单元42还用于,当在根据数据文件的类别,将所述存储地址进行分类组合过程中,应用程序异常中断时,则重新将所述存储地址进行分类组合。
进一步地,在本实施例一种可能的实现方式中,如图6所示,所述装置还包括:
获取单元47,用于获取所述至少两个数据文件中的待存储数据;所述待存储数据为键值对数据;
第二识别单元48,用于对所述键值对数据进行数据识别,得到所述键值对数据对应的键数据及对应的值数据;
存储单元49,在所述键值对数据进行预设形式存储时,依次将所述键数据、所述值数据、键值对数据进行存储,得到键值对数据对应的已存储数据。
进一步地,在本实施例一种可能的实现方式中,如图6所示,所述分配单元41包括:
第一分配模块411,用于为所述待存储数据中的第一个待存储数据分配存储地址,得到所述第一个待存储数据对应的第一存储地址;
第二分配模块412,用于为所述第一个待存储数据中的键数据分配预设第一存储长度,及为所述第一个待存储数据中的值数据分配预设第二存储长度;所述预设第二存储长度大于所述预设第一存储长度;
计算模块413,用于对所述第一个待存储数据中键值对数据进行存储长度计算,得到所述第一个待存储数据中键值对数据对应的计算存储长度;
计算模块413还用于,对所述预设第一存储长度、所述预设第二存储长度、所述计算存储长度进行加和计算,得到所述第一个待存储数据的综合存储长度;
计算模块413还用于,对所述第一存储地址与所述综合存储长度进行加和计算,得到所述待存储数据中第二个待存储数据对应的第二存储地址;
第三分配模块414,用于基于所述第二存储地址的分配方法,依次分配所述待存储数据中剩余待存储数据的存储地址。
进一步地,在本实施例一种可能的实现方式中,如图6所示,所述查找单元44包括:
获取模块441,用于获取所述索引指令中的所述目标数据的目标键数据;
查找模块442,用于在所述存储地址组序列中对所述键数据进行二分查找,得到所述目标数据对应的目标存储地址组;
查找模块443还用于,在所述目标存储地址组中对所述目标键数据进行二分查找,得到所述目标已存储数据对应的目标存储地址。
需要说明的是,前述对方法实施例的解释说明,也适用于本实施例的装置,原理相同,本实施例中不再限定。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图7示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备500包括计算单元501,其可以根据存储在ROM(Read-OnlyMemory,只读存储器)502中的计算机程序或者从存储单元508加载到RAM(Random AccessMemory,随机访问/存取存储器)503中的计算机程序,来执行各种适当的动作和处理。在RAM503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。I/O(Input/Output,输入/输出)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于CPU(Central Processing Unit,中央处理单元)、GPU(Graphic Processing Units,图形处理单元)、各种专用的AI(Artificial Intelligence,人工智能)计算芯片、各种运行机器学习模型算法的计算单元、DSP(DigitalSignal Processor,数字信号处理器)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如数据存储的处理方法。例如,在一些实施例中,数据存储的处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行前述数据存储的处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、FPGA(Field Programmable Gate Array,现场可编程门阵列)、ASIC(Application-Specific Integrated Circuit,专用集成电路)、ASSP(Appl ication SpecificStandard Product,专用标准产品)、SOC(System On Chip,芯片上系统的系统)、CPLD(Complex Programmable Logic Device,复杂可编程逻辑设备)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、RAM、ROM、EPROM(Electrically Programmable Read-Only-Memory,可擦除可编程只读存储器)或快闪存储器、光纤、CD-ROM(Compact Di sc Read-Only Memory,便捷式紧凑盘只读存储器)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(Cathode-Ray Tube,阴极射线管)或者LCD(Liquid Crystal Display,液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:LAN(LocalArea Network,局域网)、WAN(Wide Area Network,广域网)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
其中,需要说明的是,人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (10)

1.一种数据存储的处理方法,其特征在于,包括:
在至少两个数据文件进行预设形式存储时,分别分配所述至少两个数据文件中的待存储数据对应的存储地址;所述预设形式存储为将后存储的数据存储至已存储数据的末端;
根据数据文件的类别,将所述存储地址进行分类组合,得到至少两类存储地址组;
对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列;
响应于对目标数据的索引指令,在所述存储地址组序列中利用二分查找方式查找所述目标数据对应的目标存储地址,以便基于所述目标存储地址索引对应的所述目标数据。
2.根据权利要求1所述方法,其特征在于,在对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列之前,所述方法还包括:
若在至少两个数据文件进行所述预设形式存储的过程中,应用程序异常中断,则对所述已存储数据进行识别,得到识别结果;
若所述识别结果为所述已存储数据缺失键数据、值数据、键值对数据中的至少一个,则将所述已存储数据进行删除;所述已存储数据包括键数据、值数据、键值对数据;
若在根据数据文件的类别,将所述存储地址进行分类组合过程中,应用程序异常中断,则重新将所述存储地址进行分类组合。
3.根据权利要求1所述方法,其特征在于,所述至少两个数据文件进行预设形式存储包括:
获取所述至少两个数据文件中的待存储数据;所述待存储数据为键值对数据;
对所述键值对数据进行数据识别,得到所述键值对数据对应的键数据及对应的值数据;
在所述键值对数据进行预设形式存储时,依次将所述键数据、所述值数据、键值对数据进行存储,得到键值对数据对应的已存储数据。
4.根据权利要求3所述方法,其特征在于,所述分别分配所述至少两个数据文件中的待存储数据对应的存储地址包括:
为所述待存储数据中的第一个待存储数据分配存储地址,得到所述第一个待存储数据对应的第一存储地址;
为所述第一个待存储数据中的键数据分配预设第一存储长度,及为所述第一个待存储数据中的值数据分配预设第二存储长度;所述预设第二存储长度大于所述预设第一存储长度;
对所述第一个待存储数据中键值对数据进行存储长度计算,得到所述第一个待存储数据中键值对数据对应的计算存储长度;
对所述预设第一存储长度、所述预设第二存储长度、所述计算存储长度进行加和计算,得到所述第一个待存储数据的综合存储长度;
对所述第一存储地址与所述综合存储长度进行加和计算,得到所述待存储数据中第二个待存储数据对应的第二存储地址;
基于所述第二存储地址的分配方法,依次分配所述待存储数据中剩余待存储数据的存储地址。
5.根据权利要求3所述方法,其特征在于,所述响应于对目标数据的索引指令,在所述存储地址组序列中利用二分查找方式查找所述目标数据对应的目标存储地址包括:
获取所述索引指令中的所述目标数据的目标键数据;
在所述存储地址组序列中对所述键数据进行二分查找,得到所述目标数据对应的目标存储地址组;
在所述目标存储地址组中对所述目标键数据进行二分查找,得到所述目标已存储数据对应的目标存储地址。
6.一种数据存储的处理装置,其特征在于,包括:
分配单元,用于在至少两个数据文件进行预设形式存储时,分别分配所述至少两个数据文件中的待存储数据对应的存储地址;所述预设形式存储为将后存储的数据存储至已存储数据的末端;
组合单元,用于根据数据文件的类别,将所述存储地址进行分类组合,得到至少两类存储地址组;
处理单元,用于对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列;
查找单元,用于响应于对目标数据的索引指令,在所述存储地址组序列中利用二分查找方式查找所述目标数据对应的目标存储地址,以便基于所述目标存储地址索引对应的所述目标数据。
7.根据权利要求6所述装置,其特征在于,所述装置还包括:
第一识别单元,用于在对所述至少两类存储地址组进行多路归并处理,得到存储地址组序列之前,当在至少两个数据文件进行所述预设形式存储的过程中,应用程序异常中断时,对所述已存储数据进行识别,得到识别结果;
删除单元,用于当所述识别结果为所述已存储数据缺失键数据、值数据、键值对数据中的至少一个时,将所述已存储数据进行删除;所述已存储数据包括键数据、值数据、键值对数据;
组合单元还用于,当在根据数据文件的类别,将所述存储地址进行分类组合过程中,应用程序异常中断时,则重新将所述存储地址进行分类组合。
8.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
9.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-5中任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-5中任一项所述的方法。
CN202410185439.XA 2024-02-19 2024-02-19 数据存储的处理方法及装置、电子设备和存储介质 Pending CN118034596A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410185439.XA CN118034596A (zh) 2024-02-19 2024-02-19 数据存储的处理方法及装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410185439.XA CN118034596A (zh) 2024-02-19 2024-02-19 数据存储的处理方法及装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN118034596A true CN118034596A (zh) 2024-05-14

Family

ID=90999847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410185439.XA Pending CN118034596A (zh) 2024-02-19 2024-02-19 数据存储的处理方法及装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN118034596A (zh)

Similar Documents

Publication Publication Date Title
CN113780098A (zh) 文字识别方法、装置、电子设备以及存储介质
CN112540731B (zh) 数据的追加写方法、装置、设备、介质和程序产品
CN113378855A (zh) 用于处理多任务的方法、相关装置及计算机程序产品
CN112559631A (zh) 分布式图数据库的数据处理方法、装置以及电子设备
CN114327278A (zh) 数据的追加写方法、装置、设备以及存储介质
CN113963197A (zh) 图像识别方法、装置、电子设备和可读存储介质
CN112860811A (zh) 数据血缘关系的确定方法、装置、电子设备和存储介质
CN115099175A (zh) 一种时序网表的获取方法、装置、电子设备和存储介质
CN114416357A (zh) 容器组的创建方法、装置、电子设备和介质
CN112699237B (zh) 标签确定方法、设备和存储介质
CN113868254B (zh) 图数据库中的实体节点去重方法、设备和存储介质
CN118034596A (zh) 数据存储的处理方法及装置、电子设备和存储介质
CN112887426B (zh) 信息流的推送方法、装置、电子设备以及存储介质
CN115293126A (zh) 大规模文本数据的去重方法及装置、电子设备和存储介质
CN115408547A (zh) 一种字典树构建方法、装置、设备及存储介质
CN114690786A (zh) 一种移动机器的路径规划方法和装置
CN114969444A (zh) 数据的处理方法、装置、电子设备和存储介质
CN114494782A (zh) 图像处理方法、模型训练方法、相关装置及电子设备
CN111523000A (zh) 用于导入数据的方法、装置、设备以及存储介质
CN115934181B (zh) 数据加载方法、装置、电子设备和存储介质
CN112783507B (zh) 数据引流回放方法、装置、电子设备及可读存储介质
CN113434508B (zh) 用于存储信息的方法和装置
CN113268987B (zh) 一种实体名称识别方法、装置、电子设备和存储介质
CN114780021B (zh) 副本修复方法、装置、电子设备及存储介质
CN114494817A (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