CN114428764A - 文件写入方法、系统、电子设备及可读存储介质 - Google Patents
文件写入方法、系统、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN114428764A CN114428764A CN202210096103.7A CN202210096103A CN114428764A CN 114428764 A CN114428764 A CN 114428764A CN 202210096103 A CN202210096103 A CN 202210096103A CN 114428764 A CN114428764 A CN 114428764A
- Authority
- CN
- China
- Prior art keywords
- file
- target
- writing
- storage space
- subfile
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012937 correction Methods 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 13
- 238000007726 management method Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 239000012634 fragment Substances 0.000 description 6
- 239000002699 waste material Substances 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
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/13—File access structures, e.g. distributed indices
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供的文件写入方法、系统、电子设备及可读存储介质,方法包括:接收文件写入请求,并从文件写入请求中提取待写入文件;根据待写入文件确定目标写入文件,并基于目标写入文件获得目标存储空间;当确定目标写入文件的长度大于目标存储空间的剩余容量,将目标写入文件切分为第一子文件和第二子文件;将第一子文件写入目标存储空间,关闭目标存储空间,并将第二子文件写入下一个存储空间,本发明可以在避免空间浪费的同时还能使得目标存储空间内文件的写入时间连续,避免文件被误删。
Description
技术领域
本发明涉及存储技术领域,具体而言,涉及一种文件写入方法、系统、电子设备及可读存储介质。
背景技术
在如今的存储系统中,存储设备的性能逐渐成为系统性能的瓶颈,难以满足日益增长的数据量对存储性能的需求,因此,出现了一种把多个小文件聚合写入一个大文件的存储方式,该存储方式尤其在图片存储领域应用广泛,可以提高存储利用率,减少文件碎片的方法。
在实际的聚合存储场景中,通常会出现以下情况:某个文件的大小超出了某个存储空间的剩余容量,面对这种情况,现有的做法是将这个还未写满的存储空间关闭,当下次需要存储的文件的大小足够小时,再次将其存入这个未写满的存储空间内。这种方式一方面会导致大文件的管理非常复杂,另一方面不同文件的切换也会影响写入性能,还可能由于这个存储空间大文件里面的小文件写入时间不连续,导致小文件的误删。
发明内容
本发明的目的之一在于提供一种文件写入方法、系统、电子设备及可读存储介质,用以在避免空间浪费的同时还能保证写入文件的时间连续性,本发明可以这样实现:
第一方面,本发明提供一种文件写入方法,所述方法包括:接收文件写入请求,并从所述文件写入请求中提取待写入文件;根据所述待写入文件确定目标写入文件,并基于所述目标写入文件获得目标存储空间;当确定所述目标写入文件的长度大于所述目标存储空间的剩余容量,将所述目标写入文件切分为第一子文件和第二子文件;其中,所述第一子文件的长度与所述剩余容量一致,所述第二子文件为所述目标写入文件中除所述第一子文件外的剩余文件;
第二方面,本发明提供一种文件写入系统,包括所述客户端模块,用于接收文件写入请求,从所述文件写入请求中提取待写入文件,并将所述待写入文件发送给所述服务端模块;所述服务端模块,用于:根据所述待写入文件确定目标写入文件,并基于所述目标写入文件获得目标存储空间;当确定所述目标写入文件的长度大于所述目标存储空间的剩余容量,将所述目标写入文件切分为第一子文件和第二子文件;其中,所述第一子文件的长度与所述剩余容量一致,所述第二子文件为所述目标写入文件中除所述第一子文件外的剩余文件;将所述第一子文件写入所述目标存储空间,关闭所述目标存储空间,并将所述第二子文件写入下一个存储空间。
第三方面,本发明提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序,所述处理器可执行所述计算机程序以实现第一方面所述的方法。
第四方面,本发明提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。
本发明提供的文件写入方法、系统、电子设备及可读存储介质,方法包括:接收文件写入请求,并从文件写入请求中提取待写入文件;根据待写入文件确定目标写入文件,并基于目标写入文件获得目标存储空间;当确定目标写入文件的长度大于目标存储空间的剩余容量,将目标写入文件切分为第一子文件和第二子文件;将第一子文件写入目标存储空间,关闭目标存储空间,并将第二子文件写入下一个存储空间,可以看出,在目标存储空间的剩余容量不足以将目标写入文件全部存储的情况先下,可以将目标写入文件中的部分文件写入目标存储空间,以使目标存储空间被写满,进而将目标存储空间关闭,将目标写入文件的剩余部分写入到下一个存储空间,从而可以在避免空间浪费的同时还能使得目标存储空间内的文件的写入时间连续,避免文件被误删。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为一种文件写入的应用环境示意图;
图2为本发明实施例提供的电子设备的结构示意图;
图3为本发明实施例提供的文件写入方法的示意性流程图;
图4为本发明实施例提供的一种目录结构组织示意图;
图5为本发明实施例提供的另一种文件写入方法的示意性流程图之一;
图6为本发明实施例提供的另一种文件写入方法的示意性流程图之二;
图7为本发明实施例提供的大文件中待写入文件与校验文件和地址组合的分布示意图;
图8为本发明实施例提供的文件写入系统的功能模块图。
图注:10-客户端;11-网络;12-服务端;200-电子设备;201-存储器;202-处理器;203-通信接口;800-文件写入系统;810-客户端模块;820-服务端模块;8101-协议解析单元;8102-数据发送单元;8201-文件处理单元;8202-文件管理单元。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的系统或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
首先对本发明实施例中涉及的相关术语进行解释和说明。
小文件:文件大小小于预设阈值的文件,预设阈值可以根据实际需求自定义,此处不作限定。本发明实施例后续的文件的大小和文件的长度实质相同,并不作区分。
大文件:大文件是一个抽象的存储空间,实际实施中可以是固定大小的文件形式,也可以是一块连续的磁盘地址,还可以是一个磁盘分区。相对应的,每个大文件标识称也不局限于传统的字符串形式,可以是一个编号,序列号,索引字段等。本发明实施例中后续提到的存储空间和大文件实质相同,此处不作区分。
请参见图1,图1为一种文件写入的应用环境示意图,在该应用环境中包括客户端10(例如笔记本电脑、平板电脑、智能终端)、网络11和服务端12,服务端12可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。
在可能的文件写入场景中,用户可以在客户端10上进行一系列的操作,比如上传文件、导入文件、接收文件、生成文件等等,客户端10响应用户的操作,生成文件写入请求,并将文件写入请求通过网络11发送给服务端12,服务端12获得文件后即可根据预设的写入策略,将文件写入存储空间进行存储。
可以理解的是,服务端12处理的文件并不是统一大小,为了节约存储空间,提高存储效率,常用的文件存储方式为聚合存储方式,即将多个小文件聚合存储在一个大存储空间中,这种存储方式通常会设置一个文件大小阈值,小于文件大小阈值的文件采用聚合存储,这就造成同一个文件写入系统里面存在两种不同的存储方式,而且大于文件大小阈值的文件也会存在各种大小不一致的情况,最终也会导致磁盘空间分配出现碎片,影响性能和空间利用率。
为了避免磁盘碎片,聚合存储的大文件的大小应当满足预设的阈值,当然,可以把大文件的尺寸设置得足够大,大到足以覆盖使用场景的所有文件大小。但这又会导致存储空间浪费的情况:例如,大文件设置为1GB大小,假设该大文件已经聚合存储了多个小文件,还剩下10MB的空间。此时需要再存储一个20MB大小的小文件,则此时只能关闭没写满的大文件,再新建一个1GB的大文件用于20MB小文件的写入。这样就导致前一个大文件中的10MB空间被浪费。
相关技术针对上述问题采取的方式是:将未写满的大文件关闭并记录下来,当某次需要存储的小文件大小足够小时可以将其存入某一个未写满的大文件。但这种方式一方面会导致大文件的管理非常复杂,另一方面,不同文件的切换也会影响写入性能。而且如果是在一些按时间覆盖的存储场景(例如监控抓拍图片保存一定天数后自动删除),由于大文件里面的小文件写入时间不连续,也会导致小文件的误删。
为了解决上述技术问题,本发明实施例首先提供了一种电子设备200,请参见图2,图2为本发明实施例提供的电子设备的结构示意图,该电子设备200可以是图1中的服务端12。
电子设备200包括存储器201、处理器202和通信接口203,该存储器201、处理器202和通信接口203相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
存储器201可用于存储软件程序及模块,如本发明实施例提供文件写入系统800对应的程序指令/模块,可以软件或固件(firmware)的形式存储于存储器201中或固化在电子设备200的操作系统(operating system,OS)中,处理器202通过执行存储在存储器201内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口203可用于与其他节点设备进行信令或数据的通信。
其中,存储器201可以是但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器202可以是一种集成电路芯片,具有信号处理能力。该处理器202可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以理解,图2所示的结构仅为示意,电子设备200还可以包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
下面以上述电子设备200执行本发明实施例提供的文件写入方法为例,介绍本发明实施例提供的文件写入方法,请参见图3,图3为本发明实施例提供的文件写入方法的示意性流程图,该方法可以包括:
S301,接收文件写入请求;
S302,根据文件写入请求确定目标写入文件,并基于目标写入文件获得目标存储空间;
S303,当确定目标写入文件的长度大于目标存储空间的剩余容量,将目标写入文件切分为第一子文件和第二子文件;
其中,第一子文件的长度与剩余容量一致,第二子文件为目标写入文件中除第一子文件外的剩余文件;
S304,将第一子文件写入目标存储空间,关闭目标存储空间,并将第二子文件写入下一个存储空间;
根据本发明实施例提供的文件写入方法,接收文件写入请求,并从文件写入请求中提取待写入文件;根据待写入文件确定目标写入文件,并基于目标写入文件获得目标存储空间;当确定目标写入文件的长度大于目标存储空间的剩余容量,将目标写入文件切分为第一子文件和第二子文件;将第一子文件写入目标存储空间,关闭目标存储空间,并将第二子文件写入下一个存储空间,可以看出,在目标存储空间的剩余容量不足以将目标写入文件全部存储的情况先下,可以将目标写入文件中的部分文件写入目标存储空间,以使目标存储空间被写满,进而将目标存储空间关闭,将目标写入文件的剩余部分写入到下一个存储空间,从而可以在避免空间浪费的同时还能使得目标存储空间内的文件的写入时间连续,避免文件被误删。
下面对上述步骤S301至步骤S304进行详细介绍和说明。
在步骤S301中,接收文件写入请求,并从文件写入请求中提取待写入文件。
可以理解的是,文件写入请求可以是基于用户的一系列操作生成的,比如,用户可以进行文件的上传、导入、读取、生成等操作。
应理解,文件写入请求中包含有待写入文件,还可以包含有该待写入文件的存储协议,本发明实施例还可以针对不同存储协议的待写入文件进行相应的处理,保证对所有文件有统一的处理方式,保证对外访问的一致性。
在步骤S302中、根据待写入文件确定目标写入文件,并基于目标写入文件获得目标存储空间。
在本申请实施例中,目标存储空间就是预先创建且处于打开状态的大文件,大文件创建的过程将在后续进行详细介绍,这里所说的“打开状态”表征该目标存储空间正处于写入文件的过程中,而且该目标存储空间还处于未写满状态,这样可以保证每个存储空间被写满,避免空间浪费,目标存储空间的数量与目标写入文件的数量一致,也就是说,在确定目标写入文件之后,可以先申请处于打开状态的目标存储空间来存储待写入文件。
本申请实施例中的存储空间是由本申请实施例中后续涉及的文件管理模块进行划分和管理的,例如,在一种可能的实施方式中,文件管理模块可以1GB为单位对磁盘空间进行划分,每个划分得到的存储空间的编号可以采用磁盘序列号加偏移加一定的随机数变换确定,为简单起见,本申请实施例以顺序编码的方式表示。例如,以一套存储集群以16节点为例,单个节点具有36块盘,每块盘大小为8TB,则总共可以划分4608000个1GB空间,那么得到的所有存储空间的编号为1到4608000。
应理解,上述所涉及的磁盘既可以是操作系统暴露的裸块设备,也可以是经过LVM或RAID软件等包装后的虚拟块设备,还可以是通过iSCSI或者FC等连接映射的外部设备或云存储设备,磁盘类型可以但不限于是HDD,也可包含SSD等以块方式读写的存储介质。
还应理解的是,本申请实例中的1GB空间实际上一块逻辑上(或物理上)连续的存储空间,并不是传统意义上的文件,为简化描述,后续可以以大文件指代。
在本申请实施例中,待写入文件是文件写入请求中携带的文件数据,根据不同的写入策略,目标写入文件可以是整个待写入文件,还可以是待写入文件对应的多个子文件,也就是文件分片,还可以是待写入文件的子文件和生成的校验文件,下面针这些情况进行详细介绍。
情况1:待写入文件就是目标写入文件,那么步骤S302的实施方式即为:
a1,从文件写入请求中提取待写入文件;
a2,将待写入文件确定为一个目标写入文件;
a3,根据一个目标写入文件,获得一个目标存储空间。
在这种情况下,只需要申请一个处于打开状态的目标存储空间,并将该目标存储空间写满,防止空间浪费。
情况2:为了更好地提升存储的顺序性和并发性,待写入文件的多个子文件可以为目标写入文件,那么步骤S302的实施方式即为:
b1,将待写入文件切分成多个子文件。
b2,将每个子文件确定为目标写入文件。
b3,根据多个子文件的数量,获得多个目标存储空间。
也就是说,可以先对待写入文件做切片处理,得到固定大小的多个子文件,也就是数据块,并基于子文件的数量一次性申请处于开启状态的多个大文件,也就是确定多个目标存储空间,然后在每个目标存储空间中写入一个目标写入文件。
情况3:为了提升数据保存的可靠性,还可以加入多副本,纠删码等数据冗余技术进行文件写入,那么步骤S302的实施方式即为:
c1,根据预设纠删码,确定待写入文件对应的子文件数量和校验文件数量,并根据子文件数量和校验文件数量之和,获得多个目标存储空间;
c2,根据子文件数量,将待写入文件切分成多个子文件,并根据校验文件数量和预设纠删算法,生成多个校验文件;
c3,根据多个子文件的数量,获得多个目标存储空间。
其中,每个子文件的长度相同,校验文件的长度与子文件的长度相同。
c4,将每个子文件和每个校验文件均确定为目标写入文件。
针对这种实施方式,用户可以根据实际需求确定纠删码,纠删码形如N+M,其中N为原始数据的个数,在本申请实施例中即为目标文件的个数,M为校验数据的个数,在本申请实施例中即为检验文件的个数,例如纠删码可以是8+2,即8个目标写入文件和2个校验文件等,此处不作限定。
在确定纠删码之后,可以将待写入文件分成相同长度的N份,通过特定的纠删码算法,计算出M份相同长度的校验数据,并将这N+M份数据各自写入一个目标存储空间,这样一来,当任意M份数据丢失的情况下,仍能通过剩下的N份数据还原出原始的数据。
应理解,在确定目标存储空间时,可以一次性申请打开N+M个大文件,并按照一定的随机算法选择N+M个大文件,随机算法可以是简单的HASH,也可以考虑大文件的磁盘和节点分布,以及各节点的资源利用率等,具体方式不限制。
还应理解,在情况2和情况3中,目标写入文件存在多个,每个目标写入文件被写入一个目标存储空间的方式相似,那么将每个目标文件写入一个目标存储空间中的过程中,可以执行下述步骤S303和步骤S304。
在步骤S303中,当确定目标写入文件的长度大于目标存储空间的剩余容量,将目标写入文件切分为第一子文件和第二子文件;
其中,第一子文件的长度与剩余容量一致,第二子文件为目标写入文件中除第一子文件外的剩余文件。
可以看出,由于第一子文件的长度与剩余容量相同,那么将第一子文件写入目标存储空间之后,目标存储空间即处于写满的状态,从而可以防止现有技术中出现的空间浪费。
在步骤S304,将第一子文件写入目标存储空间,将目标存储空间关闭,并将第二子文件写入下一个存储空间。
在一种可能的实施方式中,上述步骤S304的可以按照如下方式进行:在将第一子文件写入目标存储空间后,将目标存储空间关闭;发送下一个存储空间的申请请求;在获得下一个存储空间后,将第二子文件写入下一个存储空间。
本申请实施例中,下一个存储空间可以是重新创建的一个大文件,在将目标存储空间关闭后,可以生成一个大文件申请请求,基于该申请请求创建一个大文件,作为下一个存储空间,应理解,下一个存储空间在写入该第二子文件之前还未被写入任何文件。
也就是说,针对每个目标存储空间,只有它被写满之后才会被关闭,这与现有技术中还未写满的文件先关闭记录,等待下一次有写入需求的时候再打开的方式完全不同,本发明实施例可以在避免空间浪费的同时还能保证该目标存储空间内的文件写入的时间连续性。
可选地,在完成待写入文件的写入之后,为了后续快速、准确访问或定位待写入文件,实施例还给出了一种可能的实施方式,请参见图5,图5为本发明实施例提供的另一种文件写入方法的示意性流程图之一:
S305,基于目标存储空间的存储路径、第一子文件的长度以及第一子文件在目标存储空间的起始写入位置,生成第一子文件的访问地址。
S306,基于下一个存储空间的存储路径、第二子文件的长度以及第二子文件在下一个存储空间的起始写入位置,生成第二子文件的访问地址;
S307,根据第一子文件的访问地址和第二子文件的访问地址,生成一个文件,并将文件写入下一个存储空间;
S308,基于下一个存储空间的存储路径、文件的长度以及目标文件在下一个存储空间的起始写入位置,生成文件的访问地址,并将文件的访问地址返回至客户端。
在介绍本发明实施例上述实施过程之前,先对本发明实施例中的目标存储进行介绍说明。
本申请实施例中,大文件以传统的文件形式存在,预先创建的多个大文件可以按照如下目录结构进行组织、统一管理:
目录最多10级(目录级数与实际业务分组和图片数量相关,也会影响最终产生的小文件访问路径的长度,10级已能满足大多数情况),每级目录支持1024个子目录和1024个大文件。
例如,请参见图4,图4为本发明实施例提供的一种目录结构组织示意图,文件管理单元8202前9级全部创建目录,在最后一级全部创建大文件,则本实例大文件个数最多为1024的10次方,远超大多数使用场景的需求。
其中,目录标识和文件标识可以按数字编码,每级目录从1到2048(1024个目录和1024个大文件,可以采用偶数表示目录,奇数表示文件或者前1024表示文件,后1024表示目录等方式区分目录和文件),最多需要4字节,预留扩展,每路考虑6字节。10级总共需要60字节,考虑对齐,分配64字节。
针对每个大文件,它的文件大小可以为固定大小,比如1GB,写入的文件在其中的偏移按字节标识,通常小文件长度10字节,则在大文件中最多需要10字节来存储一个小文件。
按照上述大文件组织结构,则访问地址形式可以为:大文件存储路径+待写入文件偏移(起始写入位置)+待写入文件长度。
比如,一个目标写入文件的访问路径形式为:/2/34/189-3741824-240640,表示存储在一级目录标识为2,二级目录标识为34下的大文件标识为189的大文件3741824字节偏移处,长度为240640字节,访问地址的长度不会超过84字节,考虑辅组字符和对齐的情况下,可以按96字节分配空间。
基于上述文件组织结构,下面结合具体实例对上述步骤S305至步骤S308进行示例性说明。
假设上述文件写入系统已经运行了一段时间,某个目标存储空间(存储路径为/2/2/1)已经写入了很多小文件,剩余容量为10MB,当前写入偏移为1063256063,此时获得的目标写入文件的长度为20MB。
将10MB的第一子文件写入目标存储空间后,根据步骤S305,产生一个访问地址/2/2/1-1063256063-10485760,其中,“/2/2/1”是目标存储空间的存储路径,“1063256063”是起始写入位置,“10485760”为第一子文件的长度;进而,将下一个存储空间写入剩余的10MB的第二子文件,根据步骤S306,产生访问地址/2/2/3-0-10485760,其中,“/2/2/3”是下一个存储空间的存储路径,“0”是起始写入位置,“10485760”是第二子文件的长度。根据步骤S307,将访问地址“/2/2/1-1063256063-10485760”和“/2/2/3-0-10485760”组合成一个新文件,文件内容至少包含分片个数和每个分片的访问地址(可以根据情况增加其它可选内容),可以采用各种方式组织,例如使用json格式表示如下:
{“num”:”2”,“fids”:[”/2/2/1-1063256063-10485760”,”/2/2/3-0-10485760”]}
将以上json数据继续写入下一个存储空间/2/2/3中,产生一个新的访问地址“”/2/2/3-10485760-104,将此新的访问地址/2/2/3-10485760-104返回客户端,后续客户端可以使用此地址访问待写入文件。
在可选地实施方式中,在知晓如何确定一个目标写入文件的访问地址的情况下,针对上述情况1和情况2,为了统一管理每个目标写入文件的访问地址,本发明实施例还给出了一种可能的实施方式,请参见图6,图6为本发明实施例提供的另一种文件写入方法的示意性流程图之二,该方法还包括:
S309,当确定目标写入文件的长度小于或等于目标存储空间的剩余容量,将目标写入文件直接写入到目标存储空间。
S310,当确定全部目标写入文件均写入完成时,确定每个目标写入文件各自对应的访问地址,并将全部访问地址组合成一个新文件;
上述确定每个目标写入文件各自对应的访问地址的实现方式可以按照图4所示的实现方式进行,此处不再赘述。
S311,确定多个目标存储空间的排列顺序,将所述排列顺序中前预设数量个目标存储空间作为第一目标存储空间,并分别在每个所述第一目标存储空间中写入所述新文件。
为了方便理解,下面以情况3为例进行介绍,假设本实施例采用8+2纠删码的方式对原始数据做一定冗余处理,则一次性获得的目标存储空间为10个,假设返回的目标存储空间的编号分别:220375,441659,251876,452165,176551,184217,186615,435627,270302,40184。
需要注意的是,为了后续子文件和校验文件能够均匀分布在各个目标存储空间中,上述获得10个目标存储空间之间具有排列顺序。
下面以一个300KB大小的待写入文件的存储过程为例描述上述处理步骤:将8份子文件和2份校验文件,并分别以追加写的方式写入上述10个目标存储空间中,可以先写子文件,再写校验文件,产生10个访问地址分别为:220375-0-38400、441659-0-38400、251876-0-38400、452165-0-38400、176551-0-38400、184217-0-38400、186615-0-38400、435627-0-38400、270302-0-38400、40184-0-38400。
将上述这10个访问地址组合成一个新文件,文件内容至少包含分片个数和每个分片的访问地址以及纠删算法(可以根据情况增加其它可选内容),可以采用各种方式组织,例如使用json格式表示如下:
{"ec":"8+2","fids":
["220375-0-38400","441659-0-38400","251876-0-38400","452165-0-38400","176551-0-38400","184217-0-38400","186615-0-38400","435627-0-38400","270302-0-38400","40184-0-38400",]}
获得以上json数据(也就是上述步骤S310中的新文件)之后,从上述10个目标存储空间中确定出3个第一目标存储空间,并将得到的json数据分别写入这3个第一目标存储空间内即可。
在本申请实施例中,在确定第一目标存储空间时,可以按照上述10个目标存储空间的排列顺序从前到后确定出3个,进而在每个第一目标存储空间内写入一个子文件,每个子文件的访问地址可以如下:"220375-38400-222""441659-38400-222""251876-38400-222"。进而对这个3个访问地址做一个组合,将其大文件标识和偏移分别合并,长度由于肯定是相同的,因此只保留一个,组合结果如下:“220375&441659&251876-38400&38400&38400-222”,此处的3个偏移38400是相同的是因为第一个小文件写入的特殊情况,后续会出现不同,将组合后的访问地址返回客户端,后续客户端可以使用此地址访问小文件数据。
在本申请实施例中,将上述得到的json数据之所以写三份,是因为小文件采用了8+2的纠删码,可以允许3个数据分片的丢失,因此,组合成的地址文件,也需要在两份数据丢失的情况下,仍然可访问。
可选地,针对上述情况2和情况3,为了获得待写入最终的访问地址,本发明实施例还可以包括以下方法:
根据每个第一目标存储空间的存储地址、每个第一目标存储空间内写入的新文件的长度和起始写入位置,生成每个第一目标存储空间内写入的新文件的访问地址;将得到的新文件的访问地址进行组合,得到一个目标访问地址;将目标访问地址返回至客户端。
在上述实施例中,为了后续子文件和校验文件能够均匀分布在各个目标存储空间中,上述获得多个目标存储空间之间具有排列顺序,那么在前预设数量个目标存储空间中写入访问地址之后,还可以在完成待写入文件的写入操作之后,将多个目标存储空间的顺序做一个调整,例如第一个目标存储空间放到第10位,后面9个目标存储空间依次前进一位,以使得每个待写文件的子文件和校验文件能够均匀分布在各个大文件中,访问地址组合文件也均匀分布在各个大文件中,保证大文件的利用率均衡,调整情况如图7,图7为本发明实施例提供的大文件中待写入文件与校验文件和地址组合的分布示意图。
基于与上述文件写入方法相同的发明构思,本发明实施例还提供了一种文件写入系统800,请参见图8,图8为本发明实施例提供的文件写入系统800的功能模块图,包括:客户端模块810和服务端模块820;其中,客户端模块810还包括协议解析单元8101和数据发送单元8102,服务端模块820还包括文件处理单元8201和文件管理单元8202。
应理解,本发明实施例中的客户端模块810和服务端模块820这两部分可分别部署在不同的服务器,也可以部署在同一台服务器,还可以采取集群方式部署,此处不作限定。
客户端模块810,用于接收文件写入请求,从文件写入请求中提取待写入文件,并将待写入文件发送给服务端模块820。
服务端模块820,用于:根据待写入文件确定目标写入文件,并基于目标写入文件获得目标存储空间;当确定目标写入文件的长度大于目标存储空间的剩余容量,将目标写入文件切分为第一子文件和第二子文件;其中,第一子文件的长度与剩余容量一致,第二子文件为目标写入文件中除第一子文件外的剩余文件;将第一子文件写入目标存储空间,关闭目标存储空间,并将第二子文件写入下一个存储空间。
下面针对图8中示例性的客户端模块810和服务端模块820作详细介绍。
在本申请实施例中,客户端模块810可以但不限于包括协议解析单元8101和数据发送单元8102。
其中,协议解析单元8101用于接收各种标准或非标准存储协议发送的数据,并将接收到的数据转换成统一的标准文件格式(小文件格式)。协议解析单元8101用于接收文件写入请求,针对不同存储协议的数据,协议解析单元8101可以作如下处理:
第一种情况:对于标准存储类协议,如NFS,S8等,协议解析单元8101可以先通过元数据存储服务记录待写入文件的元数据,并将提取的待写入文件转给数据发送单元8102。
第二种情况:对于视频监控类协议,如GA/T-1400等,协议解析单元8101可以将结构化数据转给视图库服务处理,进而将提取的图片数据转(也就是待写入文件)发给数据发送单元8102。
数据发送单元8102,用于将待写入文件发往服务端模块820,做后续的写入存储处理,并向协议解析单元8101返回待写入文件的存储地址信息。
在可选的实施方式中,数据发送单元8102获得待写入文件之后,可以将待写入文件封装成固定格式的网络包,发往服务端模块820,例如,可以采用进程间的调用,共享内存,还可以采用RPC远程调用、RDMA远程直接内存访问,WEBService,RESTFULL等各种技术实现。
继续参见图8,在本申请实施例中,服务端模块820可以包括文件处理单元8201和文件管理单元8202。
文件管理单元8202,用于维护多个大文件,根据业务需求维护大文件的打开写入和关闭等状态、负责存储空间的分配,与底层存储硬件交互。
文件处理单元8201:用于根据待写入文件确定目标写入文件,并基于目标写入文件获得目标存储空间;当确定目标写入文件的长度大于目标存储空间的剩余容量,将目标写入文件切分为第一子文件和第二子文件;其中,第一子文件的长度与剩余容量一致,第二子文件为目标写入文件中除第一子文件外的剩余文件;将第一子文件写入目标存储空间,关闭目标存储空间,并将第二子文件写入下一个存储空间。
本申请实施例中,文件管理单元8202可以在接收到文件处理单元8201的大文件申请请求时,创建多个大文件,在可能的实施方式中,文件管理单元8202可以用来执行以下步骤:
a1,根据获得的文件申请请求,创建一级目录以及预设数量个第一级大文件,并为每个第一级大文件分配标识,比如,创建1024个的第一级大文件,全部第一级大文件的标识分别为出1,3,5直到2047。
a2,当确定预设数量个第一级大文件全部处于写满状态时,在获得文件申请请求后,创建预设数量个子目录,并为每个子目录分配标识。比如,创建1024个的子目录,全部子目录的标识分别为出2,4,6直到2048。
a8,在每个子目录下,依次创建预设数量个大文件,并为每个大文件分配标识,分配标识的方式和步骤a1中的方式一致,此处不在赘述。
依次类推,在创建的每个子目录下就可以继续按照步骤a2和a8的方式创建孙子目录以及每个孙子目录的大文件,直到达到预设层级(例如10级),可以看出,上述文件创建方式是利用广度优先模式进行大文件创建,可有效减少大多数情况下最终生成的小文件访问路径长度。
为了方便理解上述实施原理,下面给出一个例子,假设上述文件写入系统800已经运行了一段时间,某个大文件/2/2/1已经写入了很多小文件,剩余容量为10MB,当前写入偏移为1068256068,此时,小文件处理单元8201获得的目标写入文件的长度为20MB,则上述文件写入系统800可以是这样运行的:
协议解析单元8101用于根据获得的文件写入请求,提取20MB的文件数据,并将20MB的文件数据发送给数据发送单元8102。
数据发送单元8102,用于将获得20MB的文件数据发送给文件处理单元8201。
文件处理单元8201用于先将前10MB的文件数据写入一个大文件,进一步,文件处理单元8201向文件管理单元8202申请一个新的大文件。
文件处理单元8201将这个新的大文件中写入剩余的10MB数据。
在可选地的实施方式中,为了后续快速、准确的访问待写入文件,服务端模块820中的文件处理单元8201可以用来执行图5中的各个步骤,此处不再赘述。
在可选地的实施方式中,文件处理单元8201还可以用来执行上述情况1中的步骤a1至步骤a3、情况2中的步骤b1至步骤b2以及上述情况3中的步骤c1至步骤c2,此处不再赘述。
在可选地的实施方式中,文件处理单元8201还可以用来执行图6中的各个步骤以实现相应的技术效果。
本发明实施例还提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式中任一项的文件写入方法。该计算机可读存储介质可以是,但不限于,U盘、移动硬盘、ROM、RAM、PROM、EPROM、EEPROM、磁碟或者光盘等各种可以存储程序代码的介质。
应该理解到,在本发明所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
Claims (10)
1.一种文件写入方法,其特征在于,所述方法包括:
接收文件写入请求,并从所述文件写入请求中提取待写入文件;
根据所述待写入文件确定目标写入文件,并基于所述目标写入文件获得目标存储空间;
当确定所述目标写入文件的长度大于所述目标存储空间的剩余容量,将所述目标写入文件切分为第一子文件和第二子文件;其中,所述第一子文件的长度与所述剩余容量一致,所述第二子文件为所述目标写入文件中除所述第一子文件外的剩余文件;
将所述第一子文件写入所述目标存储空间,关闭所述目标存储空间,并将所述第二子文件写入下一个存储空间。
2.根据权利要求1所述的文件写入方法,其特征在于,在将所述第一子文件写入所述目标存储空间,关闭所述目标存储空间,并将所述第二子文件写入下一个存储空间之后,所述方法还包括:
基于所述目标存储空间的存储路径、所述第一子文件的长度以及所述第一子文件在所述目标存储空间的起始写入位置,生成所述第一子文件的访问地址;
基于所述下一个存储空间的存储路径、所述第二子文件的长度以及所述第二子文件在所述下一个存储空间的起始写入位置,生成所述第二子文件的访问地址;
根据所述第一子文件的访问地址和所述第二子文件的访问地址,生成一个文件,并将所述文件写入所述下一个存储空间;
基于所述下一个存储空间的存储路径、所述文件的长度以及写入的所述文件在所述下一个存储空间的起始写入位置,生成所述文件的访问地址,并将所述文件的访问地址返回至客户端。
3.根据权利要求1所述的文件写入方法,其特征在于,根据所述待写入文件确定目标写入文件,并基于所述目标写入文件获得目标存储空间,包括:
将所述待写入文件切分成多个子文件;
将每个子文件确定为所述目标写入文件;
根据所述多个子文件的数量,获得多个所述目标存储空间。
4.根据权利要求1所述的文件写入方法,其特征在于,根据所述待写入文件确定目标写入文件,并基于所述目标写入文件获得目标存储空间,包括:
根据预设纠删码,确定所述待写入文件对应的子文件数量和校验文件数量,并根据所述子文件数量和校验文件数量之和,获得多个所述目标存储空间;
根据所述子文件数量,将所述待写入文件切分成多个子文件,并根据所述校验文件数量和预设纠删算法,生成多个校验文件;
其中,每个子文件的长度相同,所述校验文件的长度与所述子文件的长度相同;
将每个子文件和每个校验文件均确定为所述目标写入文件。
5.根据权利要求1所述的文件写入方法,其特征在于,根据所述待写入文件确定目标写入文件,并基于所述目标写入文件获得目标存储空间,包括:
从所述文件写入请求中提取待写入文件;
将所述待写入文件确定为一个目标写入文件;
根据所述一个目标写入文件,获得一个所述目标存储空间。
6.根据权利要求4或5所述的文件写入方法,其特征在于,所述方法还包括:
当确定所述目标写入文件的长度小于或等于所述目标存储空间的剩余容量,将所述目标写入文件直接写入到所述目标存储空间;
当全部所述目标写入文件均写入完成时,确定每个目标写入文件各自对应的访问地址,并将全部访问地址组合成一个新文件;
确定多个目标存储空间的排列顺序,将所述排列顺序中前预设数量个目标存储空间作为第一目标存储空间,并分别在每个所述第一目标存储空间中写入所述新文件。
7.根据权利要求6所述的文件写入方法,其特征在于,在确定多个目标存储空间的排列顺序,将所述排列顺序中前预设数量个目标存储空间作为第一目标存储空间,并分别在每个所述第一目标存储空间中写入所述新文件之后,所述方法还包括:
根据每个第一目标存储空间的存储地址、所述每个第一目标存储空间内写入的所述新文件的长度和起始写入位置,生成每个第一目标存储空间内写入的所述新文件的访问地址;
将得到的所述新文件的访问地址进行组合,得到一个目标访问地址;
将所述目标访问地址返回至客户端。
8.一种文件写入系统,其特征在于,包括:客户端模块和服务端模块;
所述客户端模块,用于接收文件写入请求,从所述文件写入请求中提取待写入文件,并将所述待写入文件发送给所述服务端模块;
所述服务端模块,用于:根据所述待写入文件确定目标写入文件,并基于所述目标写入文件获得目标存储空间;当确定所述目标写入文件的长度大于所述目标存储空间的剩余容量,将所述目标写入文件切分为第一子文件和第二子文件;其中,所述第一子文件的长度与所述剩余容量一致,所述第二子文件为所述目标写入文件中除所述第一子文件外的剩余文件;将所述第一子文件写入所述目标存储空间,关闭所述目标存储空间,并将所述第二子文件写入下一个存储空间。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序,所述处理器可执行所述计算机程序以实现权利要求1-7任一项所述的方法。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210096103.7A CN114428764B (zh) | 2022-01-26 | 2022-01-26 | 文件写入方法、系统、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210096103.7A CN114428764B (zh) | 2022-01-26 | 2022-01-26 | 文件写入方法、系统、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114428764A true CN114428764A (zh) | 2022-05-03 |
CN114428764B CN114428764B (zh) | 2024-04-02 |
Family
ID=81313915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210096103.7A Active CN114428764B (zh) | 2022-01-26 | 2022-01-26 | 文件写入方法、系统、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114428764B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1692356A (zh) * | 2002-11-14 | 2005-11-02 | 易斯龙系统公司 | 对分布式文件系统中的文件重新条带化的系统和方法 |
CN102117245A (zh) * | 2010-01-06 | 2011-07-06 | 浙江德景电子科技有限公司 | 嵌入式设备及其系统可执行文件分割加载和启动方法 |
US20150339237A1 (en) * | 2014-05-21 | 2015-11-26 | Qualcomm Incorporated | Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods |
CN105808622A (zh) * | 2014-12-31 | 2016-07-27 | 乐视网信息技术(北京)股份有限公司 | 一种文件存储的方法和装置 |
CN107330002A (zh) * | 2017-06-09 | 2017-11-07 | 石化盈科信息技术有限责任公司 | 分布式数据库实现方法及装置 |
CN112802518A (zh) * | 2021-03-25 | 2021-05-14 | 深圳市汇顶科技股份有限公司 | 数据写入方法、片上系统芯片及计算机可读存储介质 |
CN112839231A (zh) * | 2021-01-15 | 2021-05-25 | 苏州浪潮智能科技有限公司 | 一种视频压缩传输方法和系统 |
CN112925672A (zh) * | 2021-02-08 | 2021-06-08 | 重庆紫光华山智安科技有限公司 | 数据恢复方法、装置、设备及存储介质 |
-
2022
- 2022-01-26 CN CN202210096103.7A patent/CN114428764B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1692356A (zh) * | 2002-11-14 | 2005-11-02 | 易斯龙系统公司 | 对分布式文件系统中的文件重新条带化的系统和方法 |
CN102117245A (zh) * | 2010-01-06 | 2011-07-06 | 浙江德景电子科技有限公司 | 嵌入式设备及其系统可执行文件分割加载和启动方法 |
US20150339237A1 (en) * | 2014-05-21 | 2015-11-26 | Qualcomm Incorporated | Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods |
CN105808622A (zh) * | 2014-12-31 | 2016-07-27 | 乐视网信息技术(北京)股份有限公司 | 一种文件存储的方法和装置 |
CN107330002A (zh) * | 2017-06-09 | 2017-11-07 | 石化盈科信息技术有限责任公司 | 分布式数据库实现方法及装置 |
CN112839231A (zh) * | 2021-01-15 | 2021-05-25 | 苏州浪潮智能科技有限公司 | 一种视频压缩传输方法和系统 |
CN112925672A (zh) * | 2021-02-08 | 2021-06-08 | 重庆紫光华山智安科技有限公司 | 数据恢复方法、装置、设备及存储介质 |
CN112802518A (zh) * | 2021-03-25 | 2021-05-14 | 深圳市汇顶科技股份有限公司 | 数据写入方法、片上系统芯片及计算机可读存储介质 |
Non-Patent Citations (3)
Title |
---|
TOSHIYA KAWATO等: "attempt to utilize surplus storage capacity as distributed storage", 2020 3RD INTERNATIONAL CONFERENCE ON INFORMATION AND COMPUTER TECHNOLOGIES, 12 March 2020 (2020-03-12), pages 351 - 355, XP033770848, DOI: 10.1109/ICICT50521.2020.00062 * |
张弛;龚茂;: "基于云存储的海洋数据存储策略研究", 海洋信息, no. 01, 15 February 2014 (2014-02-15), pages 21 - 24 * |
欧焱;冯煜晶;李文明;叶笑春;王达;范东睿;: "面向数据流结构的指令内访存冲突优化研究", 计算机研究与发展, vol. 56, no. 12, 15 December 2019 (2019-12-15), pages 2720 - 2732 * |
Also Published As
Publication number | Publication date |
---|---|
CN114428764B (zh) | 2024-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853549B2 (en) | Index storage in shingled magnetic recording (SMR) storage system with non-shingled region | |
US9798728B2 (en) | System performing data deduplication using a dense tree data structure | |
US9830101B2 (en) | Managing data storage in a set of storage systems using usage counters | |
US8756199B2 (en) | File level hierarchical storage management system, method, and apparatus | |
US10210191B2 (en) | Accelerated access to objects in an object store implemented utilizing a file storage system | |
US9189494B2 (en) | Object file system | |
US8290911B1 (en) | System and method for implementing data deduplication-aware copying of data | |
US9307024B2 (en) | Efficient storage of small random changes to data on disk | |
US8135918B1 (en) | Data de-duplication for iSCSI | |
US8600999B2 (en) | System and method for efficient resource management | |
CN109804359A (zh) | 用于将数据回写到存储设备的系统和方法 | |
US7657533B2 (en) | Data management systems, data management system storage devices, articles of manufacture, and data management methods | |
JP2022550401A (ja) | データのアップロード方法、システム、装置及び電子機器 | |
CN113946291A (zh) | 数据访问方法、装置、存储节点及可读存储介质 | |
US11226778B2 (en) | Method, apparatus and computer program product for managing metadata migration | |
CN113806300A (zh) | 数据存储方法、系统、装置、设备及存储介质 | |
CN111435286B (zh) | 一种数据存储方法、装置和系统 | |
WO2014153931A1 (zh) | 文件存储方法、装置、访问客户端及元数据服务器系统 | |
US11093532B2 (en) | Pre-allocating filesystem metadata within an object storage system | |
CN114428764B (zh) | 文件写入方法、系统、电子设备及可读存储介质 | |
WO2023040305A1 (zh) | 一种数据备份系统及装置 | |
CN112597102B (zh) | 一种高效的镜像文件系统实现方法 | |
CN111966845B (zh) | 图片管理方法、装置、存储节点及存储介质 | |
US20130218851A1 (en) | Storage system, data management device, method and program | |
CN116594551A (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 |