CN111339046A - 针对文件的数据写入、读取和删除方法及装置 - Google Patents
针对文件的数据写入、读取和删除方法及装置 Download PDFInfo
- Publication number
- CN111339046A CN111339046A CN202010122119.1A CN202010122119A CN111339046A CN 111339046 A CN111339046 A CN 111339046A CN 202010122119 A CN202010122119 A CN 202010122119A CN 111339046 A CN111339046 A CN 111339046A
- Authority
- CN
- China
- Prior art keywords
- target file
- data
- file
- object identifier
- response
- 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
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/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种针对文件的数据写入方法,该方法包括:响应于针对目标文件的写请求,确定所述目标文件是否已被分配对象标识符;响应于所述目标文件已被分配对象标识符,获取针对所述目标文件的第一对象标识符;根据获取的所述第一对象标识符,从对象存储空间读取所述目标文件的已有数据;基于所述写请求和读取的所述已有数据,在本地第一存储空间执行数据写操作;以及响应于所述数据写操作执行完成,基于所述第一对象标识符将所述目标文件的数据上传至所述对象存储空间。本公开还提供了一种针对文件的数据读取、删除方法以及针对文件的数据写入、读取、和删除装置、一种电子设备以及一种计算机可读存储介质。
Description
技术领域
本公开涉及计算机技术领域,特别是涉及一种针对文件的数据写入、读取和删除方法及装置。
背景技术
对象存储作为大容量、廉价的存储方式,具有高可扩展性、高可靠性、接口简单(RESTful接口)等优点,相比于传统的存储方式具有明显的优势,非常适合于存放海量的非结构化数据。
但是大量的传统应用仍然难以直接从对象存储中获益。因为传统的应用通常使用POSIX接口(Portable Operating System Interface,可移植操作***接口)进行数据存储和访问,无法直接使用RESTful接口。此外,由于传统应用中大量使用诸如绝对路径、相对路径、目录及文件的权限控制等文件功能,而对象存储摒弃了目录层次,因此无法直接转换。
发明内容
本公开的一个方面提供了一种针对文件的数据写入方法,包括:响应于针对目标文件的写请求,确定上述目标文件是否已被分配对象标识符;响应于上述目标文件已被分配对象标识符,获取针对上述目标文件的第一对象标识符;根据获取的上述第一对象标识符,从对象存储空间读取上述目标文件的已有数据;基于上述写请求和读取的上述已有数据,在本地第一存储空间执行数据写操作;以及响应于上述数据写操作执行完成,基于上述第一对象标识符将上述目标文件的数据上传至上述对象存储空间。
可选地,上述方法还包括:响应于上述数据写操作执行完成,修改上述目标文件的元数据;以及以文件存储方式存储修改后的元数据。
可选地,响应于不存在针对上述目标文件的脏数据标识,执行上述根据获取的上述第一对象标识符,从对象存储空间读取上述目标文件的已有数据的相关操作。
可选地,上述方法还包括:在上述从对象存储空间读取上述目标文件的已有数据的同时或之后,设置针对上述已有数据的脏数据标识。
可选地,上述方法还包括:响应于基于上述第一对象标识符将上述目标文件的数据上传至上述对象存储空间后,清除上述脏数据标识。
可选地,上述方法还包括:响应于上述目标文件尚未被分配对象标识符,为上述目标文件分配第二对象标识符;基于上述写请求,在本地第二存储空间执行上述数据写操作;以及响应于上述数据写操作执行完成,基于上述第二对象标识符将上述目标文件的数据上传至上述对象存储空间。
本公开的另一个方面还提供了一种针对文件的数据读取方法,包括:响应于针对目标文件的读请求,确定上述目标文件是否已被分配对象标识符;响应于上述目标文件已被分配对象标识符,获取针对上述目标文件的第一对象标识符;以及根据获取的上述第一对象标识符,从对象存储空间读取上述目标文件的数据。
可选地,上述方法还包括:响应于上述数据读操作执行完成,修改上述目标文件的元数据;以及以文件存储方式存储修改后的元数据。
可选地,响应于不存在针对上述目标文件的脏数据标识,执行上述根据获取的上述第一对象标识符,从对象存储空间读取上述目标文件的数据的相关操作。
可选地,上述方法还包括:响应于存在针对上述目标文件的脏数据标识,从上述目标文件的元数据中获取上述目标文件的数据的存储位置;以及从获取的上述存储位置处读取上述目标文件的数据。
可选地,上述方法还包括:响应于上述目标文件尚未被分配对象标识符,不对上述目标文件执行读操作;以及修改上述目标文件的元数据。
本公开的另一个方面还提供了一种针对文件的数据删除方法,包括:响应于针对目标文件的删除请求,确定上述目标文件是否已被分配对象标识符;响应于上述目标文件已被分配对象标识符,获取针对上述目标文件的第一对象标识符;根据获取的上述第一对象标识符,从对象存储空间中删除上述目标文件的数据;以及针对上述目标文件,删除以文件存储方式存储的元数据。
可选地,上述方法还包括:响应于上述目标文件已被分配对象标识符,确定本地第一存储空间是否也存在上述目标文件的数据;以及响应于上述本地第一存储空间也存在上述目标文件的数据,从上述本地第一存储空间中删除上述目标文件的数据。
可选地,上述方法还包括:响应于上述目标文件尚未被分配对象标识符,针对上述目标文件,仅删除以文件存储方式存储的元数据。
本公开的另一个方面还提供了一种针对文件的数据写入装置,包括:第一响应单元,用于响应于针对目标文件的写请求,确定上述目标文件是否已被分配对象标识符;第二响应单元,用于响应于上述目标文件已被分配对象标识符,获取针对上述目标文件的第一对象标识符;第一读操作单元,用于根据获取的上述第一对象标识符,从对象存储空间读取上述目标文件的已有数据;写操作单元,用于基于上述写请求和读取的上述已有数据,在本地第一存储空间执行数据写操作;以及第三响应单元,用于响应于上述数据写操作执行完成,基于上述第一对象标识符将上述目标文件的数据上传至上述对象存储空间。
本公开的另一个方面还提供了一种针对文件的数据读取装置,包括:第四响应单元,用于响应于针对目标文件的读请求,确定上述目标文件是否已被分配对象标识符;第五响应单元,用于响应于上述目标文件已被分配对象标识符,获取针对上述目标文件的第一对象标识符;以及第二读操作单元,用于根据获取的上述第一对象标识符,从对象存储空间读取上述目标文件的数据。
本公开的另一个方面还提供了一种针对文件的数据删除装置,包括:第六响应单元,用于响应于针对目标文件的删除请求,确定上述目标文件是否已被分配对象标识符;第七响应单元,用于响应于上述目标文件已被分配对象标识符,获取针对上述目标文件的第一对象标识符;第一删除操作单元,用于根据获取的上述第一对象标识符,从对象存储空间中删除上述目标文件的数据;以及第二删除操作单元,用于针对上述目标文件,删除以文件存储方式存储的元数据。
本公开的另一方面还提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现本公开实施例的方法。
本公开的另一方面还提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现本公开实施例的方法。
本公开的另一方面提供了一种计算机程序,上述计算机程序包括计算机可执行指令,上述指令在被执行时用于实现本公开实施例的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1A示意性示出了相关技术中以文件存储模式存储文件的示意图;
图1B示意性示出了根据本公开实施例的以对象存储模式存储文件的示意图;
图2示意性示出了根据本公开实施例的适于针对文件的数据写入、读取和删除方法及装置的***架构;
图3示意性示出了根据本公开实施例的针对文件的数据写入方法的流程图;
图4示意性示出了根据本公开实施例的针对文件的数据读取方法的流程图;
图5示意性示出了根据本公开实施例的针对文件的数据删除方法的流程图;
图6示意性示出了根据本公开实施例的针对文件的数据写入装置的框图;
图7示意性示出了根据本公开实施例的针对文件的数据读取装置的框图;
图8示意性示出了根据本公开实施例的针对文件的数据删除装置的框图;以及
图9示意性示出了根据本公开实施例的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行***使用或者结合指令执行***使用。
传统的文件***中,文件存储一般分为元数据存储和数据存储两部分。对于本地文件***而言,元数据和数据以磁盘空间分段的方式分别进行存储。对于分布式文件***而言,如图1A所示,元数据通常由专门的元数据服务器维护,数据通常由专门的数据服务器维护。而像GlusterFS这类文件***,由于没有专门的元数据服务器维护,因此通常会将元数据分散于各数据服务器中维护。
在实现本公开实施例的过程中,发明人发现无论何种文件***,数据部分通常占据绝大部分空间。
对此,如图1B所示,本公开实施例的主要发明构思是,将文件***的数据部分剥离出来,进行对象存储,而对元数据部分依然进行文件存储。
例如,本公开的实施例提供了一种针对文件的数据写入、读取和删除方法以及能够应用该方法的针对文件的数据写入、读取和删除装置。该数据写入方法包括先响应于针对目标文件的写请求,确定上述目标文件是否已被分配对象标识符,再响应于上述目标文件已被分配对象标识符,获取针对上述目标文件的第一对象标识符,进而根据获取的上述第一对象标识符,从对象存储空间读取上述目标文件的已有数据,并基于上述写请求和读取的上述已有数据,在本地第一存储空间执行数据写操作,以及响应于上述数据写操作执行完成,基于上述第一对象标识符将上述目标文件的数据上传至上述对象存储空间。
图2示意性示出了根据本公开实施例的适于针对文件的数据写入、读取和删除方法及装置的***架构。需要注意的是,图1所示仅为可以应用本公开实施例的***架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图2所示,该***架构200包括:服务器201、客户端202、文件存储设备203和对象存储设备204。服务器201与客户端202、文件存储设备203和对象存储设备204连接。具体地,服务器201可以接收来自客户端的请求(如针对文件的数据写入、读取和删除等请求),并响应于接收到的请求,针对文件的数据和元数据进行相应的写入、读取和删除操作。其中,文件存储设备203用于存储文件的元数据,对象存储设备204(如分布式对象存储池)用于存储文件的数据。
在一些实施例中,文件存储设备203可以独立于服务器201之外,作为独立的服务器用于专门存储文件的元数据。在另一些实施例中,文件存储设备203也可以集成于服务器201内,以便用于在服务器201本地存储文件的元数据。
以下参考附图并结合具体实施例详细阐述本公开。
图3示意性示出了根据本公开实施例的针对文件的数据写入方法的流程图。
如图3所示,该方法包括操作S310~S350。
返回参考图2,该方法涉及的操作S310~S350可以由服务器201执行。
在操作S310,响应于针对目标文件的写请求,确定目标文件是否已被分配对象标识符。
由于对象存储会为存储对象分配唯一的标识符即对象标识符,因此在本公开实施例中,对文件的数据进行对象存储时,会为每个文件的作为存储对象的数据分配一个唯一的标识符,以便作为对象存储的依据。
应该理解,在本公开实施例中,如果一个文件已经分配有对象标识符,则认为该文件是一个有数据的文件(即该文件为非空文件),且该文件的数据已存储到对象存储池内。如果一个文件尚未分配有对象标识符,则认为该文件是一个新创建的空文件,尚未进行对象存储。
需要说明的是,在本公开实施例中,在对一个文件的数据进行对象存储之前,可以先为该文件随机分配一个对象标识符,并且将该对象标识符可以记录在该文件的元数据中,更具体地,可以将该对象标识符记录在该文件的元数据的扩展属性中(如xattr_oid中)。因此,操作S310可以通过解析目标文件的元数据的扩展属性信息来确定目标文件是否已被分配对象标识符。
在操作S320,响应于目标文件已被分配对象标识符,获取针对目标文件的第一对象标识符(即目标文件进行对象存储的唯一标识符)。
在操作S330,根据获取的第一对象标识符,从对象存储空间(如分布式对象存储池)读取目标文件的已有数据。
在本公开实施例中,操作S330即为根据获取的第一对象标识符,获取目标文件存储在对象存储空间中的数据。
在操作S340,基于写请求和读取的已有数据,在本地第一存储空间执行数据写操作。
需要说明的是,在本公开实施例中,响应于客户端的写请求,服务器可以为本次写操作分配一本地存储空间(本地第一存储空间),并将操作S330中根据对象标识符读取的文件的数据存储在该本地存储空间中,以便后续进行数据写操作。
换言之,在本公开实施例中,并不是直接对远程的对象存储空间进行数据写操作,而是先将远程对象存储空间中的相关文件的数据读到服务器本地,再在服务器本地的存储空间中进行数据写操作。
在操作S350,响应于数据写操作执行完成,基于第一对象标识符将目标文件的数据上传至对象存储空间。
具体地,可以异步将目标文件的数据上传至远程对象存储空间。
返回参考图2,在一个实施例中,在接收到来自客户端202的针对文件1(目标文件)的写请求后,服务器201打开该写请求所针对的文件1,进而可以先确定文件1是否是一个有数据的文件(即文件1是否已被分配对象标识符)。如果确定文件1是一个有数据的文件(即文件1已被分配对象标识符),则先获取为文件1分配的对象标识符1,再根据获取的对象标识符1,从对象存储设备204(如分布式对象存储池)读取文件1的数据X,并将数据X存储在服务器201的本地存储空间A中,然后根据写请求所请求写入文件1的数据对数据X进行数据增加写/修改写操作,最终得到数据Y,最后再根据对象标识符1将执行本次写操作后得到的数据Y提交到(即上传到)对象存储设备204,同时关闭文件1,并向客户端102返回数据写操作结果。
需要说明的是,在本公开实施例中,服务器提交数据Y之后,数据Y例如可以以覆盖的方式(即覆盖掉对象存储设备204中原本存储的文件的数据X)写入对象存储设备204中的。
进一步,在本公开实施例中,为了提高服务器201本地存储空间的利用率,在服务器将数据Y提交后,例如还可以将数据Y从服务器的本地存储空间中删除,以便释放出相应的本地存储空间。
通过本公开实施例,通过将文件的数据部分存储在对象存储空间中,可以充分利用大容量、廉价的对象存储方式。并且为了避免传统的应用由于使用POSIX接口进行数据存储和访问,无法直接使用RESTful接口访问对象存储空间,可以通过服务器在客户端和对象存储空间之间建立桥梁,以使客户端能够通过服务器间接使用RESTful接口访问对象存储空间。
作为一种可选的实施例,该数据写入方法例如还可以包括如下操作。
响应于数据写操作执行完成,修改目标文件的元数据。
以文件存储方式存储修改后的元数据。
具体地,在本公开实施例中,针对文件每执行一次数据写入操作,都可以修改该文件的元数据(例如,可以增加本次写入数据的时间和内容等)。
并且,在本公开实施例中,文件的元数据可以与文件存储中元数据的存储方式一致,即可以将文件的元数据存储在专门的元数据服务器中,或者可以将文件的元数据存储在分布式数据服务器中,或者可以将文件的元数据存储在服务器本地。
通过本公开实施例,对于文件而言,可以只改变文件的数据的存储方式,即将文件的数据由文件存储变为对象存储,而保留文件的元数据的原存储方式,即继续以文件存储方式存储文件的元数据。由此可以将占存储空间的大部分的数据存储为对象存储,在实现充分利用对象存储的优点的同时,还可以充分利用文件***的目录树结构和元数据的支持。
作为一种可选的实施例,响应于不存在针对目标文件的脏数据标识,执行操作S330根据获取的第一对象标识符,从对象存储空间读取目标文件的已有数据的相关操作。
应该理解,如果用户B访问(包括但不限于数据写入、读取和删除等操作)文件2时用户A如果正在对文件2执行数据写操作,则可能导致用户B防问的数据是错误的。为了解决这一问题,对于正在执行数据操作的文件,可以设置脏数据标识,以避免其他用户访问该文件时出错。
具体地,针对文件设置的脏数据标识可以记录在文件的元数据的扩展属性中。
基于此,在执行操作S330之前,可以先确定目标文件是否存在脏数据标识,例如可以通过解析目标文件的元数据的扩展属性信息来确定目标文件是否存在脏数据标识,响应于目标文件不存在脏数据标识,执行操作S330。由此可以保证本次数据写操作所针对的文件的数据是准确的。
此外,作为另一个可选的实施例,如果目标文件存在脏数据标识,则表示该目标文件尚未同步至远程的对象存储空间。此时,响应于存在针对目标文件的脏数据标识,可以先解析目标文件的元数据的扩展属性信息,以便确定服务器为目标文件分配的本地存储空间,然后对本地存储空间中存储的该目标文件的数据进行合并操作(如进行合并修改)。
作为一种可选的实施例,该方法例如还可以包括:在从对象存储空间读取目标文件的已有数据的同时或之后,设置针对已有数据的脏数据标识(即针对目标文件的脏数据标识)。
作为一种可选的实施例,该方法例如还可以包括:响应于基于第一对象标识符将目标文件的数据上传至对象存储空间后,清除脏数据标识。
通过本公开实施例,对于执行完成数据操作的文件,可以及时清除响应的脏数据标识,以便于其他用户对该文件的访问。
作为一种可选的实施例,该数据写入方法例如还可以包括如下操作。
响应于目标文件尚未被分配对象标识符,为目标文件分配第二对象标识符。
基于写请求,在本地第二存储空间(可以与第一存储空间相同或不同)执行数据写操作。
响应于数据写操作执行完成,基于第二对象标识符将目标文件的数据上传至对象存储空间。
返回参考图2,在一个实施例中,在接收到来自客户端102的针对文件1(目标文件)的写请求后,服务器101打开该写请求所针对的文件1,进而可以先确定文件1是否是一个有数据的文件(即文件1是否已被分配对象标识符)。如果确定文件1是一个没有数据的空文件(即文件1尚未被分配对象标识符),则例如可以先为文件1随机分配一个64位的对象标识符2,同时在服务器101本地为文件1分配一个相应的本地存储空间,然后将该写请求所请求写入文件1的数据Z写入这个本地存储空间,待写操作执行完成后,再基于对象标识符2将数据Z提交至对象存储设备104。
需要说明的是,在本公开实施例中,为文件随机分配的对象标识符可以记录在文件的元数据中。更具体地,可以记录在文件的元数据的扩展属性中(如xattr_oid中)。
图4示意性示出了根据本公开实施例的针对文件的数据读取方法的流程图。
如图4所示,该方法包括操作S410~S430。
返回参考图2,该方法涉及的操作S410~S430可以由服务器201执行。
在操作S410,响应于针对目标文件的读请求,确定目标文件是否已被分配对象标识符。
由于对象存储会为存储对象分配唯一的标识符即对象标识符,因此在本公开实施例中,对文件的数据进行对象存储时,会为每个文件的作为存储对象的数据分配一个唯一的标识符,以便作为对象存储的依据。
应该理解,在本公开实施例中,如果一个文件已经分配有对象标识符,则认为该文件是一个有数据的文件(即该文件为非空文件),且该文件的数据已存储到对象存储池内。如果一个文件尚未分配有对象标识符,则认为该文件是一个新创建的空文件,尚未进行对象存储。
基于此,在本公开实施例中,如果目标文件的数据是以对象存储方式存储的,那么在执行数据读取操作之前,可以先确定目标文件是否已被分配对象标识符。如果确定目标文件已被分配对象标识符,则表明目标文件是非空文件,可以执行数据读取的相关操作。否则,如果确定目标文件尚未被分配对象标识符,则表明目标文件是空文件,无需对其执行数据读取的相关操作,并向客户端返回请求失败的相关信息。
此外,在本公开实施例中,可以将目标文件的对象标识符记录在该目标文件的元数据的扩展属性中。因此可以通过解析目标文件的元数据的扩展属性信息来确定目标文件是否已分配有对象标识符。
在操作S420,响应于目标文件已被分配对象标识符,获取针对目标文件的第一对象标识符。
在操作S430,根据获取的第一对象标识符,从对象存储空间读取目标文件的数据。
返回参考图2,在一个实施例中,在接收到来自客户端202的针对文件1(目标文件)的读请求后,服务器201打开该读请求所针对的文件1,进而可以先确定文件1是否是一个有数据的文件(即文件1是否已被分配对象标识符)。如果确定文件1是一个有数据的文件(即文件1已被分配对象标识符),则先获取为文件1分配的对象标识符1,再根据获取的对象标识符1,从对象存储设备204(如分布式对象存储池)读取文件1的数据X。
通过本公开实施例,通过将文件的数据部分存储在对象存储空间中,可以充分利用大容量、廉价的对象存储方式。并且为了避免传统的应用由于使用POSIX接口进行数据存储和访问,无法直接使用RESTful接口访问对象存储空间,可以通过服务器在客户端和对象存储空间之间建立桥梁,以使客户端能够通过服务器间接使用RESTful接口访问对象存储空间。
作为一种可选的实施例,该数据读取方法例如还可以包括如下操作。
响应于数据读操作执行完成,修改目标文件的元数据。
以文件存储方式存储修改后的元数据。
具体地,在本公开实施例中,针对文件每执行一次数据读取操作,都可以修改该文件的元数据(例如,可以增加本次读取数据的时间和内容等)。
并且,在本公开实施例中,文件的元数据可以与文件存储中元数据的存储方式一致,即可以将文件的元数据存储在专门的元数据服务器中,或者可以将文件的元数据存储在分布式数据服务器中,或者可以将文件的元数据存储在服务器本地。
通过本公开实施例,对于文件而言,可以只改变文件的数据的存储方式,即将文件的数据由文件存储变为对象存储,而保留文件的元数据的原存储方式,即继续以文件存储方式存储文件的元数据。由此可以将占存储空间的大部分的数据存储为对象存储,在实现充分利用对象存储的优点的同时,还可以充分利用文件***的目录树结构和元数据的支持。
作为一种可选的实施例,响应于不存在针对目标文件的脏数据标识,执行操作S430根据获取的第一对象标识符,从对象存储空间读取目标文件的数据的相关操作。
应该理解,如果用户B访问(包括但不限于数据写入、读取和删除等操作)文件2时用户A如果正在对文件2执行数据写操作,则可能导致用户B访问的数据是错误的。为了解决这一问题,对于正在执行数据操作的文件,可以设置脏数据标识,以避免其他用户访问该文件时出错。
具体地,针对文件设置的脏数据标识可以记录在文件的元数据的扩展属性中。
基于此,在执行操作S430之前,可以先确定目标文件是否存在脏数据标识,例如可以通过解析目标文件的元数据的扩展属性信息来确定目标文件是否存在脏数据标识,响应于目标文件不存在脏数据标识,执行操作S430。由此可以保证本次数据读取操作所读取的数据是准确的。
作为一种可选的实施例,该数据读取方法例如还可以包括如下操作。
响应于存在针对目标文件的脏数据标识,从目标文件的元数据中获取目标文件的数据的存储位置。
从获取的存储位置处读取目标文件的数据。
具体地,如果目标文件存在脏数据标识,则表示该目标文件尚未同步至远程的对象存储空间。此时,响应于存在针对目标文件的脏数据标识,可以先解析目标文件的元数据的扩展属性信息,以便确定服务器为目标文件分配的本地存储空间,然后对本地存储空间中存储的该目标文件的数据进行合并操作(比如对在本地完成修改但尚未提交的数据直接进行读取)。
作为一种可选的实施例,该数据读取方法例如还可以包括:响应于目标文件尚未被分配对象标识符,不对目标文件执行读操作,但修改目标文件的元数据。
返回参考图2,在一个实施例中,在接收到来自客户端202的针对文件1(目标文件)的读请求后,服务器201打开该读请求所针对的文件1,进而可以先确定文件1是否是一个有数据的文件(即文件1是否已被分配对象标识符)。如果确定文件1是一个没有数据的文件(即文件1尚未被分配对象标识符),则不对文件1执行数据读取操作,但是修改文件1的元数据,例如在文件1的元数据中增加关于本次访问的时间、用户等信息。
需要说明的是,与对文件执行数据写操作类似,在本公开实施例中,针对文件每执行一次数据读取操作,都可以修改该文件的元数据(例如,可以增加本次读取数据的时间、内容和用户等)。
并且,在本公开实施例中,文件的元数据可以与文件存储中元数据的存储方式一致,即可以将文件的元数据存储在专门的元数据服务器中,或者可以将文件的元数据存储在分布式数据服务器中,或者可以将文件的元数据存储在服务器本地。
通过本公开实施例,对于文件而言,可以只改变文件的数据的存储方式,即将文件的数据由文件存储变为对象存储,而保留文件的元数据的原存储方式,即继续以文件存储方式存储文件的元数据。由此可以将占存储空间的大部分的数据存储为对象存储,实现充分利用对象存储的优点的目的。
图5示意性示出了根据本公开实施例的针对文件的数据删除方法的流程图。
如图5所示,该数据删除方法例如可以包括操作S510~S540。
返回参考图2,该方法涉及的操作S510~S540可以由服务器201执行。
操作S510,响应于针对目标文件的删除请求,确定目标文件是否已被分配对象标识符。
在本公开实施例中,操作S510与前述实施例中描述的操作S310和操作S410类似,在此不再赘述。
操作S520,响应于目标文件已被分配对象标识符,获取针对目标文件的第一对象标识符。
操作S530,根据获取的第一对象标识符,从对象存储空间中删除目标文件的数据。
需要说明的是,本公开实施例中的操作S530与前述实施例中描述的操作S410类似,即针对目标文件,从对象存储空间中删除目标文件的数据与读取目标文件的数据类似,在此不再赘述。
操作S540,针对目标文件,删除以文件存储方式存储的元数据。
返回参考图2,例如可以删除文件存储设备103中存储的关于目标文件的相关元数据。
返回参考图2,在一个实施例中,在接收到来自客户端202的针对文件1(目标文件)的删除请求后,服务器201打开该删除请求所针对的文件1,进而可以先确定文件1是否是一个有数据的文件(即文件1是否已被分配对象标识符)。如果确定文件1是一个有数据的文件(即文件1已被分配对象标识符),则先获取为文件1分配的对象标识符1,再根据获取的对象标识符1,从对象存储设备204(如分布式对象存储池)直接删除文件1的数据X,同时从文件存储设备204(如元数据服务器)直接删除文件1的所有元数据。
通过本公开实施例,通过将文件的数据部分存储在对象存储空间中,可以充分利用大容量、廉价的对象存储方式。并且为了避免传统的应用由于使用POSIX接口进行数据存储和访问,无法直接使用RESTful接口访问对象存储空间,可以通过服务器在客户端和对象存储空间之间建立桥梁,以使客户端能够通过服务器间接使用RESTful接口访问对象存储空间。
作为一种可选的实施例,该数据删除方法例如还可以包括如下操作。
响应于目标文件已被分配对象标识符,确定本地第一存储空间是否也存在目标文件的数据。
响应于本地第一存储空间也存在目标文件的数据,从本地第一存储空间中删除目标文件的数据。
如前述实施例所述,为了避免其他用户访问该文件时出错,对于正在服务器本地存储空间执行相关数据操作的文件,可以设置脏数据标识。基于此,在删除文件时,还可以根据该文件是否存在脏数据标识来确定服务器本地存储空间(本地第一存储空间)是否也存在目标文件的数据。如果确定服务器本地存储空间也存在目标文件的数据,则同时删除服务器本地存储空间中存储的目标文件的相关数据。
通过本公开实施例,可以防止漏删服务器本地存储空间中存储的相关文件的数据。
作为一种可选的实施例,该数据删除方法例如还可以包括响应于目标文件尚未被分配对象标识符,针对目标文件,仅删除以文件存储方式存储的元数据。
应该理解,如果目标文件尚未被分配对象标识符,则表明该目标文件是空文件,即无论是对象存储空间,还是服务器的本地存储空间中,都没有存储关于该目标文件的相关数据。因此,在删除目标文件时,可以仅删除以文件存储方式存储的元数据。
图6示意性示出了根据本公开实施例的针对文件的数据写入装置的框图。
如图6所示,针对文件的数据写入装置600例如可以包括第一响应单元610、第二响应单元620、第一读操作单元630、写操作单元640和第三响应单元650。该数据写入装置可以执行上面参考方法实施例部分描述的针对文件的数据写入方法,在此不再赘述。
具体地,第一响应单元610,用于响应于针对目标文件的写请求,确定目标文件是否已被分配对象标识符。
第二响应单元620,用于响应于目标文件已被分配对象标识符,获取针对目标文件的第一对象标识符。
第一读操作单元630,用于根据获取的第一对象标识符,从对象存储空间读取目标文件的已有数据。
写操作单元640,用于基于写请求和读取的已有数据,在本地第一存储空间执行数据写操作。
第三响应单元650,用于响应于数据写操作执行完成,基于第一对象标识符将目标文件的数据上传至对象存储空间。
通过本公开实施例,通过将文件的数据部分存储在对象存储空间中,可以充分利用大容量、廉价的对象存储方式。并且为了避免传统的应用由于使用POSIX接口进行数据存储和访问,无法直接使用RESTful接口访问对象存储空间,可以通过服务器在客户端和对象存储空间之间建立桥梁,以使客户端能够通过服务器间接使用RESTful接口访问对象存储空间。
图7示意性示出了根据本公开实施例的针对文件的数据读取装置的框图。
如图7所示,针对文件的数据读取装置700例如可以包括第四响应单元710、第五响应单元720和第二读操作单元730。该数据读取装置可以执行上面参考方法实施例部分描述的针对文件的数据读取方法,在此不再赘述。
具体地,第四响应单元710,用于响应于针对目标文件的读请求,确定目标文件是否已被分配对象标识符。
第五响应单元720,用于响应于目标文件已被分配对象标识符,获取针对目标文件的第一对象标识符。
第二读操作单元730,用于根据获取的第一对象标识符,从对象存储空间读取目标文件的数据。
图8示意性示出了根据本公开实施例的针对文件的数据删除装置的框图。
如图8所示,针对文件的数据删除装置800例如可以包括第六响应单元810、第七响应单元820、第一删除操作单元830和第二删除操作单元840。该数据读取装置可以执行上面参考方法实施例部分描述的针对文件的数据读取方法,在此不再赘述。
具体地,第六响应单元810,用于响应于针对目标文件的删除请求,确定目标文件是否已被分配对象标识符。
第七响应单元820,用于响应于目标文件已被分配对象标识符,获取针对目标文件的第一对象标识符。
第一删除操作单元830,用于根据获取的第一对象标识符,从对象存储空间中删除目标文件的数据。
第二删除操作单元840,用于针对目标文件,删除以文件存储方式存储的元数据。
需要说明的是,装置部分的实施例方式与方法部分的实施例方式对应类似,并且所达到的技术效果也对应类似,在此不再赘述。
根据本公开的实施例的模块中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一响应单元610、第二响应单元620、第一读操作单元630、写操作单元640和第三响应单元650中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一响应单元610、第二响应单元620、第一读操作单元630、写操作单元640和第三响应单元650中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一响应单元610、第二响应单元620、第一读操作单元630、写操作单元640和第三响应单元650中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图9示意性示出了根据本公开实施例的电子设备的框图。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900包括处理器910、计算机可读存储介质920。该电子设备900可以执行根据本公开实施例的方法。
具体地,处理器910例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器910还可以包括用于缓存用途的板载存储器。处理器910可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质920,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质920可以包括计算机程序921,该计算机程序921可以包括代码/计算机可执行指令,其在由处理器910执行时使得处理器910执行根据本公开实施例的方法或其任何变形。
计算机程序921可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序921中的代码可以包括一个或多个程序模块,例如包括921A、模块921B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器910执行时,使得处理器910可以执行根据本公开实施例的方法或其任何变形。
根据本公开的实施例,第一响应单元610、第二响应单元620、第一读操作单元630、写操作单元640和第三响应单元650中的至少一个可以实现为参考图9描述的计算机程序模块,其在被处理器910执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (19)
1.一种针对文件的数据写入方法,包括:
响应于针对目标文件的写请求,确定所述目标文件是否已被分配对象标识符;
响应于所述目标文件已被分配对象标识符,获取针对所述目标文件的第一对象标识符;
根据获取的所述第一对象标识符,从对象存储空间读取所述目标文件的已有数据;
基于所述写请求和读取的所述已有数据,在本地第一存储空间执行数据写操作;以及
响应于所述数据写操作执行完成,基于所述第一对象标识符将所述目标文件的数据上传至所述对象存储空间。
2.根据权利要求1所述的方法,其中,所述方法还包括:
响应于所述数据写操作执行完成,修改所述目标文件的元数据;以及
以文件存储方式存储修改后的元数据。
3.根据权利要求1所述的方法,其中,
响应于不存在针对所述目标文件的脏数据标识,执行所述根据获取的所述第一对象标识符,从对象存储空间读取所述目标文件的已有数据的相关操作。
4.根据权利要求1所述的方法,其中,所述方法还包括:在所述从对象存储空间读取所述目标文件的已有数据的同时或之后,
设置针对所述已有数据的脏数据标识。
5.根据权利要求4所述的方法,其中,所述方法还包括:
响应于基于所述第一对象标识符将所述目标文件的数据上传至所述对象存储空间后,清除所述脏数据标识。
6.根据权利要求1所述的方法,其中,所述方法还包括:
响应于所述目标文件尚未被分配对象标识符,为所述目标文件分配第二对象标识符;
基于所述写请求,在本地第二存储空间执行所述数据写操作;以及
响应于所述数据写操作执行完成,基于所述第二对象标识符将所述目标文件的数据上传至所述对象存储空间。
7.一种针对文件的数据读取方法,包括:
响应于针对目标文件的读请求,确定所述目标文件是否已被分配对象标识符;
响应于所述目标文件已被分配对象标识符,获取针对所述目标文件的第一对象标识符;以及
根据获取的所述第一对象标识符,从对象存储空间读取所述目标文件的数据。
8.根据权利要求7所述的方法,其中,所述方法还包括:
响应于所述数据读操作执行完成,修改所述目标文件的元数据;以及
以文件存储方式存储修改后的元数据。
9.根据权利要求7所述的方法,其中,
响应于不存在针对所述目标文件的脏数据标识,执行所述根据获取的所述第一对象标识符,从对象存储空间读取所述目标文件的数据的相关操作。
10.根据权利要求9所述的方法,其中,所述方法还包括:
响应于存在针对所述目标文件的脏数据标识,从所述目标文件的元数据中获取所述目标文件的数据的存储位置;以及
从获取的所述存储位置处读取所述目标文件的数据。
11.根据权利要求7所述的方法,其中,所述方法还包括:响应于所述目标文件尚未被分配对象标识符,
不对所述目标文件执行读操作;以及
修改所述目标文件的元数据。
12.一种针对文件的数据删除方法,包括:
响应于针对目标文件的删除请求,确定所述目标文件是否已被分配对象标识符;
响应于所述目标文件已被分配对象标识符,获取针对所述目标文件的第一对象标识符;
根据获取的所述第一对象标识符,从对象存储空间中删除所述目标文件的数据;以及
针对所述目标文件,删除以文件存储方式存储的元数据。
13.根据权利要求12所述的方法,其中,所述方法还包括:
响应于所述目标文件已被分配对象标识符,确定本地第一存储空间是否也存在所述目标文件的数据;以及
响应于所述本地第一存储空间也存在所述目标文件的数据,从所述本地第一存储空间中删除所述目标文件的数据。
14.根据权利要求12所述的方法,其中,所述方法还包括:
响应于所述目标文件尚未被分配对象标识符,针对所述目标文件,仅删除以文件存储方式存储的元数据。
15.一种针对文件的数据写入装置,包括:
第一响应单元,用于响应于针对目标文件的写请求,确定所述目标文件是否已被分配对象标识符;
第二响应单元,用于响应于所述目标文件已被分配对象标识符,获取针对所述目标文件的第一对象标识符;
第一读操作单元,用于根据获取的所述第一对象标识符,从对象存储空间读取所述目标文件的已有数据;
写操作单元,用于基于所述写请求和读取的所述已有数据,在本地第一存储空间执行数据写操作;以及
第三响应单元,用于响应于所述数据写操作执行完成,基于所述第一对象标识符将所述目标文件的数据上传至所述对象存储空间。
16.一种针对文件的数据读取装置,包括:
第四响应单元,用于响应于针对目标文件的读请求,确定所述目标文件是否已被分配对象标识符;
第五响应单元,用于响应于所述目标文件已被分配对象标识符,获取针对所述目标文件的第一对象标识符;以及
第二读操作单元,用于根据获取的所述第一对象标识符,从对象存储空间读取所述目标文件的数据。
17.一种针对文件的数据删除装置,包括:
第六响应单元,用于响应于针对目标文件的删除请求,确定所述目标文件是否已被分配对象标识符;
第七响应单元,用于响应于所述目标文件已被分配对象标识符,获取针对所述目标文件的第一对象标识符;
第一删除操作单元,用于根据获取的所述第一对象标识符,从对象存储空间中删除所述目标文件的数据;以及
第二删除操作单元,用于针对所述目标文件,删除以文件存储方式存储的元数据。
18.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至14中任一项所述的方法。
19.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1至14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010122119.1A CN111339046B (zh) | 2020-02-26 | 2020-02-26 | 针对文件的数据写入、读取和删除方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010122119.1A CN111339046B (zh) | 2020-02-26 | 2020-02-26 | 针对文件的数据写入、读取和删除方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111339046A true CN111339046A (zh) | 2020-06-26 |
CN111339046B CN111339046B (zh) | 2023-09-19 |
Family
ID=71182006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010122119.1A Active CN111339046B (zh) | 2020-02-26 | 2020-02-26 | 针对文件的数据写入、读取和删除方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111339046B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567427A (zh) * | 2010-12-30 | 2012-07-11 | ***通信集团公司 | 一种对象数据处理方法及装置 |
CN103095687A (zh) * | 2012-12-19 | 2013-05-08 | 华为技术有限公司 | 元数据处理方法及装置 |
CN103270499A (zh) * | 2011-12-21 | 2013-08-28 | 华为技术有限公司 | 日志存储方法及*** |
CN105718484A (zh) * | 2014-12-04 | 2016-06-29 | 中兴通讯股份有限公司 | 写文件、读文件、删除文件、查询文件的方法及客户端 |
US20170093798A1 (en) * | 2015-09-24 | 2017-03-30 | Netapp, Inc. | Network-attached storage gateway validation |
CN107239319A (zh) * | 2016-03-29 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 一种虚拟机的数据存储方法和装置 |
CN107911461A (zh) * | 2017-11-24 | 2018-04-13 | 网宿科技股份有限公司 | 云存储***中的对象处理方法、存储服务器及云存储*** |
CN108696472A (zh) * | 2017-04-05 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 请求处理方法和装置 |
CN109656897A (zh) * | 2018-12-04 | 2019-04-19 | 郑州云海信息技术有限公司 | 基于redis的对象存储网关***及数据调用方法 |
CN110716947A (zh) * | 2019-10-24 | 2020-01-21 | 网易(杭州)网络有限公司 | 一种数据访问的方法、装置、计算机设备及存储介质 |
-
2020
- 2020-02-26 CN CN202010122119.1A patent/CN111339046B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567427A (zh) * | 2010-12-30 | 2012-07-11 | ***通信集团公司 | 一种对象数据处理方法及装置 |
CN103270499A (zh) * | 2011-12-21 | 2013-08-28 | 华为技术有限公司 | 日志存储方法及*** |
CN103095687A (zh) * | 2012-12-19 | 2013-05-08 | 华为技术有限公司 | 元数据处理方法及装置 |
CN105718484A (zh) * | 2014-12-04 | 2016-06-29 | 中兴通讯股份有限公司 | 写文件、读文件、删除文件、查询文件的方法及客户端 |
US20170093798A1 (en) * | 2015-09-24 | 2017-03-30 | Netapp, Inc. | Network-attached storage gateway validation |
CN107239319A (zh) * | 2016-03-29 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 一种虚拟机的数据存储方法和装置 |
CN108696472A (zh) * | 2017-04-05 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 请求处理方法和装置 |
CN107911461A (zh) * | 2017-11-24 | 2018-04-13 | 网宿科技股份有限公司 | 云存储***中的对象处理方法、存储服务器及云存储*** |
CN109656897A (zh) * | 2018-12-04 | 2019-04-19 | 郑州云海信息技术有限公司 | 基于redis的对象存储网关***及数据调用方法 |
CN110716947A (zh) * | 2019-10-24 | 2020-01-21 | 网易(杭州)网络有限公司 | 一种数据访问的方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111339046B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9417971B2 (en) | Cascade ordering | |
US10169165B2 (en) | Restoring data | |
CN103080896B (zh) | 对访问重新排序以减少对磁带介质的总查找时间 | |
US9569122B2 (en) | System, method and a non-transitory computer readable medium for transaction aware snapshot | |
KR101870521B1 (ko) | 스토리지 저널링을 개선하는 방법 및 시스템 | |
US20150032690A1 (en) | Virtual synchronization with on-demand data delivery | |
US9176853B2 (en) | Managing copy-on-writes to snapshots | |
FR3033061A1 (zh) | ||
KR20140060308A (ko) | 사용 비트맵을 갖는 저장 장치에 대한 효율적 액세스 기법 | |
US8862819B2 (en) | Log structure array | |
US10346368B2 (en) | Method and apparatus of per-block-group journaling for ordered mode journaling file system | |
KR20070089603A (ko) | 정보 처리 장치 및 정보 처리 방법과 컴퓨터ㆍ프로그램 | |
CN111158858B (zh) | 一种虚拟机的克隆方法和装置,及计算机可读存储介质 | |
US20160004715A1 (en) | Minimizing Metadata Representation In A Compressed Storage System | |
CN111581171A (zh) | 日志处理方法、装置、计算设备和介质 | |
CN111913664B (zh) | 一种数据写入方法及装置 | |
CN109144403B (zh) | 一种用于云盘模式切换的方法与设备 | |
CN111339046B (zh) | 针对文件的数据写入、读取和删除方法及装置 | |
JP2005215940A (ja) | ストレージシステム、サーバ装置及び先行コピーデータ生成方法 | |
CN111309526A (zh) | 文件备份、恢复方法及其装置 | |
US9824718B2 (en) | Recording and playback device | |
JPWO2018186455A1 (ja) | 不揮発性メモリにおける空き容量管理方法、及び不揮発性メモリを含む情報記録装置にデータを記録するアクセス装置、情報記録装置および情報記録システム | |
JP4480592B2 (ja) | ファイルシステム | |
US20180374510A1 (en) | Image processing device, and operation method for image processing device | |
US20170052705A1 (en) | Listing storage media |
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 |