CN117407324B - 基于固态硬盘的数据存储方法、装置、固态硬盘控制器 - Google Patents

基于固态硬盘的数据存储方法、装置、固态硬盘控制器 Download PDF

Info

Publication number
CN117407324B
CN117407324B CN202311698847.7A CN202311698847A CN117407324B CN 117407324 B CN117407324 B CN 117407324B CN 202311698847 A CN202311698847 A CN 202311698847A CN 117407324 B CN117407324 B CN 117407324B
Authority
CN
China
Prior art keywords
data
storage
stored
cache block
size
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
Application number
CN202311698847.7A
Other languages
English (en)
Other versions
CN117407324A (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.)
Shenzhen Yinshan Technology Co ltd
Original Assignee
Shenzhen Yinshan 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 Shenzhen Yinshan Technology Co ltd filed Critical Shenzhen Yinshan Technology Co ltd
Priority to CN202311698847.7A priority Critical patent/CN117407324B/zh
Publication of CN117407324A publication Critical patent/CN117407324A/zh
Application granted granted Critical
Publication of CN117407324B publication Critical patent/CN117407324B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种基于固态硬盘的数据存储方法、装置、固态硬盘控制器。该方法包括:接收并解析当前时刻的数据存储请求,根据解析结果,确定待存储数据的数据大小及数据类型;根据数据类型,确定写入方式;根据数据大小,确定固态硬盘中是否存在满足存储的缓存块;若当前时刻存在满足存储的缓存块,则根据数据大小,选择目标缓存块以利用写入方式将待存储数据存储至目标缓存块;若当前时刻不存在满足存储的缓存块,则基于每一缓存块的剩余存储空间,将待存储数据分割以利用写入方式将分割后的若干待存储数据存储至对应剩余存储空间的缓存块。有效地利用缓存块的空间,减少存储空间的浪费。减少写入时间,并降低固态硬盘的写入磨损。

Description

基于固态硬盘的数据存储方法、装置、固态硬盘控制器
技术领域
本申请涉及固态硬盘领域,尤其是涉及一种基于固态硬盘的数据存储方法、装置、固态硬盘控制器。
背景技术
固态硬盘时目前比较常见的驱动器,由于采用了闪存芯片,固态硬盘的读取速度极快,无论是启动系统还是运行大型软件,都能带来相比传统硬盘质的飞跃。
但是,由于闪存芯片的容量较小,所以存在一定的写入次数限制,相比机械硬盘,固态硬盘的写入速度随着使用寿命的增加会逐渐降低。当面临写入速度降低的问题时,多数人会选择更换硬盘,简单且方便,但是这种方式无疑增加了人们的使用成本。因此,如何在较小容量下,进行更加高效的数据存储,延长硬盘使用寿命成为了亟需解决的问题。
发明内容
本申请提供一种基于固态硬盘的数据存储方法、装置、固态硬盘控制器,以解决上述如何在较小容量下,进行更加高效的数据存储,延长硬盘使用寿命的技术问题。
第一方面,本申请提供一种基于固态硬盘的数据存储方法,包括:
接收并解析当前时刻的数据存储请求,根据解析结果,确定待存储数据的数据大小及数据类型;
根据所述数据类型,确定写入方式;
根据所述数据大小,确定所述固态硬盘中是否存在满足存储的缓存块;
若当前时刻存在满足存储的缓存块,则根据所述数据大小,选择目标缓存块以利用所述写入方式将所述待存储数据存储至所述目标缓存块;
若当前时刻不存在满足存储的缓存块,则基于每一缓存块的剩余存储空间,将所述待存储数据分割以利用所述写入方式将分割后的若干待存储数据存储至对应剩余存储空间的缓存块。
通过本申请提供的方案,解析接收到的数据存储请求,确定待存储数据的数据大小以及数据类型,从而根据数据类型确定写入方式。另外,根据数据大小确定当前是否有满足存储的缓存块,若有则选择目标缓存块进行存储,若没有,则基于每一缓存块的剩余存储空间,将待存储数据进行分割从而实现存储,通过分析待存储数据的数据大小和数据类型,以及固态硬盘中可用的缓存块,选择最佳的缓存块以存储待存储数据,可以有效地利用缓存块的空间,减少存储空间的浪费。另外,根据数据类型确定写入方式,可以确保数据以最优的方式写入固态硬盘,减少写入时间,并降低固态硬盘的写入磨损。如果当前时刻不存在满足存储的缓存块,将待存储数据分割成若干部分,并选择最佳的缓存块以存储这些分割后的数据。这种动态的数据管理方式可以有效地应对大数据量的存储需求,并确保数据的存储效率。由于采用了目标缓存块来存储数据,可以将要存储的数据完整保存,在此过程中不会产生碎片数据,因此,也不会因为碎片数据的后期删除,导致数据的不完整,从而确保数据在固态硬盘中的稳定存储,提高数据的完整性。
可选的,所述根据所述数据大小,选择目标缓存块,包括:
根据所述数据大小,将各个缓存块进行筛选,得到若干可用缓存块;
将所述若干可用缓存块的存储空间与所述数据大小进行匹配,确定最佳可用缓存块;
将最佳可用缓存块按照所述数据大小进行分割,得到目标缓存块。
通过本实施例提供的方案,通过将数据大小与可用缓存块进行匹配和分割,可以更精确地利用存储空间,减少存储空间的浪费,从而提高存储效率。通过将数据存储在目标缓存块中,可以减少对固态硬盘某些区域的频繁写入次数,从而延长固态硬盘的寿命。
可选的,所述接收并解析当前时刻的数据存储请求,包括:
根据传输协议,确定所述数据存储请求的请求目的;
识别所述数据存储请求中的字段,并根据识别结果,确定请求头与请求体;
根据所述请求头中的元数据,确定所述待存储数据的数据类型;
根据所述请求体中的数据,确定所述待存储数据的数据大小;
结合所述请求目的、所述数据类型、所述数据大小,得到所述数据存储请求的解析结果。
通过本实施例提供的方案,利用传输协议确定数据存储请求的请求目的,能够明确了解该请求的作用和意图,然后利用请求头和请求体中所包含的内容,确定待存储数据的数据类型和数据大小,从而进行相应的处理,实现了对请求的全面理解和处理,有助于提高数据存储的效率和可靠性。
可选的,所述若当前时刻不存在满足存储的缓存块,则基于每一缓存块的剩余存储空间,将所述待存储数据分割,包括:
根据当前时刻每一缓存块的存储空间及所述待存储数据的数据大小,确定数据分割方案;
根据所述数据分割方案,将所述待存储数据进行预分割,得到若干预分割数据;
将所述预分割数据按照数据大小进行排序,根据排序结果,确定数据量最小的预分割数据;
将所述数据量最小的预分割数据的数据大小与预设碎片阈值进行对比,确定所述数据量最小的预分割数据的数据大小是否小于预设碎片阈值;
若确定所述数据量最小的预分割数据的数据大小小于预设碎片阈值,则选择数据量第二小的第二预分割数据,将所述预分割数据与第二预分割数据组合,得到组合数据;
根据所述组合数据的数据大小及所述数据分割方案,将所述待存储数据分割。
通过本实施例提供的方案,将预分割数据的数据大小与预设碎片阈值进行对比,可以判断是否需要进行方案的调整,从而减少碎片数据的产生,提高存储空间的利用率。另外,对待存储数据进行预分割并按照数据大小进行排序,能够快速确定最小的预分割数据,将其与第二小的预分割数据组合,可以使得数据的存储更加紧凑,减少存储空间的浪费。
可选的,所述根据所述数据大小,确定所述固态硬盘中是否存在满足存储的缓存块前,还包括:
获取已存储数据的数据存储情况;
解析所述数据存储情况,确定已存储数据的调取频率;
根据所述调取频率,确定是否存在滞留数据;
若存在滞留数据,则获取所述滞留数据的关联数据,确定所述关联数据是否滞留;
若所述关联数据滞留,则将所述滞留数据清除。
通过本实施例提供的方案,对已存储数据的数据存储情况进行解析,能够了解已存储数据的调取频率,从而判断是否存在滞留数据,有助于进一步优化数据存储策略,提高存储空间的利用率。对滞留数据进行处理,清除滞留数据,能够释放存储空间,减少数据存储碎片的产生,提高数据的访问效率和查询速度。通过获取滞留数据的关联数据,确定关联数据是否滞留,可以减少冗余数据的产生。
可选的,所述根据所述数据大小,确定所述固态硬盘中是否存在满足存储的缓存块前,还包括:
根据所述数据存储情况,确定每一缓存块中是否存在小于预设碎片阈值的已存储数据;
若存在小于预设碎片阈值的已存储数据,则将调取小于预设碎片阈值的已存储数据作为碎片数据,并调取所述碎片数据的元数据;
根据所述碎片数据的元数据,将所述碎片数据进行组合,得到若干第二组合数据并转移。
通过本实施例提供的方案,转移第二组合数据,能够减少冗余数据的产生,进一步优化数据存储,提高存储空间的利用率,此外,也可以确保数据在存储和访问过程中的准确性和完整性。
可选的,所述根据所述碎片数据的元数据,将所述碎片数据进行组合并转移,包括:
分析所述若干第二组合数据的数据大小,并根据分析结果及每一缓存块的存储空间,确定所述若干第二组合数据的可转移缓存块;
将所述可转移缓存块的存储空间与所述若干第二组合数据的数据大小的总和进行对比,确定是否存在存储所有第二组合数据的可转移缓存块;
若存在,则将所述存储所有第二组合数据的可转移缓存块作为最佳转移缓存块并将所有第二组合数据转移至所述最佳转移缓存块;
若不存在,则根据每一缓存块的存储空间,将若干第二组合数据按照对应的数据大小进行排列组合,得到最少缓存块占用量,并选择对应存储空间的缓存块进行转移。
通过本实施例提供的方案,分析若干第二组合数据的数据大小,并根据每一缓存块的存储空间确定可转移缓存块,能够更加灵活地匹配数据存储需求和缓存块的存储空间。将第二组合数据转移至最佳转移缓存块,能够减少数据访问时的跨缓存块操作,从而提高数据访问效率和查询速度,此外,也能够更加高效地利用缓存资源,从而提高缓存利用率。
第二方面,本申请提供一种基于固态硬盘的数据存储装置,包括:
请求解析模块,用于接收并解析当前时刻的数据存储请求,根据解析结果,确定待存储数据的数据大小及数据类型;
方式确定模块,用于根据所述数据类型,确定写入方式;
存储分析模块,用于根据所述数据大小,确定所述固态硬盘中是否存在满足存储的缓存块;
缓存块确定模块,用于若当前时刻存在满足存储的缓存块,则根据所述数据大小,选择目标缓存块以利用所述写入方式将所述待存储数据存储至所述目标缓存块;
数据分割模块,用于若当前时刻不存在满足存储的缓存块,则基于每一缓存块的剩余存储空间,将所述待存储数据分割以利用所述写入方式将分割后的若干待存储数据存储至对应剩余存储空间的缓存块。
可选的,所述缓存块确定模块具体用于:
根据所述数据大小,将各个缓存块进行筛选,得到若干可用缓存块;
将所述若干可用缓存块的存储空间与所述数据大小进行匹配,确定最佳可用缓存块;
将最佳可用缓存块按照所述数据大小进行分割,得到目标缓存块。
可选的,所述请求解析模块具体用于:
根据传输协议,确定所述数据存储请求的请求目的;
识别所述数据存储请求中的字段,并根据识别结果,确定请求头与请求体;
根据所述请求头中的元数据,确定所述待存储数据的数据类型;
根据所述请求体中的数据,确定所述待存储数据的数据大小;
结合所述请求目的、所述数据类型、所述数据大小,得到所述数据存储请求的解析结果。
可选的,所述数据分割模块具体用于:
根据当前时刻每一缓存块的存储空间及所述待存储数据的数据大小,确定数据分割方案;
根据所述数据分割方案,将所述待存储数据进行预分割,得到若干预分割数据;
将所述预分割数据按照数据大小进行排序,根据排序结果,确定数据量最小的预分割数据;
将所述数据量最小的预分割数据的数据大小与预设碎片阈值进行对比,确定所述数据量最小的预分割数据的数据大小是否小于预设碎片阈值;
若确定所述数据量最小的预分割数据的数据大小小于预设碎片阈值,则选择数据量第二小的第二预分割数据,将所述预分割数据与第二预分割数据组合,得到组合数据;
根据所述组合数据的数据大小及所述数据分割方案,将所述待存储数据分割。
可选的,所述基于固态硬盘的数据存储装置还包括数据清除模块,用于:
获取已存储数据的数据存储情况;
解析所述数据存储情况,确定已存储数据的调取频率;
根据所述调取频率,确定是否存在滞留数据;
若存在滞留数据,则获取所述滞留数据的关联数据,确定所述关联数据是否滞留;
若所述关联数据滞留,则将所述滞留数据清除。
可选的,所述基于固态硬盘的数据存储装置还包括数据转移模块,用于:
根据所述数据存储情况,确定每一缓存块中是否存在小于预设碎片阈值的已存储数据;
若存在小于预设碎片阈值的已存储数据,则将调取小于预设碎片阈值的已存储数据作为碎片数据,并调取所述碎片数据的元数据;
根据所述碎片数据的元数据,将所述碎片数据进行组合,得到若干第二组合数据并转移。
可选的,所述数据转移模块307具体用于:
分析所述若干第二组合数据的数据大小,并根据分析结果及每一缓存块的存储空间,确定所述若干第二组合数据的可转移缓存块;
将所述可转移缓存块的存储空间与所述若干第二组合数据的数据大小的总和进行对比,确定是否存在存储所有第二组合数据的可转移缓存块;
若存在,则将所述存储所有第二组合数据的可转移缓存块作为最佳转移缓存块并将所有第二组合数据转移至所述最佳转移缓存块;
若不存在,则根据每一缓存块的存储空间,将若干第二组合数据按照对应的数据大小进行排列组合,得到最少缓存块占用量,并选择对应存储空间的缓存块进行转移。
第三方面,本申请提供一种固态硬盘控制器,包括:存储器和处理器,所述存储器上存储有能够被处理器加载并执行第一方面的方法的计算机程序。
第四方面,本申请提供一种计算机可读存储介质,存储有能够被处理器加载并执行第一方面的方法的计算机程序。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的一种应用场景示意图;
图2为本申请一实施例提供的一种基于固态硬盘的数据存储方法的流程图;
图3为本申请一实施例提供的一种基于固态硬盘的数据存储装置的结构示意图;
图4为本申请一实施例提供的一种固态硬盘控制器的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本申请实施例作进一步详细描述。
由于闪存芯片的容量较小,所以存在一定的写入次数限制,相比机械硬盘,固态硬盘的写入速度随着使用寿命的增加会逐渐降低。当面临写入速度降低的问题时,多数人会选择更换硬盘,简单且方便,但是这种方式无疑增加了人们的使用成本。因此,如何在较小容量下,进行更加高效的数据存储,延长硬盘使用寿命成为了亟需解决的问题。
基于此,本申请提供一种基于固态硬盘的数据存储方法、装置、固态硬盘控制器。通过解析接收到的数据存储请求,确定待存储数据的数据大小以及数据类型,从而根据数据类型确定写入方式。另外,根据数据大小确定当前是否有满足存储的缓存块,若有则选择目标缓存块进行存储,若没有,则基于每一缓存块的剩余存储空间,将待存储数据进行分割从而实现存储,通过分析待存储数据的数据大小和数据类型,以及固态硬盘中可用的缓存块,选择最佳的缓存块以存储待存储数据,可以有效地利用缓存块的空间,减少存储空间的浪费。另外,根据数据类型确定写入方式,可以确保数据以最优的方式写入固态硬盘,减少写入时间,并降低固态硬盘的写入磨损。如果当前时刻不存在满足存储的缓存块,将待存储数据分割成若干部分,并选择最佳的缓存块以存储这些分割后的数据。这种动态的数据管理方式可以有效地应对大数据量的存储需求,并确保数据的存储效率。由于采用了目标缓存块来存储数据,因此可以确保数据在固态硬盘中的稳定存储,提高数据的完整性。
图1为本申请提供的一种应用场景示意图。当某些设备使用固态硬盘进行数据存储时,可以使用本申请提供的方案进行数据存储的优化,减少存储空间的浪费,确保数据在固态硬盘中的稳定存储,提高数据的完整性。本申请的方案搭载在固态硬盘控制器中,用于对固态硬盘的数据存储进行优化,当用户发起数据存储请求时,固态硬盘控制器根据这一数据存储请求以及对应的方案,确定该数据的存储方式以及存储位置,从而实现存储,减少写入时间,并降低固态硬盘的写入磨损。
具体的实现方式可以参考以下实施例。
图2为本申请一实施例提供的一种基于固态硬盘的数据存储方法的流程图,本实施例的方法可以应用于以上场景中的固态硬盘控制器。如图2所示的,该方法包括:
S201、接收并解析当前时刻的数据存储请求,根据解析结果,确定待存储数据的数据大小及数据类型。
数据存储请求可以认为是用户在需要进行数据写入时发出的一种信号,这一数据存储请求中可以包括待存储数据的数据大小、数据类型、数据来源等内容。在解析数据存储请求时,可以根据每一类内容的特点进行内容的解析,比如数据类型可以分为整数类型、浮点数类型、字符类型和布尔类型,不同的类型展现不同的特点,因此,在进行数据存储请求解析前,可以预先设定一些规则,比如数据类型的特点、数据大小表征的特点等,当预先设置好这些内容后,解析时可以参考这些特点,将数据存储请求进行拆分,然后再确定对应的内容。
在具体实现方式中,数据存储请求发送到固态硬盘控制器时可能是固定格式,比如前N个字符为数据大小,后N个字符为数据来源,中间若干字符为数据类型(其中,N表示自然数),此时,可以根据这一特点直接确定哪一部分属于数据大小的相关内容,从而确定出数据大小。
S202、根据数据类型,确定写入方式。
不同数据类型如果采用对应的写入方式,例如,对于文本数据,可能只需要通过改变晶体管中的电子数目来记录0和1的状态;而对于图像和视频数据,可能需要通过更复杂的方式(例如压缩算法)来减少需要写入的数据量。
在具体实现方式中,可以提前根据可能存在的若干数据类型,规定最佳的写入方式,并将这一规则写入固态硬盘存储器,此时,当确定数据类型后,可以根据数据类型匹配对应已经规定的最佳写入方式,这一规定的最佳写入方式即为待存储数据的写入方式。
S203、根据数据大小,确定固态硬盘中是否存在满足存储的缓存块。
为了提高写入速度,固态硬盘中可以设置若干缓存块,可以暂时存放数据,这些缓存块的数量和大小可以进行调整。
在具体实现方式中,为了节省缓存块的存储空间,可以首先根据数据大小,确定当前存在的缓存块是否有对应大小的存储空间,从而尽可能地节省缓存块的使用数量。
S204、若当前时刻存在满足存储的缓存块,则根据数据大小,选择目标缓存块以利用写入方式将待存储数据存储至目标缓存块。
目标缓存块可以认为是存储空间可以保证待存储数据的存储,同时,可以减少空间的浪费,也可以认为是存储空间刚好满足数据大小或存入待存储数据后,剩余空间最小的缓存块。
具体的,如果当前存在至少一个可以存储待存储数据的缓存块时,根据待存储数据的数据大小,从这些缓存块中一个目标缓存块,并利用上述方式确定出的写入方式,将待存储数据写入该目标缓存块。
S205、若当前时刻不存在满足存储的缓存块,则基于每一缓存块的剩余存储空间,将待存储数据分割以利用写入方式将分割后的若干待存储数据存储至对应剩余存储空间的缓存块。
若当前时刻不存在满足存储的缓存块,说明当前时刻所有缓存块的存储空间均无法将待存储数据完整存入。若通过数据压缩或其他方式将待存储数据进行处理,则可能会使数据不完整,导致后续无法进行使用,因此,为了避免将数据进行处理后虽满足存储,但无法使用的情况,可以在已知每一缓存块的存储空间的基础上,将待存储数据进行分割,确保分割后的待存储数据可以存储在不同的缓存块中。在具体实现方式中,为了尽可能节约缓存块的占用量,可以在确定缓存块的存储空间后,将待存储数据根据存储空间大小进行分割,然后将对应存储空间的缓存块作为分割后的待存储数据的缓存块,利用上述确定出的写入方式,将这些已经分割好的待存储数据存入对应的缓存块中。
通过本申请提供的方案,解析接收到的数据存储请求,确定待存储数据的数据大小以及数据类型,从而根据数据类型确定写入方式。另外,根据数据大小确定当前是否有满足存储的缓存块,若有则选择目标缓存块进行存储,若没有,则基于每一缓存块的剩余存储空间,将待存储数据进行分割从而实现存储,通过分析待存储数据的数据大小和数据类型,以及固态硬盘中可用的缓存块,选择最佳的缓存块以存储待存储数据,可以有效地利用缓存块的空间,减少存储空间的浪费。另外,根据数据类型确定写入方式,可以确保数据以最优的方式写入固态硬盘,减少写入时间,并降低固态硬盘的写入磨损。如果当前时刻不存在满足存储的缓存块,将待存储数据分割成若干部分,并选择最佳的缓存块以存储这些分割后的数据。这种动态的数据管理方式可以有效地应对大数据量的存储需求,并确保数据的存储效率。由于采用了目标缓存块来存储数据,因此可以确保数据在固态硬盘中的稳定存储,提高数据的完整性。
在一些实施例中,根据数据大小,将各个缓存块进行筛选,得到若干可用缓存块;将若干可用缓存块的存储空间与数据大小进行匹配,确定最佳可用缓存块;将最佳可用缓存块按照数据大小进行分割,得到目标缓存块。
可用缓存块可以认为是可以完整存储待存储数据的缓冲块,这一可用缓存块可以是拥有与数据大小相同存储空间的缓冲块,也可以是大于数据大小的存储空间的缓冲块。
在进行缓存块的筛选时,可以将待存储数据的数据大小与每一缓存块各自的存储空间进行对比,若存储空间小于待存储数据的数据大小,则可以直接排除这一缓存块,如果存储空间大于待存储数据的数据大小,则可以将其作为可用缓存块。得到可用缓存块后,为了节约可用缓存块的存储空间,可以将其存储空间再次与待存储数据的数据大小进行匹配,得到一个或多个与待存储数据的数据大小最接近的可用缓存块,这一与待存储数据的数据大小最接近的可用缓存块可以被认为是最佳可用缓存块。在具体实现方式中,也可以在第一次进行对比时,将得到的可用缓存块根据存储空间进行从小到大的排序,其中存储空间最小的可用缓存块,可以认为是最接近待存储数据的数据大小的缓存块。
得到最接近数据大小的可用缓存块后,根据可用缓存块的存储空间大小,确定将待存储数据存进去以后是否还存在空间剩余,如果有,那么后期再存储其他数据时,极有可能产生碎片数据,为了减少这种情况的出现,可以将这一最接近数据大小的可用缓存块进行分割,使其分割为存储空间与待存储数据大小一致的缓存块,此时将待存储数据存进去后,就不会产生多余的空间,可以将待存储数据存储成功且不产生多余空间的这一部分缓存块可以作为最佳缓存块。
通过本实施例提供的方案,通过将数据大小与可用缓存块进行匹配和分割,可以更精确地利用存储空间,减少存储空间的浪费,从而提高存储效率。通过将数据存储在目标缓存块中,可以减少对固态硬盘某些区域的频繁写入次数,从而延长固态硬盘的寿命。
在一些实施例中,根据传输协议,确定数据存储请求的请求目的;识别数据存储请求中的字段,并根据识别结果,确定请求头与请求体;根据请求头中的元数据,确定待存储数据的数据类型;根据请求体中的数据,确定待存储数据的数据大小;结合请求目的、数据类型、数据大小,得到数据存储请求的解析结果。
如果应用程序是一个Web应用程序,那么通常会通过HTTP请求来获取数据存储请求,HTTP请求的第一行称为请求行,它包含三个部分:请求方法、请求路径和HTTP协议版本。请求方法指定了请求的类型。请求路径指定了请求的目标资源的位置。HTTP协议版本指定了使用的HTTP协议的版本。此时,可以根据请求行中的请求方法来确定请求的类型和目的。
另外,通过HTTP协议获得的数据存储请求对应的HTTP请求中还包括请求头和请求体,其中请求头中包含请求方法、要请求的资源的URL地址以及元数据。由于元数据中包含数据的基本属性,如名称、类型、版本号等内容,还包括数据结构和类型等若干数据,因此,根据请求头中的元数据可以确定出这一待存储数据的数据类型。而请求体主要作用是传输客户端向服务器发送的数据的部分,这些数据可以认为是待存储数据,因此,可以直接根据传输的数据,得到待存储数据的数据大小。
此时将请求目的以及数据类型、数据大小结合起来,就可以作为上述数据存储请求的解析结果。
通过本实施例提供的方案,利用传输协议确定数据存储请求的请求目的,能够明确了解该请求的作用和意图,然后利用请求头和请求体中所包含的内容,确定待存储数据的数据类型和数据大小,从而进行相应的处理,实现了对请求的全面理解和处理,有助于提高数据存储的效率和可靠性。
在一些实施例中,根据当前时刻每一缓存块的存储空间及待存储数据的数据大小,确定数据分割方案;根据数据分割方案,将待存储数据进行预分割,得到若干预分割数据;将预分割数据按照数据大小进行排序,根据排序结果,确定数据量最小的预分割数据;将数据量最小的预分割数据的数据大小与预设碎片阈值进行对比,确定数据量最小的预分割数据的数据大小是否小于预设碎片阈值;若确定数据量最小的预分割数据的数据大小小于预设碎片阈值,则选择数据量第二小的第二预分割数据,预分割数据与第二预分割数据组合,得到组合数据;根据组合数据的数据大小及数据分割方案,将待存储数据分割。
其中,数据分割方案可以认为是在缓存块的存储空间不足以完整存储待存储数据时,所采用的将待存储数据进行分割的方案,可以进行预先设置,比如按照缓存块的存储空间从大到小的排列顺序,依次将待存储数据等量进行分割,使得每一缓存块中的存储空间被充分利用。
其中,预设碎片阈值可以认为是一个可以将某些数据大小的数据看成是影响整体运行或者影响整体性能的碎片数据所对应的数据大小。这一预设碎片阈值可以根据历史碎片数据的平均数据大小得到,比如平均数据大小为5KB,此时,若某数据的数据大小为4KB,则可以将其认为是碎片数据。
由于分割可能会带来碎片化的数据,所以分割前可以将待存储数据进行预分割,即可以通过上述数据分割方案,先计算待存储数据分割后的各部分预分割数据的数据大小,此时并非已真正将待存储数据进行分割。在进行预分割后,可以将这些数据进行排序,得到数据大小最小的,将其作为预分割数据,这一预分割数据可能会成为碎片数据,影响整体的运行性能。所以将这一预分割数据的数据大小与预设碎片阈值进行对比,确定这一预分割数据的数据量是否比预设碎片阈值还要小,如果小,则可以认为这一预分割数据会成为碎片数据,此时若依然按照上述预分割对应的方案,则可能会影响系统的性能,所以可以从排序结果中选择数据量仅次于预分割数据的那一部分,将其作为第二预分割数据,同时,将其进行组合,避免碎片化。
此时,进行待存储数据的分割时,可以将除组合数据以外的数据按照上述数据分割方案进行分割并分配给对应存储空间的缓存块,然后再从其余缓存块中选择是否有可以存储组合数据的,如果有,则直接进行分配并存储,若没有则将组合数据再次按照数据分割方案单独进行分割。
通过本实施例提供的方案,将预分割数据的数据大小与预设碎片阈值进行对比,可以判断是否需要进行方案的调整,从而减少碎片数据的产生,提高存储空间的利用率。另外,对待存储数据进行预分割并按照数据大小进行排序,能够快速确定最小的预分割数据,将其与第二小的预分割数据组合,可以使得数据的存储更加紧凑,减少存储空间的浪费。
在一些实施例中,获取已存储数据的数据存储情况;解析数据存储情况,确定已存储数据的调取频率;根据调取频率,确定是否存在滞留数据;若存在滞留数据,则获取滞留数据的关联数据,确定关联数据是否滞留;若关联数据滞留,则将滞留数据清除。
已存储数据可以认为是已经存储到缓存块并由缓存块成功写入到闪存芯片中的数据。
其中,滞留数据可以认为是在存储到闪存芯片或者缓存块后一直没有再进行调取或者使用的某些数据,一般在进入缓存块后一段时间都会存入闪存芯片,所以这里所说的滞留数据可以认为是在闪存芯片中长时间未被调取使用的数据。在具体实现方式中,可以对滞留数据的判定设置判定条件,比如设置一个预设时段,若超过该预设时段仍然没有使用则可以认为是滞留数据。
关联数据可以认为是该滞留数据调取时,同样需要调用的一些数据,将这些数据同时调用才可以实现某些功能。
其中,数据存储情况可以包括某些待存储数据在存入闪存芯片或者缓存块之后的读取和使用,根据上述描述可知将数据存储情况认为是待存储数据从缓存块中进入闪存芯片后的读取和使用情况。
具体的,已经存储到闪存芯片中的已存储数据在进行调用或进行其他操作使用时,一般会生成对应的使用日志,这些使用日志可以作为该已存储数据的数据存储情况,将这些使用日志进行解析,得到这一已存储数据的调取情况,从而确定已存储数据的调取频率,比如每周一次、每月一次、每月两次,按照上述滞留数据的判定条件举例,如果判定条件中的预设时段为一个季度,即三个月,此时某个已存储数据的调取频率为半年一次,远低于预设时段对应的频率,这一已存储数据就可以被判定为滞留数据。
当存在滞留数据时,可能与其相关的数据也会出现长期未被使用的情况,此时可以根据该滞留数据的功能,调取对应的关联数据,并使用上述相同的判定方式,判断关联数据是否滞留,若关联数据滞留,则说明滞留数据与关联数据之间产生的功能几乎不被用户使用,而关联数据可能与其他已存储数据形成其他功能,因此,这种情况下可以只清除滞留数据,保留关联数据。
通过本实施例提供的方案,对已存储数据的数据存储情况进行解析,能够了解已存储数据的调取频率,从而判断是否存在滞留数据,有助于进一步优化数据存储策略,提高存储空间的利用率。对滞留数据进行处理,清除滞留数据,能够释放存储空间,减少数据存储碎片的产生,提高数据的访问效率和查询速度。通过获取滞留数据的关联数据,确定关联数据是否滞留,可以减少冗余数据的产生。
在一些实施例中,根据数据存储情况,确定每一缓存块中是否存在小于预设碎片阈值的已存储数据;若存在小于预设碎片阈值的已存储数据,则将调取小于预设碎片阈值的已存储数据作为碎片数据,并调取碎片数据的元数据;根据碎片数据的元数据,将碎片数据进行组合,得到若干第二组合数据并转移。
小于预设碎片阈值的已存储数据根据上述实施例的描述,可以认为是一些已经存在的碎片数据,这些碎片数据的存在可能会影响固态硬盘整体的读写速度,因此,可以根据这些已经存在的碎片数据的名称或者类型,调取存储的元数据,根据对应的元数据,确定这些碎片数据中是否存在属于同一位置的碎片数据,或者是否存在来自同一数据存储请求的碎片数据,这些数据可以被认定为在进行数据存储时,由于存储空间不足,将数据分割导致的碎片化,此时可以将属于同一位置或者来自同一数据存储请求的碎片数据进行组合,使其成为第二组合数据,减少碎片化数据在固态硬盘中的占比。
通过本实施例提供的方案,转移第二组合数据,能够减少冗余数据的产生,进一步优化数据存储,提高存储空间的利用率,此外,也可以确保数据在存储和访问过程中的准确性和完整性。
在一些实施例中,分析若干第二组合数据的数据大小,并根据分析结果及每一缓存块的存储空间,确定若干第二组合数据的可转移缓存块;将可转移缓存块的存储空间与若干第二组合数据的数据大小的总和进行对比,确定是否存在存储所有第二组合数据的可转移缓存块;若存在,则将存储所有第二组合数据的可转移缓存块作为最佳转移缓存块并将所有第二组合数据转移至最佳转移缓存块;若不存在,则根据每一缓存块的存储空间,将若干第二组合数据按照对应的数据大小进行排列组合,得到最少缓存块占用量,并选择对应存储空间的缓存块进行转移。
根据上述实施例可以明确,属于同一位置或者来自同一数据存储请求的碎片数据并不是仅有一个,组合以后可能会产生若干个组合数据,因此上述实施例所述的第二组合数据可以认为是一种代指,而并非表示其中某一个组合数据。
在得到若干个第二组合数据后,根据组合的若干碎片数据的数据大小,得到对应的第二组合数据的数据大小。然后根据当前时刻每一缓存块的存储空间,确定这些第二组合数据的可转移缓存块,即可以将这些第二组合数据完全存储的缓存块,可以为多个也可以是一个,此时,将这些可转移缓存块的存储空间与这些第二组合数据的数据大小总和进行对比,从而确定是否存在一个可转移缓存块可以将所有第二组合数据存储。如果有,则可以将这一可转移缓存块作为最佳转移缓存块,若没有,此时就需要将这些第二组合数据分开存储,为了减少缓存块的占用,可以将每一第二组合数据按照对应的数据大小进行排序,然后在每一可转移缓存块的基础上,将这些第二组合数据进行排列组合,确保可转移缓存块的存储空间能够被完全使用,不余留存储空间,从而得到最少缓存块占用量,并选择对应存储空间的缓存块进行转移。
通过本实施例提供的方案,分析若干第二组合数据的数据大小,并根据每一缓存块的存储空间确定可转移缓存块,能够更加灵活地匹配数据存储需求和缓存块的存储空间。将第二组合数据转移至最佳转移缓存块,能够减少数据访问时的跨缓存块操作,从而提高数据访问效率和查询速度,此外,也能够更加高效地利用缓存资源,从而提高缓存利用率。
图3为本申请一实施例提供的一种基于固态硬盘的数据存储装置的结构示意图,如图3所示的,本实施例的基于固态硬盘的数据存储装置300包括:请求解析模块301、方式确定模块302、存储分析模块303、缓存块确定模块304、数据分割模块305。
请求解析模块301,用于接收并解析当前时刻的数据存储请求,根据解析结果,确定待存储数据的数据大小及数据类型;
方式确定模块302,用于根据所述数据类型,确定写入方式;
存储分析模块303,用于根据所述数据大小,确定所述固态硬盘中是否存在满足存储的缓存块;
缓存块确定模块304,用于若当前时刻存在满足存储的缓存块,则根据所述数据大小,选择目标缓存块以利用所述写入方式将所述待存储数据存储至所述目标缓存块;
数据分割模块305,用于若当前时刻不存在满足存储的缓存块,则基于每一缓存块的剩余存储空间,将所述待存储数据分割以利用所述写入方式将分割后的若干待存储数据存储至对应剩余存储空间的缓存块。
可选的,所述缓存块确定模块304具体用于:
根据所述数据大小,将各个缓存块进行筛选,得到若干可用缓存块;
将所述若干可用缓存块的存储空间与所述数据大小进行匹配,确定最佳可用缓存块;
将最佳可用缓存块按照所述数据大小进行分割,得到目标缓存块。
可选的,所述请求解析模块301具体用于:
根据传输协议,确定所述数据存储请求的请求目的;
识别所述数据存储请求中的字段,并根据识别结果,确定请求头与请求体;
根据所述请求头中的元数据,确定所述待存储数据的数据类型;
根据所述请求体中的数据,确定所述待存储数据的数据大小;
结合所述请求目的、所述数据类型、所述数据大小,得到所述数据存储请求的解析结果。
可选的,所述数据分割模块305具体用于:
根据当前时刻每一缓存块的存储空间及所述待存储数据的数据大小,确定数据分割方案;
根据所述数据分割方案,将所述待存储数据进行预分割,得到若干预分割数据;
将所述预分割数据按照数据大小进行排序,根据排序结果,确定数据量最小的预分割数据;
将所述数据量最小的预分割数据的数据大小与预设碎片阈值进行对比,确定所述数据量最小的预分割数据的数据大小是否小于预设碎片阈值;
若确定所述数据量最小的预分割数据的数据大小小于预设碎片阈值,则选择数据量第二小的第二预分割数据,将所述预分割数据与第二预分割数据组合,得到组合数据;
根据所述组合数据的数据大小及所述数据分割方案,将所述待存储数据分割。
可选的,所述基于固态硬盘的数据存储装置300还包括数据清除模块306,用于:
获取已存储数据的数据存储情况;
解析所述数据存储情况,确定已存储数据的调取频率;
根据所述调取频率,确定是否存在滞留数据;
若存在滞留数据,则获取所述滞留数据的关联数据,确定所述关联数据是否滞留;
若所述关联数据滞留,则将所述滞留数据清除。
可选的,所述基于固态硬盘的数据存储装置300还包括数据转移模块307,用于:
根据所述数据存储情况,确定每一缓存块中是否存在小于预设碎片阈值的已存储数据;
若存在小于预设碎片阈值的已存储数据,则将调取小于预设碎片阈值的已存储数据作为碎片数据,并调取所述碎片数据的元数据;
根据所述碎片数据的元数据,将所述碎片数据进行组合,得到若干第二组合数据并转移。
可选的,所述数据转移模块307具体用于:
分析所述若干第二组合数据的数据大小,并根据分析结果及每一缓存块的存储空间,确定所述若干第二组合数据的可转移缓存块;
将所述可转移缓存块的存储空间与所述若干第二组合数据的数据大小的总和进行对比,确定是否存在存储所有第二组合数据的可转移缓存块;
若存在,则将所述存储所有第二组合数据的可转移缓存块作为最佳转移缓存块并将所有第二组合数据转移至所述最佳转移缓存块;
若不存在,则根据每一缓存块的存储空间,将若干第二组合数据按照对应的数据大小进行排列组合,得到最少缓存块占用量,并选择对应存储空间的缓存块进行转移。
本实施例的装置,可以用于执行上述任一实施例的方法,其实现原理和技术效果类似,此处不再赘述。
图4为本申请一实施例提供的一种固态硬盘控制器的结构示意图,如图4所示,本实施例的固态硬盘控制器400可以包括:存储器401和处理器402。
存储器401上存储有能够被处理器402加载并执行上述实施例中方法的计算机程序。
其中,处理器402和存储器401相连,如通过总线相连。
可选地,固态硬盘控制器400还可以包括收发器。需要说明的是,实际应用中收发器不限于一个,该固态硬盘控制器400的结构并不构成对本申请实施例的限定。
处理器402可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器402也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线可包括一通路,在上述组件之间传送信息。总线可以是PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器401可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器401用于存储执行本申请方案的应用程序代码,并由处理器402来控制执行。处理器402用于执行存储器401中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,固态硬盘控制器包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。还可以为服务器等。图4示出的固态硬盘控制器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
本实施例的固态硬盘控制器,可以用于执行上述任一实施例的方法,其实现原理和技术效果类似,此处不再赘述。
本申请还提供一种计算机可读存储介质,存储有能够被处理器加载并执行如上实施例中的方法的计算机程序。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (9)

1.一种基于固态硬盘的数据存储方法,其特征在于,应用于固态硬盘中,所述固态硬盘中设置有若干缓存块,用于暂时存放数据,所述缓存块的数量和大小可以进行调整;所述方法包括:
接收并解析当前时刻的数据存储请求,根据解析结果,确定待存储数据的数据大小及数据类型;
根据所述数据类型,确定写入方式;
根据所述数据大小,确定所述固态硬盘中是否存在满足存储的缓存块;
若当前时刻存在满足存储的缓存块,则根据所述数据大小,选择目标缓存块以利用所述写入方式将所述待存储数据存储至所述目标缓存块;
若当前时刻不存在满足存储的缓存块,则基于每一缓存块的剩余存储空间,将所述待存储数据分割以利用所述写入方式将分割后的若干待存储数据存储至对应剩余存储空间的缓存块;
所述若当前时刻不存在满足存储的缓存块,则基于每一缓存块的剩余存储空间,将所述待存储数据分割,包括:
根据当前时刻每一缓存块的存储空间及所述待存储数据的数据大小,确定数据分割方案;所述分割方案包括按照缓存块的存储空间从大到小的排列顺序,依次将待存储数据等量进行分割;
根据所述数据分割方案,将所述待存储数据进行预分割,得到若干预分割数据;
将所述预分割数据按照数据大小进行排序,根据排序结果,确定数据量最小的预分割数据;
将所述数据量最小的预分割数据的数据大小与预设碎片阈值进行对比,确定所述数据量最小的预分割数据的数据大小是否小于预设碎片阈值;
若确定所述数据量最小的预分割数据的数据大小小于预设碎片阈值,则选择数据量第二小的第二预分割数据,将所述预分割数据与第二预分割数据组合,得到组合数据;
根据所述组合数据的数据大小及所述数据分割方案,将所述待存储数据分割。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据大小,选择目标缓存块,包括:
根据所述数据大小,将各个缓存块进行筛选,得到若干可用缓存块;
将所述若干可用缓存块的存储空间与所述数据大小进行匹配,确定最佳可用缓存块;
将最佳可用缓存块按照所述数据大小进行分割,得到目标缓存块。
3.根据权利要求1所述的方法,其特征在于,所述接收并解析当前时刻的数据存储请求,包括:
根据传输协议,确定所述数据存储请求的请求目的;
识别所述数据存储请求中的字段,并根据识别结果,确定请求头与请求体;
根据所述请求头中的元数据,确定所述待存储数据的数据类型;
根据所述请求体中的数据,确定所述待存储数据的数据大小;
结合所述请求目的、所述数据类型、所述数据大小,得到所述数据存储请求的解析结果。
4.根据权利要求1所述的方法,其特征在于,所述根据所述数据大小,确定所述固态硬盘中是否存在满足存储的缓存块前,还包括:
获取已存储数据的数据存储情况;
解析所述数据存储情况,确定已存储数据的调取频率;
根据所述调取频率,确定是否存在滞留数据;
若存在滞留数据,则获取所述滞留数据的关联数据,确定所述关联数据是否滞留;
若所述关联数据滞留,则将所述滞留数据清除。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述数据大小,确定所述固态硬盘中是否存在满足存储的缓存块前,还包括:
根据所述数据存储情况,确定每一缓存块中是否存在小于预设碎片阈值的已存储数据;
若存在小于预设碎片阈值的已存储数据,则将调取小于预设碎片阈值的已存储数据作为碎片数据,并调取所述碎片数据的元数据;
根据所述碎片数据的元数据,将所述碎片数据进行组合,得到若干第二组合数据并转移。
6.根据权利要求5所述的方法,其特征在于,所述根据所述碎片数据的元数据,将所述碎片数据进行组合并转移,包括:
分析所述若干第二组合数据的数据大小,并根据分析结果及每一缓存块的存储空间,确定所述若干第二组合数据的可转移缓存块;
将所述可转移缓存块的存储空间与所述若干第二组合数据的数据大小的总和进行对比,确定是否存在存储所有第二组合数据的可转移缓存块;
若存在,则将所述存储所有第二组合数据的可转移缓存块作为最佳转移缓存块并将所有第二组合数据转移至所述最佳转移缓存块;
若不存在,则根据每一缓存块的存储空间,将若干第二组合数据按照对应的数据大小进行排列组合,得到最少缓存块占用量,并选择对应存储空间的缓存块进行转移。
7.一种基于固态硬盘的数据存储装置,其特征在于,应用于固态硬盘中,所述固态硬盘中设置有若干缓存块,用于暂时存放数据,所述缓存块的数量和大小可以进行调整;所述装置包括:
请求解析模块,用于接收并解析当前时刻的数据存储请求,根据解析结果,确定待存储数据的数据大小及数据类型;
方式确定模块,用于根据所述数据类型,确定写入方式;
存储分析模块,用于根据所述数据大小,确定所述固态硬盘中是否存在满足存储的缓存块;
缓存块确定模块,用于若当前时刻存在满足存储的缓存块,则根据所述数据大小,选择目标缓存块以利用所述写入方式将所述待存储数据存储至所述目标缓存块;
数据分割模块,用于若当前时刻不存在满足存储的缓存块,则基于每一缓存块的剩余存储空间,将所述待存储数据分割以利用所述写入方式将分割后的若干待存储数据存储至对应剩余存储空间的缓存块;
所述数据分割模块具体用于:根据当前时刻每一缓存块的存储空间及所述待存储数据的数据大小,确定数据分割方案;所述分割方案包括按照缓存块的存储空间从大到小的排列顺序,依次将待存储数据等量进行分割;根据所述数据分割方案,将所述待存储数据进行预分割,得到若干预分割数据;将所述预分割数据按照数据大小进行排序,根据排序结果,确定数据量最小的预分割数据;将所述数据量最小的预分割数据的数据大小与预设碎片阈值进行对比,确定所述数据量最小的预分割数据的数据大小是否小于预设碎片阈值;若确定所述数据量最小的预分割数据的数据大小小于预设碎片阈值,则选择数据量第二小的第二预分割数据,将所述预分割数据与第二预分割数据组合,得到组合数据;根据所述组合数据的数据大小及所述数据分割方案,将所述待存储数据分割。
8.一种固态硬盘控制器,其特征在于,包括:存储器和处理器;
所述存储器,用于存储程序指令;
所述处理器,用于调用并执行所述存储器中的程序指令,执行如权利要求1-6任一项所述的基于固态硬盘的数据存储方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序;所述计算机程序被处理器执行时,实现如权利要求1-6任一项所述的基于固态硬盘的数据存储方法。
CN202311698847.7A 2023-12-12 2023-12-12 基于固态硬盘的数据存储方法、装置、固态硬盘控制器 Active CN117407324B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311698847.7A CN117407324B (zh) 2023-12-12 2023-12-12 基于固态硬盘的数据存储方法、装置、固态硬盘控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311698847.7A CN117407324B (zh) 2023-12-12 2023-12-12 基于固态硬盘的数据存储方法、装置、固态硬盘控制器

Publications (2)

Publication Number Publication Date
CN117407324A CN117407324A (zh) 2024-01-16
CN117407324B true CN117407324B (zh) 2024-03-15

Family

ID=89500161

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311698847.7A Active CN117407324B (zh) 2023-12-12 2023-12-12 基于固态硬盘的数据存储方法、装置、固态硬盘控制器

Country Status (1)

Country Link
CN (1) CN117407324B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117854553B (zh) * 2024-03-06 2024-06-25 北京云豹创芯智能科技有限公司 一种数据整形电路、方法和芯片

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106681668A (zh) * 2017-01-12 2017-05-17 郑州云海信息技术有限公司 一种基于固态盘缓存的混合式存储系统及存储方法
CN110134332A (zh) * 2019-04-28 2019-08-16 平安科技(深圳)有限公司 一种数据存储方法及相关装置
CN112882655A (zh) * 2021-02-03 2021-06-01 广发证券股份有限公司 数据缓存方法、装置、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140724A1 (en) * 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for servicing object requests within a storage controller

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106681668A (zh) * 2017-01-12 2017-05-17 郑州云海信息技术有限公司 一种基于固态盘缓存的混合式存储系统及存储方法
CN110134332A (zh) * 2019-04-28 2019-08-16 平安科技(深圳)有限公司 一种数据存储方法及相关装置
CN112882655A (zh) * 2021-02-03 2021-06-01 广发证券股份有限公司 数据缓存方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN117407324A (zh) 2024-01-16

Similar Documents

Publication Publication Date Title
WO2022062537A1 (zh) 数据压缩方法、装置及计算机可读存储介质
KR102007070B1 (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
CN117407324B (zh) 基于固态硬盘的数据存储方法、装置、固态硬盘控制器
US20130124796A1 (en) Storage method and apparatus which are based on data content identification
US7921131B2 (en) Method using a hierarchy of servers for query processing of column chunks in a distributed column chunk data store
CN101763437B (zh) 高速缓冲存储实现方法及装置
US20070143261A1 (en) System of a hierarchy of servers for query processing of column chunks in a distributed column chunk data store
CN109101524B (zh) 存储驱动器及其上的压缩系统及压缩其上的数据的方法
US20130024599A1 (en) Method and Apparatus for SSD Storage Access
CN108733306B (zh) 一种文件合并方法及装置
US11093143B2 (en) Methods and systems for managing key-value solid state drives (KV SSDS)
US9977598B2 (en) Electronic device and a method for managing memory space thereof
US20140280397A1 (en) Heterogenic volume generation and use system
CN115617878B (zh) 一种数据查询方法、系统、装置、设备及计算机存储介质
US11625187B2 (en) Method and system for intercepting a discarded page for a memory swap
CN116795875A (zh) 数据处理系统、方法及存储介质
US8131918B2 (en) Method and terminal for demand paging at least one of code and data requiring real-time response
CN115905136A (zh) 一种数据处理的方法和装置
US9659041B2 (en) Model for capturing audit trail data with reduced probability of loss of critical data
CN111414339A (zh) 一种文件的处理方法、系统、装置、设备及介质
CN113010113B (zh) 数据处理方法、装置及设备
US20230188619A1 (en) Methods and systems for event management
CN110262758B (zh) 一种数据存储管理方法、系统及相关设备
EP3296878A1 (en) Electronic device and page merging method therefor
CN117666968B (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
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Data storage method, device, and solid-state drive controller based on solid-state drives

Granted publication date: 20240315

Pledgee: Shenzhen Branch of Guangdong Huaxing Bank Co.,Ltd.

Pledgor: Shenzhen Yinshan Technology Co.,Ltd.

Registration number: Y2024980039241