CN111984602B - 数据流的管理方法和装置 - Google Patents
数据流的管理方法和装置 Download PDFInfo
- Publication number
- CN111984602B CN111984602B CN202011009137.5A CN202011009137A CN111984602B CN 111984602 B CN111984602 B CN 111984602B CN 202011009137 A CN202011009137 A CN 202011009137A CN 111984602 B CN111984602 B CN 111984602B
- Authority
- CN
- China
- Prior art keywords
- file
- data stream
- data
- data streams
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims description 39
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000015654 memory Effects 0.000 claims description 40
- 238000003860 storage Methods 0.000 claims description 31
- 238000012986 modification Methods 0.000 claims description 22
- 230000004048 modification Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 6
- 238000012217 deletion Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 3
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010219 correlation analysis Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003064 k means clustering Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Probability & Statistics with Applications (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种数据流的管理方法和装置,数据流的管理方法包括:获取当前打开的文件的属性信息;根据数据流的当前状态信息和文件的属性信息,对文件分配数据流。基于数据是以文件的方式管理的特点,以文件的属性信息为依据自动地将每个文件分配到对应的数据流中,文件的属性信息是可以直接在操作系统内核的虚拟文件系统中获取到的,即不需要修改操作系统内核的代码,也不需要修改应用的代码。
Description
技术领域
本发明属于数据存储的技术领域,更具体地讲,涉及一种数据流的管理方法和装置。
背景技术
为了提升存储器的性能,一般需要将写入的数据进行有效的分流。以存储器的垃圾回收(Garbage Collection,GC)性能为例,如果能够将写入的数据有效分流,将具有相似生命周期的数据存储到存储器的相同的块中,则GC搬移的有效页就会大量减少,从而可以降低写放大(write amplification factor,WAF),并大幅提升存储器的使用寿命并改善存储器性能。
现有的对数据进行分流的方法,通常需要对操作系统内核和/或应用的代码进行较多的修改。例如,一些数据分流的方法是基于逻辑区块地址的访问特性对数据进行分流,采集逻辑区块地址的访问特性信息的过程需要对操作系统内核的驱动层代码进行较多修改;一些数据分流的方法是基于程序上下文信息对数据进行分流,采集程序上下文信息的过程需要对操作系统内核的代码以及部分应用的代码进行较多修改;还有一些数据分流的方法需要对操作系统内核的文件系统层代码进行较多修改且需要人工参与。
发明内容
本发明的示例性实施例的目的在于提供一种数据流的管理方法和装置。
在一个总体方面,提供了一种数据流的管理方法,方法包括:获取当前打开的文件的属性信息;根据数据流的当前状态信息和文件的属性信息,对文件分配数据流。
根据本发明示例性实施例的数据流的管理方法,基于数据是以文件的方式管理的特点,以文件的属性信息为依据自动地将每个文件分配到对应的数据流中,文件的属性信息是可以直接在操作系统内核的虚拟文件系统中获取到的,即不需要修改操作系统内核的代码,也不需要修改应用的代码。而且,该数据流的管理方法还能够有效地实现对不同生命周期的数据的分离。
可选地,文件的属性信息包括所述文件的类型;根据数据流的当前状态信息和文件的属性信息,对文件分配数据流,包括:在文件被打开时,根据数据流的当前状态信息以及文件的类型,将文件分配到当前状态满足第一预设条件的数据流。
根据本发明示例性实施例的数据流的管理方法,可以在文件被打开时,立即完成文件完成一次数据流分配,可以及时保证数据流分配的优化效果。
可选地,当前状态信息包括如下至少一项:数据流当前已分配到的文件的类型;数据流当前已分配到的文件的数量;数据流当前已分配到的文件的打开持续时间信息;数据流当前已分配到的文件的修改次数。
根据本发明示例性实施例的数据流的管理方法,将数据流当前已分配到的文件的类型作为分配数据流的依据,可以提高将相同类型的文件分配在用一个数据流的概率。将数据流当前已分配到的文件的打开持续时间、数据流当前已分配到的文件的数量以及数据流当前已分配到的文件的修改次数之中的至少一项作为分配数据流的依据,可以均衡各个数据流的数据量,使得各个数据流的数据量较大程度地保持一致。
可选地,数据流当前已分配到的文件的打开持续时间信息包括如下至少一项:数据流当前已分配到的所有文件的平均打开持续时间;数据流当前已分配到的所有文件的总打开持续时间。
可选地,第一预设条件包括以下至少一项:数据流当前已分配到的文件的类型,与待分配数据流的文件的类型相同;数据流当前已分配到的文件的数量最少;数据流当前已分配到的所有文件的平均打开持续时间最短;数据流当前已分配到的所有文件的总打开持续时间最短;数据流当前已分配到的文件的修改次数最少。
可选地,根据数据流的当前状态信息和文件的属性信息,对文件分配数据流,包括:在文件处于打开状态且每经过预设时间间隔,根据数据流的当前状态信息以及截止到当前时刻获取到的文件的属性信息,将文件分配到当前状态满足第二预设条件的数据流。
根据本发明示例性实施例的数据流的管理方法,在文件打开之后,经过至少一个预设时间间隔所获取到的文件的属性信息更加完整,在这些更完整的属性信息中可以提取出能够反映文件的访问模式和/或数据生存期的子属性集,依据子属性集对文件分配数据流,有利于将具有相近特性(如生命周期)的文件分配到同一个数据流中。
由于将具有相近特性(如生命周期)的文件分配到同一个数据流中,存储器接收到数据流的标识后,可以将特性差异较大的文件存储在不同的存储器或同一个存储器的不同区域中,存储器的垃圾回收搬移的有效页就会大量减少,从而降低WAF,提升存储器的性能并延长存储器的使用寿命。
可选地,根据数据流的当前状态信息以及截止到当前时刻获取到的文件的属性信息,将文件分配到当前状态满足第二预设条件的数据流,包括:在获取到的文件的属性信息中提取出文件的子属性集,其中,子属性集能够反映文件的访问模式和/或数据生存期;根据数据流的当前状态信息以及文件的子属性集,将文件分配到当前状态满足第二预设条件的数据流。
可选地,当前状态信息包括数据流与文件类别的对应关系,满足第二预设条件的数据流是指数据流与文件的类别相匹配;根据数据流的当前状态信息以及文件的子属性集,将文件分配到当前状态满足第二预设条件的数据流,包括:根据文件的子属性集对文件进行分类,确定出文件当前所属的类别;将文件分配到当前所属的类别对应的数据流。
根据本发明示例性实施例的数据流的管理方法,将同一类别中的文件分配到同一个数据流中,较大程度地避免文件占据过多的数据流,确保被占据的数据流的数量不超过存储器所能支持的数据流的数量。
可选地,多个数据流包括第一组数据流和第二组数据流;方法还包括:根据数据流的当前状态信息以及文件的类型对文件分配数据流时,将文件分配到第一组数据流中的一个数据流;根据数据流的当前状态信息以及截止到当前时刻获取到的文件的属性信息对文件分配数据流时,将文件分配到第二组数据流中的一个数据流。
根据本发明示例性实施例的数据流的管理方法,提供了两种分配数据流的方式,两种分配数据流的方式分别对应两组数据流,使得每组数据流中当前被分到的文件符合对应的分配数据流的方式的规则,避免了两种分配数据流的方式按各自的规则对分件分配数据流时产生互相干扰。
可选地,方法还包括:根据第一组数据流在预设时间内分配到的文件的数量和第二组数据流在预设时间内分配到的文件的数量,实时地调整第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量。
可选地,根据第一组数据流在预设时间内分配到的文件的数量和第二组数据流在预设时间内分配到的文件的数量,实时地调整第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量,包括:计算第一组数据流在预设时间内分配到的文件的数量和第二组数据流在预设时间内分配到的文件的数量的比值;
根据比值实时地调整第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量。
在一个总体方面,提供了一种数据流的管理装置,装置包括文件监控模块和流管理模块;文件监控模块被配置为获取当前打开的文件的属性信息;流管理模块被配置为根据数据流的当前状态信息和文件的属性信息,对文件分配数据流。
可选地,文件的属性信息包括所述文件的类型;流管理模块包括预分配单元,预分配单元被配置为:在文件被打开时,根据数据流的当前状态信息以及文件的类型,将文件分配到当前状态满足第一预设条件的数据流。
可选地,当前状态信息包括如下至少一项:数据流当前已分配到的文件的类型;数据流当前已分配到的文件的数量;数据流当前已分配到的文件的打开持续时间信息;数据流当前已分配到的文件的修改次数。
可选地,数据流当前已分配到的文件的打开持续时间信息包括如下至少一项:数据流当前已分配到的所有文件的平均打开持续时间;数据流当前已分配到的所有文件的总打开持续时间。
可选地,第一预设条件包括以下至少一项:数据流当前已分配到的文件的类型,与待分配数据流的文件的类型相同;数据流当前已分配到的文件的数量最少;数据流当前已分配到的所有文件的平均打开持续时间最短;数据流当前已分配到的所有文件的总打开持续时间最短;数据流当前已分配到的文件的修改次数最少。
可选地,流管理模块包括分类单元,分类单元被配置为:在文件处于打开状态且每经过预设时间间隔,根据数据流的当前状态信息以及截止到当前时刻获取到的文件的属性信息,将文件分配到当前状态满足第二预设条件的数据流。
可选地,装置还包括文件属性分析模块,文件属性分析模块被配置为:在获取到的文件的属性信息中提取出文件的子属性集,其中,子属性集能够反映文件的访问模式和/或数据生存期;分类单元被配置为:根据数据流的当前状态信息以及文件的子属性集,将文件分配到当前状态满足第二预设条件的数据流。
分类单元被配置为:在获取到的文件的属性信息中提取出文件的子属性集,其中,子属性集能够反映文件的访问模式和/或数据生存期;根据数据流的当前状态信息以及文件的子属性集,将文件分配到当前状态满足第二预设条件的数据流。
可选地,当前状态信息包括数据流与文件类别的对应关系,满足第二预设条件的数据流是指数据流与文件的类别相匹配;分类单元被配置为:根据文件的子属性集对文件进行分类,确定出文件当前所属的类别;将文件分配到当前所属的类别对应的数据流。
可选地,多个数据流包括第一组数据流和第二组数据流;预分配单元被配置为:根据数据流的当前状态信息以及文件的类型对文件分配数据流时,将文件分配到第一组数据流中的一个数据流;分类单元被配置为:根据数据流的当前状态信息以及截止到当前时刻获取到的文件的属性信息对文件分配数据流时,将文件分配到第二组数据流中的一个数据流。
可选地,装置还包括数据流组调整模块,数据流组调整模块被配置为:根据第一组数据流在预设时间内分配到的文件的数量和第二组数据流在预设时间内分配到的文件的数量,实时地调整第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量。
可选地,数据流组调整模块被配置为:计算第一组数据流在预设时间内分配到的文件的数量和第二组数据流在预设时间内分配到的文件的数量的比值;根据比值实时地调整第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量。
在另一个总体方面,提供了一种计算装置,计算装置包括处理器和存储器,存储器存储有计算机程序,当计算机程序被处理器执行时,实现上述的数据流的管理方法。
在另一个总体方面,提供了一种存储计算机程序的计算机可读存储介质,当计算机程序被至少一个计算装置运行时,促使至少一个计算装置执行上述的数据流的管理方法。
附图说明
通过下面结合示例性地示出实施例的附图进行的详细描述,本发明示例性实施例的上述和其它目的、特点和优点将会变得更加清楚,其中:
图1示出了本发明示例性实施例的数据流的管理方法的流程图;
图2示出了本发明示例性实施例的一种将文件分配到当前状态满足第一预设条件的数据流的示意图;
图3示出了本发明示例性实施例的对文件进行分类的示意图;
图4示出了本发明示例性实施例的数据流的管理装置的框图;
图5示出了本发明示例性实施例的电子设备的操作系统的部分架构图;
图6示出了本发明示例性实施例的计算装置的框图。
具体实施方式
提供参照附图的以下描述以帮助对由权利要求及其等同物限定的本发明的实施例的全面理解。包括各种特定细节以帮助理解,但这些细节仅被视为是示例性的。因此,本领域的普通技术人员将认识到在不脱离本发明的范围和精神的情况下,可对描述于此的实施例进行各种改变和修改。此外,为了清楚和简洁,省略对公知的功能和结构的描述。
图1示出了本发明示例性实施例的数据流的管理方法的流程图。
参照图1,在步骤S110,获取当前打开的文件的属性信息。
当前打开的文件,是可以由部署在电子设备(如计算机)的操作系统中的应用所运行的文件。以数据库文件为例,数据库文件可以由部署在操作系统中的MySQL、PostgreSQL、Cassandra、RocksDB、MongoDB或Docker等运行。当然,当前打开的文件也可以是其它类型的电子文件,本发明对文件的类型不做具体限制。
文件的属性信息可以包括当前打开文件的创建、打开、修改、关闭、删除等操作相关的信息。以某一数据库文件为例,该数据库文件的属性可以包括:
IN_ACCESS/*File was accessed*/,表示文件被访问;
IN_MODIFY/*File was modified*/,表示文件被修改;
IN_ATTRIB/*Metadata changed*/,表示元数据被修改;
IN_CLOSE_WRITE/*Writtable file was closed*/,表示可写文件被关闭;
IN_CLOSE_NOWRITE/*Unwrittable file closed*/,表示不可写文件被关闭;
IN_OPEN/*File was opened*/,表示文件被打开;
IN_MOVED_FROM/*File was moved from X*/,表示文件被移来;
IN_MOVED_TO/*File was moved to Y*/,表示文件被移走;
IN_CREATE/*Subfile was created*/,表示创建新文件;
IN_DELETE/*Subfile was deleted*/,表示文件被删除;
IN_DELETE_SELF/*Self was deleted*/,表示自删除,即一个可执行文件在执行时删除自己;
IN_MOVE_SELF/*Self was moved*/,表示自移动,即一个可执行文件在执行时移动自己。
可选地,获取到的属性信息具体可以包括当前打开的文件的属性发生的次数、字长或时间等。例如,文件被访问的次数、文件被修改的字长、文件被创建的时间等。
每个文件在操作系统内核的虚拟文件系统中对应一个索引节点(Inode),索引节点存储了该文件的属性信息。在步骤S110,可以调用操作系统内核对应的工具来监控虚拟文件系统中的索引节点,获得当前打开的文件属性信息。以Linux系统为例,可以调用Linux内核提供的inotify等工具从索引节点中获取文件的属性信息。可以理解,也可以通过其他方式从索引节点中获取文件的属性信息,本发明对获取文件的属性信息的具体方式不做限制。
可选地,获取到的当前打开的文件的属性信息可以被存储在文件属性表中。由于索引节点号与文件是一一对应的,在文件属性表中,可以将每个索引节点号作为对应文件的编号,将每个文件的属性信息记录在文件对应的索引节点号下。
作为示例,文件属性表的格式可以如表1所示,在表1中,第一行记录了多个文件对应的索引节点号(如Inode 1、Inode 2和Inode 3等),第一列记录了文件的多个属性类型(如access和modify等)。每个索引节点号下的一列表格分别记录了对应属性的属性信息(发生次数、字长或时间等)。例如Inode 1下的第一个单元格中记录的“200”,表示Inode 1所对应的文件被访问了200次。
在此需要说明的是,当完成对文件的数据流分配后,还可以将文件被分配到的数据流的标识记录到文件属性表中。
event type | Inode 1 | Inode 2 | Inode 3 | Inode 4 | Inode 5 | Inode 6 | Inode 7 | Inode 8 |
access | 200 | 100 | 112 | 130 | 130 | 112 | 88 | 96 |
modify | 130 | 130 | 130 | 130 | 130 | 130 | 130 | 130 |
metadata change | 50 | 0 | 13 | 21 | 5 | 53 | 11 | 32 |
close write | 6 | 21 | 160 | 13 | 64 | 13 | 23 | 6 |
close nowriete | 4 | 47 | 14 | 2 | 3 | 8 | 11 | 28 |
open | 20 | 13 | 33 | 25 | 65 | 22 | 14 | 5 |
moved from | 45 | 20 | 71 | 34 | 27 | 2 | 9 | 3 |
moved to | 53 | 5 | 13 | 2 | 8 | 7 | 21 | 34 |
create | 49 | 20 | 120 | 35 | 56 | 21 | 3 | 6 |
delete | 35 | 13 | 100 | 100 | 20 | 33 | 78 | 63 |
delete self | 8 | 25 | 9 | 5 | 14 | 9 | 7 | 1 |
move self | 5 | 44 | 13 | 47 | 68 | 45 | 53 | 2 |
file type | log | log | ibd | sst | log | ibd | sst | ibd |
file size | 13 | 25 | 120 | 5 | 45 | 9 | 7 | 1 |
stream ID | 1 | 4 | 3 | 7 | 8 | 5 | 8 | 5 |
表1
在表1中,access行表示文件被访问的次数;modify行表示文件被修改的次数;metadata change行表示元数据被修改的次数;close write行表示可写文件被关闭的时间;closed nowrite行表示不可写文件被关闭的时间;open行表示文件被打开的时间;moved from行表示文件被移来的时间;moved to行表示文件被移走的时间;create行表示创建新文件的时间;deleted行表示文件被删除的时间;deleted self行表示自删除的时间,即一个可执行文件在执行时删除自己的时间;move self行表示自移动的时间,即一个可执行文件在执行时移动自己的时间;file type行表示文件的类型;file size行表示文件的大小;stream ID行表示文件被分配到的数据流的标识。
可选地,在步骤S110中,可以在文件打开的同时,开始持续获取文件的属性信息。获取文件的属性信息的持续时长可以根据实际的设计需要而定,例如,该持续时长可以是文件打开后的10秒内、50秒内或1个小时内等,该持续时长也可以是从文件打开到文件关闭所经历的时间。可以理解,在这段持续时间内文件的属性信息可能会发生变化,当文件的属性信息改变时,可以获取到这些变化的属性信息,而且这些变化的属性信息也可以被更新到文件属性表中。
在步骤S120,根据数据流的当前状态信息和文件的属性信息,对文件分配数据流。
根据数据流的当前状态信息和文件的属性信息,来确定出数据流和文件的对应关系,从而将文件分配到对应的数据流。
在通常的工作负载下,数据都是以文件的方式管理的,基于数据的这一特点,本发明示例性实施例提出的数据流的管理方法以文件的属性信息为依据自动地将每个文件分配到对应的数据流中,文件的属性信息是可以直接在内核的虚拟文件系统中获取到的,即不需要修改操作系统内核的代码,也不需要修改应用的代码,减少了对操作系统内核和应用的影响。而且,该数据流的管理方法还能够有效地实现对不同生命周期的数据的分离。
可以理解,从文件打开到关闭的整个周期中,文件属性信息可能会发生变化,本发明示例性实施例可以依据文件初始的属性信息、变化后的属性信息等信息,对文件执行一次或多次数据流分配,从而保证数据流分配的结果更加合理。下面介绍一种对文件分配数据流的方式。
可选地,文件的属性信息包括所述文件的类型,步骤S110可包括:在文件被打开时立即获取该的文件的属性信息。步骤S120可以包括:在文件被打开时,根据数据流的当前状态信息以及文件的类型,将文件分配到当前状态满足第一预设条件的数据流。
可以理解,文件刚被打开时还未发生写入,文件能够被提取的属性信息有限,获取到的文件的属性信息较少一般来说,文件刚被打开时可以获取到文件的类型和打开时间。
本发明示例性实施例提出的数据流的管理方法,可以在文件被打开时,立即完成文件完成一次数据流分配,可以及时保证数据流分配的优化效果。
可选地,数据流的当前状态信息包括如下至少一项:数据流当前已分配到的文件的类型;数据流当前已分配到的文件的数量;数据流当前已分配到的文件的打开持续时间信息;数据流当前已分配到的文件的修改次数。
在此需要说明的是,文件的打开持续时间是指,从文件被打开的时刻到当前时刻所经过的时长。
将数据流当前已分配到的文件的类型作为分配数据流的依据,可以提高将相同类型的文件分配在用一个数据流的概率。将数据流当前已分配到的文件的打开持续时间、数据流当前已分配到的文件的数量以及数据流当前已分配到的文件的修改次数之中的至少一项作为分配数据流的依据,可以均衡各个数据流的数据量,使得各个数据流的数据量较大程度地保持一致。
可选地,数据流当前已分配到的文件的打开持续时间信息包括如下至少一项:数据流当前已分配到的所有文件的平均打开持续时间;数据流当前已分配到的所有文件的总打开持续时间。
需要说明的是,数据流当前已分配到的所有文件的平均打开持续时间是指,数据流在当前时刻已分配到的所有文件的打开持续时间的平均值。数据流当前已分配到的所有文件的总打开持续时间是指,数据流在当前时刻已分配到的所有文件的打开持续时间的和值。
图2示出了本发明示例性实施例的一种将文件分配到当前状态满足第一预设条件的数据流的示意图。
参照图2,数据流1在当前时刻已分配到5个文件,假设这5个文件的打开持续时间分别为8S、2S、5S、6S、4S,则数据流1当前已分配到的所有文件的总打开持续时间为25S,平均打开持续时间为5S。
可选地,数据流的当前状态信息包括数据流当前已分配到的文件的类型、数据流当前已分配到的文件的数量、数据流当前已分配到的所有文件的平均打开持续时间、数据流当前已分配到的所有文件的总打开持续时间之中的至少一项。
可选地,第一预设条件可包括以下至少一项:
条件1:数据流当前已分配到的文件的类型,与待分配数据流的文件的类型相同;
条件2:数据流当前已分配到的文件的数量最少;
条件3:数据流当前已分配到的所有文件的平均打开持续时间最短;
条件4:数据流当前已分配到的所有文件的总打开持续时间最短;
条件5:数据流当前已分配到的文件的修改次数最少。
可选地,当选择以上至少两项条件时,可预设每个条件的优先级。
作为示例,选择条件1和条件2来确定数据流的当前状态满足第一预设条件,其中,条件1的优先级高于条件2的优先级。
以图2为例,首先使用条件2对数据流1到数据流6中进行选择,即在数据流1至数据流6选择出当前已分配到的文件的数量最少的数据流,根据条件2选择出了数据流4和数据流6。
之后使用条件3在数据流4和数据流6中进行选择,即在数据流4和数据流6选择出当前已分配到的所有文件的平均打开持续时间最短的数据流,根据条件3选择出了数据流4,确定数据流4是当前状态满足第一预设条件的数据流,将新打开的文件分配到数据流4。
可选地,可以根据数据流的当前状态是否满足各项条件,计算出数据流的评分,将评分最高的数据流作为当前状态满足第一预设条件的数据流,将新打开的文件分配到评分最高的数据流。
例如,预先设置每个条件的分值。当数据流的当前状态满足某个条件时,则将该条件的分值赋予该数据流;当数据流的当前状态不满足某个条件时,则确定该数据流在该条件下的分值为零。可以将数据流在各个条件下所得到的分值之和,作为该数据流的评分。
可选地,每个条件的分值可以均具其重要程度而定,条件的重要程度越高,分值越高。例如,条件1的分值为40,条件2的分值为25,条件3的分值为20,条件4的分值为15。
在本发明示例性实施例中,在文件被打开时对文件执行一次分配数据流之后,还可以继续使用另一种方式对文件重新执行分配数据流。当然,也可在文件被打开时不需要对文件分配数据流,而是在文件被打开了一段时间后,使用所述另一种方式对文件分配数据流分配。下面介绍另一种对文件分配数据流的方式。
可选地,步骤S110可包括:在文件处于打开状态时,可以按照预设时间间隔获取该的文件的属性信息。步骤S120可以包括:在文件处于打开状态且每经过预设时间间隔,根据数据流的当前状态信息以及截止到当前时刻获取到的文件的属性信息,将文件分配到当前状态满足第二预设条件的数据流。
可以理解,如果文件在一段时间一直保持打开状态,会发生创建、打开、修改、关闭、删除等操作,则步骤S110获取到的文件的属性信息可能发生变化,每经过预设时间间隔可以获取到包括文件的类型和文件的打开时间在内的更多的属性信息。步骤S120可以根据截止到当前时刻获取到的文件的属性信息,对文件分配数据流。
可选地,计算预设时间间隔的起始时刻可以根据需要而定,起始时刻可以是文件被打开的时刻,也可以是文件被打开后的某一时刻,例如,起始时刻是文件完成第一次数据流分配的时刻或者文件完成第一次数据流分配之后的某一时刻。在此需要说明的是,文件的第一次数据流分配,是指前文所述的在文件被打开时对文件分配数据流的过程。
在计算预设时间间隔的起始时刻是文件完成第一次数据流分配的时刻或者文件完成第一次数据流分配之后的时刻的情况下,在步骤S120,该文件可以被进行至少两次数据流分配。对该文件进行第1次数据流分配是指前文所述的“在文件被打开时,根据数据流的当前状态信息以及文件的类型,将文件分配到当前状态满足第一预设条件的数据流”,对该文件进行第2次及之后数据流分配是指前文所述的“在文件处于打开状态且每经过预设时间间隔,根据数据流的当前状态信息以及截止到当前时刻获取到的文件的属性信息,将文件分配到当前状态满足第二预设条件的数据流”。
可以理解,从起始时刻起,文件的打开持续时间至少大于预设时间间隔时,才能根据截止到当前时刻获取到的文件的属性信息,对文件分配数据流。
例如,从所述起始时刻起,文件的打开持续时间大于1个预设时间间隔且小于2个预设时间间隔时,则可以对文件执行1次数据流分配;具体地,经过1个预设时间间隔到达第一个当前时刻,此时根据数据流的当前状态信息以及截止到第一个当前时刻获取到的文件的属性信息(即,截止到第一个当前时刻为止文件的属性信息被持续不断地获取),对文件分配数据流。
文件的打开持续时间大于2个预设时间间隔且小于3个预设时间间隔时,则可以对文件执行2次数据流分配。具体地,从对文件执行初次数据流分配的时刻起,经过2个预设时间间隔到达第二个当前时刻,此时根据数据流的当前状态信息以及截止到第二个当前时刻获取到的文件的属性信息(即,截止到第二个当前时刻为止文件的属性信息被持续不断地获取),对文件分配数据流。
可选地,根据数据流的当前状态信息以及截止到当前时刻获取到的文件的属性信息,将文件分配到当前状态满足第二预设条件的数据流,包括:在获取到的文件的属性信息中提取出文件的子属性集,根据数据流的当前状态信息以及文件的子属性集,将文件分配到当前状态满足第二预设条件的数据流。其中,子属性集能够反映文件的访问模式和/或数据生存期。
作为示例,子属性集可以包括文件的打开、修改、关闭、删除和类型等属性的信息。
可选地,基于相关性分析技术在获取到的文件的属性信息中提取出文件的子属性集。
作为示例,相关性分析技术可以包括基于皮尔逊相关系数(Pearsoncorrelation)和肯德尔登记相关系数(Kendall rank correlation)等的技术。
可以理解,相比于在文件打开时获取到的文件的属性信息,经过至少一个预设时间间隔所获取到的文件的属性信息更加完整,在这些更完整的属性信息中可以提取出能够反映文件的访问模式和/或数据生存期的子属性集,依据子属性集对文件分配数据流,有利于将具有相近特性(如生命周期)的文件分配到同一个数据流中。
由于将具有相近特性(如生命周期)的文件分配到同一个数据流中,存储器接收到数据流的标识后,可以将特性差异较大的文件存储在不同的存储器或同一个存储器的不同区域中,存储器的垃圾回收搬移的有效页就会大量减少,从而降低WAF,提升存储器的性能并延长存储器的使用寿命。
可选地,数据流的当前状态信息包括数据流与文件类别的对应关系,满足第二预设条件的数据流是指数据流与文件的类别相匹配。根据数据流的当前状态信息以及文件的子属性集,将文件分配到当前状态满足第二预设条件的数据流,包括:根据文件的子属性集对文件进行分类,确定出文件当前所属的类别;将文件分配到当前所属的类别对应的数据流。
由于存储器支持的数据流的数量是有限的,可以依据存储器所能支持的数据流的数量来确定文件类别的数量,可以理解,文件类别的数量不超过存储器所能支持的数据流的数量。将同一类别中的文件分配到同一个数据流中,较大程度地避免文件占据过多的数据流,确保被占据的数据流的数量不超过存储器所能支持的数据流的数量。
可选地,可以基于文件的子属性集,利用相关的聚类算法或强化学习的方式对对文件进行分类。作为示例,聚类算法可以包括k均值聚类算法(K-means)和层次聚类算法等。
图3示出了本发明示例性实施例的对文件进行分类的示意图。
作为示例,参照图3,其中图3中圆圈中的数字可以表示文件的编号(例如索引节点号)。将8个文件分成了4个类别。其中,编号为1、3和8的文件属于类别1,编号为6的文件属于类别2,编号为4和7的文件属于类别3,编号为2和5的文件属于类别4。不同的类别可以对应不同的数据流,属于相同类别的文件具有相似或相同的特性(如生命周期),同一类别中的文件可以被分配到同一个数据流中。
可选地,多个数据流包括第一组数据流和第二组数据流。也就是说可以预先将多个数据流进行分组,例如将多个数据流分为第一组数据流和第二组数据流。根据数据流的当前状态信息以及文件的类型对文件分配数据流时,将文件分配到第一组数据流中的一个数据流;根据数据流的当前状态信息以及截止到当前时刻获取到的文件的属性信息对所述文件分配数据流时,将文件分配到第二组数据流中的一个数据流。
例如,可以将N个数据流分为两组,将数据流1至数据流S作为第一组数据流,将数据流S+1至数据流N作为第二组数据流。
为了便于表述,将“根据数据流的当前状态信息以及文件的类型对文件分配数据流”称为第一种分配数据流的方式,将“根据数据流的当前状态信息以及截止到当前时刻获取到的文件的属性信息对所述文件分配数据流”称为第二种分配数据流的方式。由上述内容可知,上述两种分配数据流的方式的规则是不同的,当使用第一种分配数据流的方式对文件分配数据流时,根据第一种分配数据流的方式的规则将文件分配到第一组数据流中的一个数据流;当使用第二种分配数据流的方式对文件分配数据流时,根据第二种分配数据流的方式的规则将文件分配到第二组数据流中的一个数据流。需要说明的是,若文件能够被进行至少两次数据流分配,则对该文件进行第1次数据流时使用第一种分配数据流的方式将文件分配到第一组数据流中的一个数据流,对该文件进行第2次及之后数据流分配时使用第二种分配数据流的方式将文件重新分配到第二组数据流中的一个数据流。两种分配数据流的方式分别对应两组数据流,使得每组数据流中当前被分到的文件符合对应的分配数据流的方式的规则,避免了两种分配数据流的方式按各自的规则对分件分配数据流时产生互相干扰。可选地,可以实时地调整第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量。
作为示例,根据第一组数据流在预设时间内分配到的文件的数量和第二组数据流在预设时间内分配到的文件的数量,实时地调整第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量。
可以理解,随着时间的推移,第一组数据流在预设时间内分配到的文件的数量和第二组数据流在预设时间内分配到的文件的数量可能会发生变化,因此第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量根据上述的数量变化进行实时地调整。
可选地,可以计算第一组数据流在预设时间内分配到的文件的数量和第二组数据流在预设时间内分配到的文件的数量的比值,根据所述比值调整第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量。例如,计算第一组数据流在前一分钟内分配到的文件的数量和第二组数据流在前一分钟内分配到的文件的数量的比值,根据该比值调整第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量。例如,当比值变大时,增加第一组数据流所包含的数据流的数量、减少第二组数据流所包含的数据流的数量;当比值变小时,减少第一组数据流所包含的数据流的数量、增加第二组数据流所包含的数据流的数量。
当然,也可以通过其他方式来调整第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量,此处不再列举。
当文件分配到数据流后,将文件被分配到的数据流的标识发送至操作系统内核,操作系统内核向存储器发送写请求(Write)时携带数据流的标识,使得数据流的标识被发送至存储器。
存储器接收到数据流的标识后,可以基于每个数据流的标识存储或输出对应文件的数据,将被分配到不同数据流的文件的数据存储在不同的存储器或同一个存储器的不同区域中,存储器的垃圾回收搬移的有效页就会大量减少,从而降低WAF(WriteAmplification Factor,写放大),提升存储器的性能并延长存储器的使用寿命。
可选地,存储器可以是SSD(Solid State Drives,固态硬盘),可以是ROM(Read-Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,可以是RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选地,可以先将文件被分配到的数据流的标识提交给操作系统内核中的虚拟文件系统,该数据流的标识再依次经过操作系统内核中的其他层传递,最后与写请求一起被发送至存储器。
以操作系统为linux系统为例,参照图5,可以先将文件被分配到的数据流的标识提交给操作系统内核中的虚拟文件系统,该数据流的标识依次传递至操作系统内核中的访问和操作文件系统(File Systerm)、块层(Block Layer)和驱动层(Driver Layer),最后将数据流标识与写请求(Write)一起发送给存储器。
可选地,操作系统为linux系统,将文件被分配到的数据流的标识发送至操作系统内核包括:
当linux系统为第一类版本时,通过linux系统的第一接口将文件被分配到的数据流的标识发送至linux系统内核,其中,第一接口是通过预先修改linux系统内核而得到的;和/或
当linux系统为第二类版本时,通过linux系统的第二接口将文件被分配到的数据流的标识发送至linux系统内核。其中,第二接口具备接收数据流的标识的功能,例如,第二接口可以为fcntl接口。
可选地,可将linux系统的4.13以下版本作为第一类版本,可将linux系统的4.13及以上版本作为第二类版本。
作为示例,当linux系统为第二类版本时,可以利用linux系统的write hint特性,调用fcntl接口将数据流的标识下发给linux系统内核。
本发明示例性实施例将文件被分配到的数据流的标识发送至操作系统内核时,不需要修改操作系统内核的代码,或者仅对操作系统内核的代码进行较少的改动即可,降低了对操作系统内核的改动量。
图4示出了本发明示例性实施例的数据流的管理装置200的框图。其中,数据流的管理装置200的功能单元可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图4所描述的功能单元可以组合起来或者划分成子单元,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能单元的任何可能的组合、或者划分、或者更进一步的限定。
下面就数据流的管理装置200可以具有的功能单元以及各功能单元可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文相关描述,这里不再赘述。
参照图4,本发明示例性实施例的数据流的管理装置200包括文件监控模块210和流管理模块230。
文件监控模块210被配置为获取当前打开的文件的属性信息;流管理模块230被配置为根据数据流的当前状态信息和文件的属性信息,对文件分配数据流。
可选地,所述文件的属性信息包括所述文件的类型。流管理模块230包括预分配单元2301,预分配单元2301被配置为:在文件被打开时,根据数据流的当前状态信息以及文件的类型,将文件分配到当前状态满足第一预设条件的数据流。
可选地,当前状态信息包括如下至少一项:数据流当前已分配到的文件的类型;数据流当前已分配到的文件的数量;数据流当前已分配到的文件的打开持续时间信息;数据流当前已分配到的文件的修改次数。
可选地,数据流当前已分配到的文件的打开持续时间信息包括如下至少一项:数据流当前已分配到的所有文件的平均打开持续时间;数据流当前已分配到的所有文件的总打开持续时间。
可选地,第一预设条件包括以下至少一项:数据流当前已分配到的文件的类型,与待分配数据流的文件的类型相同;数据流当前已分配到的文件的数量最少;数据流当前已分配到的所有文件的平均打开持续时间最短;数据流当前已分配到的所有文件的总打开持续时间最短;数据流当前已分配到的文件的修改次数最少。
可选地,流管理模块230包括分类单元2302,分类单元2302被配置为:在文件处于打开状态且每经过预设时间间隔,根据数据流的当前状态信息以及截止到当前时刻获取到的文件的属性信息,将文件分配到当前状态满足第二预设条件的数据流。
可选地,装置200还包括文件属性分析模块220,文件属性分析模块220被配置为:在获取到的文件的属性信息中提取出文件的子属性集,其中,子属性集能够反映文件的访问模式和/或数据生存期。
分类单元2302被配置为:根据数据流的当前状态信息以及文件的子属性集,将文件分配到当前状态满足第二预设条件的数据流。
文件属性分析模块220可以维护文件属性表,如前文所述,获取到的当前打开的文件的属性信息可以被存储在文件属性表中,文件属性分析模块220可以在文件属性表中提取出文件的子属性集。
可选地,当前状态信息包括数据流与文件类别的对应关系,满足第二预设条件的数据流是指数据流与文件的类别相匹配;分类单元2302被配置为:根据文件的子属性集对文件进行分类,确定出文件当前所属的类别;将文件分配到当前所属的类别对应的数据流。
可选地,多个数据流包括第一组数据流和第二组数据流;预分配单元2301被配置为:根据数据流的当前状态信息以及文件的类型对文件分配数据流时,将文件分配到第一组数据流中的一个数据流;分类单元2302被配置为:根据数据流的当前状态信息以及截止到当前时刻获取到的文件的属性信息对文件分配数据流时,将文件分配到第二组数据流中的一个数据流。
可选地,装置200还包括数据流组调整模块240,数据流组调整模块240被配置为:根据第一组数据流在预设时间内分配到的文件的数量和第二组数据流在预设时间内分配到的文件的数量,实时地调整第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量。
可选地,数据流组调整模块240被配置为:计算第一组数据流在预设时间内分配到的文件的数量和第二组数据流在预设时间内分配到的文件的数量的比值;根据比值实时地调整第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量。
可选地,操作系统为linux系统,流管理模块230被配置为:当linux系统为第一类版本时,通过linux系统的第一接口将文件被分配到的数据流的标识发送至linux系统内核,其中,第一接口是通过预先修改linux系统内核而得到的;和/或当linux系统为第二类版本时,通过linux系统的第二接口将文件被分配到的数据流的标识发送至linux系统内核。
图5示出了本发明示例性实施例的电子设备的操作系统的部分架构图。在此需要说明的是,图5中的存储设备为实体设备不属于操作系统,存储设备中包括至少一个存储器,存储器可以是SSD。参照图5,操作系统中部署了用于运行文件的应用,应用可以包括MySQL、PostgreSQL和Cassandra,还可以包括RocksDB、MongoDB或Docker等。
参照图5,数据流的管理装置200的一种工作流程包括:
(a)文件监控模块210调用Linux内核提供的inotify工具监控所有当前打开的文件,并从每个文件对应的索引节点中持续获取文件的属性信息(例如文件路径,类型,打开时间,修改次数等)。
(b)文件属性分析模块220将文件监控模块210获取的文件属性汇总存储在文件属性表中,并基于皮尔逊相关系数,在文件属性表中提取出能够反映文件的访问模式和数据生存期的子属性集。
(c)预分配单元2301占据数据流1至数据流S,负责对新打开的文件执行初次数据流分配。当一个文件打开后,预分配单元2301会根据文件属性(例如类型和打开时间)和当前流的使用情况为其初次分配数据流的标识(例如将文件分配到已分配文件最少且已分配文件平均打开时间最长的流中),从而将预分配单元2301管理的文件尽可能地分配到不同的数据流中。
(d)分类单元2302占据数据流S+1至数据流N,负责对长久打开的文件重新执行数据流分配。当文件写入一段时间后,文件属性分析模块220可以提取出能够反映文件访问模式及其数据生存期的子属性集(例如文件的修改次数等)。对于当前尚未关闭的文件,分类单元2302使用k-means聚类算法,每隔T秒基于提取出的文件的属性子集对这些文件来聚类,每一类文件分到对应的数据流中。
可以理解,长久打开的文件可以是在前文中所述的起始时刻起,经过预设时间间隔后未关闭的文件。
(e)数据流组调整模块240根据预分配单元2301所管理文件的数量和分类单元2302所管理文件的数量的比值来动态调整S的值。
预分配单元2301所管理文件的数量可以是第一组数据流在预设时间内分配到的文件的数量;分类单元2302所管理文件的数量可以是第二组数据流在预设时间内分配到的文件的数量。
可以理解,动态调整S的值,实际上就是前文所述的实时地调整第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量。
(f)预分配单元2301和/或分类单元2302将文件所分配的数据流的标识通过操作系统内核提供的接口(例如fcntl接口)传递至SSD。
参照图5,可以先将文件被分配到的数据流的标识通过操作系统内核提供的接口通过fcntl接口提交给操作系统内核中的虚拟文件系统,该数据流的标识依次传递至操作系统内核中的访问和操作文件系统(File Systerm)、块层(Block Layer)和驱动层(DriverLayer),最后将数据流标识与写请求(Write)一起发送给存储器。
存储器接收到数据流的标识,可以基于每个数据流的标识存储或输出对应文件的数据,将被分配到不同数据流的文件的数据存储在不同的存储器或同一个存储器的不同区域中,存储器的垃圾回收搬移的有效页就会大量减少,从而降低存储器的WAF,提升存储器的性能并延长存储器的使用寿命。
图6示出了本发明示例性实施例的计算装置的框图。
参照图6,根据本发明的示例性实施例还提供一种计算装置300,计算装置300包括处理器310和存储器320。存储器320存储有计算机程序,当计算机程序被处理器310执行时,实现上述数据流的管理方法。
处理器310可以是CPU(Central Processing Unit,中央处理器)、通用处理器,DSP(Digital Signal Processor,数据信号处理器)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器310也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
存储器320可以是ROM(Read-Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,可以是RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead-Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
根据本发明的示例性实施例还提供一种存储计算机程序的计算机可读存储介质,其中,当计算机程序被至少一个计算装置运行时,促使至少一个计算装置执行上述数据流的管理方法。
该计算机可读记录介质是可存储由计算机系统读出的数据的任意数据存储装置。计算机可读记录介质的示例包括:只读存储器、随机存取存储器、只读光盘、磁带、软盘、光数据存储装置和载波(诸如经有线或无线传输路径通过互联网的数据传输)。
以上描述了本申请的各示例性实施例,应理解,上述描述仅是示例性的,并非穷尽性的,本申请不限于所披露的各示例性实施例。在不偏离本申请的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本申请的保护范围应该以权利要求的范围为准。
Claims (16)
1.一种数据流的管理方法,包括:
获取当前打开的文件的属性信息;
在获取到的所述文件的属性信息中提取出所述文件的子属性集,其中,所述子属性集能够反映所述文件的访问模式和/或数据生存期;
在所述文件处于打开状态且每经过预设时间间隔,根据数据流的当前状态信息以及所述文件的子属性集,将所述文件分配到当前状态满足第二预设条件的数据流;
其中,多个数据流包括第一组数据流和第二组数据流;
根据所述数据流的当前状态信息以及所述文件的类型对所述文件分配数据流时,将所述文件分配到所述第一组数据流中的一个数据流;
根据数据流的当前状态信息以及截止到当前时刻获取到的所述文件的属性信息对所述文件分配数据流时,将所述文件分配到所述第二组数据流中的一个数据流;
其中,所述当前状态信息包括如下至少一项:
数据流当前已分配到的文件的类型;
数据流当前已分配到的文件的数量;
数据流当前已分配到的文件的打开持续时间信息;
数据流当前已分配到的文件的修改次数。
2.如权利要求1所述的方法,其中,所述文件的属性信息包括所述文件的类型;
所述根据数据流的当前状态信息和所述文件的属性信息,对所述文件分配数据流,包括:在所述文件被打开时,根据所述数据流的当前状态信息以及所述文件的类型,将所述文件分配到当前状态满足第一预设条件的数据流。
3.如权利要求1所述的方法,其中,所述数据流当前已分配到的文件的打开持续时间信息包括如下至少一项:
所述数据流当前已分配到的所有文件的平均打开持续时间;
所述数据流当前已分配到的所有文件的总打开持续时间。
4.如权利要求2所述的方法,其中,所述第一预设条件包括以下至少一项:
数据流当前已分配到的文件的类型,与待分配数据流的文件的类型相同;
数据流当前已分配到的文件的数量最少;
数据流当前已分配到的所有文件的平均打开持续时间最短;
数据流当前已分配到的所有文件的总打开持续时间最短;
数据流当前已分配到的文件的修改次数最少。
5.如权利要求1所述的方法,其中,
所述当前状态信息包括数据流与文件类别的对应关系,满足第二预设条件的数据流是指数据流与文件的类别相匹配;
所述根据数据流的当前状态信息以及所述文件的子属性集,将所述文件分配到当前状态满足第二预设条件的数据流,包括:根据所述文件的子属性集对所述文件进行分类,确定出所述文件当前所属的类别;将所述文件分配到所述当前所属的类别对应的数据流。
6.如权利要求1所述的方法,其中,还包括:根据所述第一组数据流在预设时间内分配到的文件的数量和所述第二组数据流在预设时间内分配到的文件的数量,实时地调整所述第一组数据流所包含的数据流的数量和所述第二组数据流所包含的数据流的数量。
7.如权利要求1所述的方法,其中,所述根据所述第一组数据流在预设时间内分配到的文件的数量和所述第二组数据流在预设时间内分配到的文件的数量,实时地调整所述第一组数据流所包含的数据流的数量和所述第二组数据流所包含的数据流的数量,包括:
计算所述第一组数据流在预设时间内分配到的文件的数量和所述第二组数据流在预设时间内分配到的文件的数量的比值;
根据所述比值实时地调整所述第一组数据流所包含的数据流的数量和所述第二组数据流所包含的数据流的数量。
8.一种数据流的管理装置,包括:
文件监控模块,被配置为获取当前打开的文件的属性信息;
流管理模块,所述流管理模块包括分类单元,所述装置还包括文件属性分析模块,所述文件属性分析模块被配置为:在获取到的所述文件的属性信息中提取出所述文件的子属性集,其中,所述子属性集能够反映所述文件的访问模式和/或数据生存期;
所述分类单元被配置为:在所述文件处于打开状态且每经过预设时间间隔,根据数据流的当前状态信息以及所述文件的子属性集,将所述文件分配到当前状态满足第二预设条件的数据流;
其中,多个数据流包括第一组数据流和第二组数据流;
预分配单元被配置为:根据所述数据流的当前状态信息以及所述文件的类型对所述文件分配数据流时,将所述文件分配到所述第一组数据流中的一个数据流;
所述分类单元被配置为:根据数据流的当前状态信息以及截止到当前时刻获取到的所述文件的属性信息对所述文件分配数据流时,将所述文件分配到所述第二组数据流中的一个数据流;
其中,所述当前状态信息包括如下至少一项:
数据流当前已分配到的文件的类型;
数据流当前已分配到的文件的数量;
数据流当前已分配到的文件的打开持续时间信息;
数据流当前已分配到的文件的修改次数。
9.如权利要求8所述的装置,其中,所述文件的属性信息包括所述文件的类型;所述流管理模块包括预分配单元,所述预分配单元被配置为:
在所述文件被打开时,根据所述数据流的当前状态信息以及所述文件的类型,将所述文件分配到当前状态满足第一预设条件的数据流。
10.如权利要求8所述的装置,其中,所述数据流当前已分配到的文件的打开持续时间信息包括如下至少一项:
所述数据流当前已分配到的所有文件的平均打开持续时间;
所述数据流当前已分配到的所有文件的总打开持续时间。
11.如权利要求9所述的装置,其中,所述第一预设条件包括以下至少一项:
数据流当前已分配到的文件的类型,与待分配数据流的文件的类型相同;
数据流当前已分配到的文件的数量最少;
数据流当前已分配到的所有文件的平均打开持续时间最短;
数据流当前已分配到的所有文件的总打开持续时间最短;
数据流当前已分配到的文件的修改次数最少。
12.如权利要求8所述的装置,其中,所述当前状态信息包括数据流与文件类别的对应关系,满足第二预设条件的数据流是指数据流与文件的类别相匹配;
所述分类单元被配置为:根据所述文件的子属性集对所述文件进行分类,确定出所述文件当前所属的类别;将所述文件分配到所述当前所属的类别对应的数据流。
13.如权利要求8所述的装置,其中,所述装置还包括数据流组调整模块,所述数据流组调整模块被配置为:
根据所述第一组数据流在预设时间内分配到的文件的数量和所述第二组数据流在预设时间内分配到的文件的数量,实时地调整所述第一组数据流所包含的数据流的数量和所述第二组数据流所包含的数据流的数量。
14.如权利要求13所述的装置,其中,所述数据流组调整模块被配置为:
计算所述第一组数据流在预设时间内分配到的文件的数量和所述第二组数据流在预设时间内分配到的文件的数量的比值;
根据所述比值实时地调整第一组数据流所包含的数据流的数量和第二组数据流所包含的数据流的数量。
15.一种计算装置,其特征在于,所述计算装置包括:
处理器;
存储器,存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1-7中的任意一项所述的数据流的管理方法。
16.一种存储计算机程序的计算机可读存储介质,其中,当所述计算机程序被至少一个计算装置运行时,促使所述至少一个计算装置执行如权利要求1至7中的任一权利要求所述的数据流的管理方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011009137.5A CN111984602B (zh) | 2020-09-23 | 2020-09-23 | 数据流的管理方法和装置 |
KR1020210003524A KR20220040348A (ko) | 2020-09-23 | 2021-01-11 | 데이터 스트림 관리 방법 및 장치 |
US17/152,861 US11818197B2 (en) | 2020-09-23 | 2021-01-20 | Data stream management method and device |
US18/474,876 US20240015206A1 (en) | 2020-09-23 | 2023-09-26 | Data stream management method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011009137.5A CN111984602B (zh) | 2020-09-23 | 2020-09-23 | 数据流的管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111984602A CN111984602A (zh) | 2020-11-24 |
CN111984602B true CN111984602B (zh) | 2024-10-29 |
Family
ID=73450894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011009137.5A Active CN111984602B (zh) | 2020-09-23 | 2020-09-23 | 数据流的管理方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11818197B2 (zh) |
KR (1) | KR20220040348A (zh) |
CN (1) | CN111984602B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268201B (zh) * | 2021-05-13 | 2024-10-25 | 三星(中国)半导体有限公司 | 基于文件属性的缓存管理方法和装置 |
CN113472890B (zh) * | 2021-07-09 | 2024-08-23 | 无锡美林数联科技有限公司 | 一种工业互联网平台监测系统及方法 |
DE102022122836A1 (de) * | 2022-09-08 | 2024-03-14 | Carl Zeiss Microscopy Gmbh | Verfahren und System zum Übersetzen eines Datenstroms |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733319A (zh) * | 2017-04-17 | 2018-11-02 | 桑迪士克科技有限责任公司 | 用于非易失性存储器中的混合推拉数据管理的系统和方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6981116B2 (en) | 2002-03-06 | 2005-12-27 | Microsoft Corporation | System and method for information control block tracking streams for universal disk format file systems |
US7509673B2 (en) | 2003-06-06 | 2009-03-24 | Microsoft Corporation | Multi-layered firewall architecture |
JP4626221B2 (ja) * | 2004-06-24 | 2011-02-02 | ソニー株式会社 | 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム |
US8606949B2 (en) | 2005-04-20 | 2013-12-10 | Jupiter Systems | Interconnection mechanism for multiple data streams |
US7831766B2 (en) | 2006-12-22 | 2010-11-09 | Comm Vault Systems, Inc. | Systems and methods of data storage management, such as pre-allocation of storage space |
US9251205B2 (en) | 2013-02-21 | 2016-02-02 | International Business Machines Corporation | Streaming delay patterns in a streaming environment |
CN104580158B (zh) * | 2014-12-12 | 2018-07-31 | 集时通(福建)信息科技有限公司 | 一种分布式平台文件与内容分发方法及系统 |
US10656838B2 (en) | 2015-07-13 | 2020-05-19 | Samsung Electronics Co., Ltd. | Automatic stream detection and assignment algorithm |
US10691557B1 (en) * | 2016-06-24 | 2020-06-23 | EMC IP Holding Company LLC | Backup file recovery from multiple data sources |
US11010261B2 (en) * | 2017-03-31 | 2021-05-18 | Commvault Systems, Inc. | Dynamically allocating streams during restoration of data |
US10691489B2 (en) * | 2018-01-29 | 2020-06-23 | International Business Machines Corporation | Managing the processing of streamed data in a data streaming application using query information from a relational database |
CN109376254A (zh) * | 2018-09-11 | 2019-02-22 | 青岛海信移动通信技术股份有限公司 | 数据流的处理方法、装置、电子设备及可读存储介质 |
-
2020
- 2020-09-23 CN CN202011009137.5A patent/CN111984602B/zh active Active
-
2021
- 2021-01-11 KR KR1020210003524A patent/KR20220040348A/ko active Pending
- 2021-01-20 US US17/152,861 patent/US11818197B2/en active Active
-
2023
- 2023-09-26 US US18/474,876 patent/US20240015206A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733319A (zh) * | 2017-04-17 | 2018-11-02 | 桑迪士克科技有限责任公司 | 用于非易失性存储器中的混合推拉数据管理的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111984602A (zh) | 2020-11-24 |
US11818197B2 (en) | 2023-11-14 |
US20220094738A1 (en) | 2022-03-24 |
KR20220040348A (ko) | 2022-03-30 |
US20240015206A1 (en) | 2024-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111984602B (zh) | 数据流的管理方法和装置 | |
US8161240B2 (en) | Cache management | |
US9639275B2 (en) | Managing data within a storage device based on file system metadata | |
WO2013164878A1 (ja) | 計算機システムの管理装置および管理方法 | |
CN104090852A (zh) | 管理混合缓存的方法及设备 | |
JP2014071905A (ja) | コンピュータシステム及びコンピュータシステムのデータ管理方法 | |
CN110109886B (zh) | 分布式文件系统的文件存储方法及分布式文件系统 | |
CN108572792A (zh) | 数据存储方法、装置、电子设备及计算机可读存储介质 | |
CN103995855A (zh) | 存储数据的方法和装置 | |
CN111143285A (zh) | 一种小文件存储文件系统以及小文件处理方法 | |
CN112783420B (zh) | 数据删除与垃圾回收方法、设备、系统及存储介质 | |
CN108628542A (zh) | 一种文件合并方法及控制器 | |
CN110858122A (zh) | 存储数据的方法和装置 | |
US8239427B2 (en) | Disk layout method for object-based storage devices | |
Yang et al. | Ars: Reducing f2fs fragmentation for smartphones using decision trees | |
US8868853B2 (en) | Data processing device, data recording method and data recording program | |
CN118259839B (zh) | 一种固态盘空间分配方法、装置、电子设备及存储介质 | |
CN116540949B (zh) | 一种独立冗余磁盘阵列存储空间动态分配方法和装置 | |
CN116661685A (zh) | 业务行为感知的对象存储元数据分级存储方法与系统 | |
CN110262758B (zh) | 一种数据存储管理方法、系统及相关设备 | |
CN111338975B (zh) | 面向多流的垃圾回收方法及其存储设备 | |
CN106933514A (zh) | 一种asm磁盘组冷热数据自动分布方法及系统 | |
JP7559429B2 (ja) | 記録媒体管理装置、記録媒体管理方法、およびプログラム | |
CN111324584A (zh) | 一种计算机文件系统的管理方法 | |
EP4517505A1 (en) | Compaction method and device for sorted strings table files |
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 |