对象存储系统中的对象数据的更新方法和更新装置的制造方法
【技术领域】
[0001]本申请涉及计算机技术领域,具体涉及数据存储技术领域,尤其涉及对象存储系统中的对象数据的更新方法和更新装置。
【背景技术】
[0002]在云计算服务中,对象存储服务是一个非常重要的基础服务。对象存储服务将数据作为对象写在用户的存储区域中,用户可以写入、读取和删除该存储区域中的对象。
[0003]在现有的对象存储系统中,可以支持的最大单个对象数据的大小为5T。现有的对象存储系统在进行数据存储时,通常采用将数据切分成小块存储,并使用元数据(metadata)来维护对象和各小块数据之间的关系。
[0004]—般而言,用户对数据的操作包括复制操作和删除操作。
[0005]对删除操作而言,现有的技术方案可以概括为两种:
[0006]1、直接删除:用户发起删除对象的操作之后,系统就直接删除该对象相关的数据块和metadata。
[0007]2、垃圾回收:删除时并不立即释放物理空间,而是采用惰性策略,在周期性的常规垃圾扫描才回收物理空间。
[0008]对复制操作而言,现有技术的方案为直接复制。
[0009]对于现有的直接复制和直接删除操作,其处理逻辑复杂,容易失败。特别地,当对象数据较大时,甚至会涉及到几十万个数据块的复制/删除,若处理过程中出现异常或失败,不仅可能导致垃圾数据或者数据不完整的情况发生,还容易导致metadata数据不一致的情况发生。此外,当对象数据较大时,复制/删除操作的过程时间长,导致对象存储系统压力较大。若多个用户同时发起大量的复制/删除操作,容易使系统负载陡然上升,甚至无法执行相应的操作。
[0010]对于现有的删除操作中的垃圾回收的方案,其主要缺点是对存储空间的浪费。
【发明内容】
[0011]本申请的目的在于提出一种改进的对象存储系统中的对象数据的更新方法和更新装置,来解决以上【背景技术】部分提到的技术问题。
[0012]第一方面,本申请提供了一种对象存储系统中的对象数据更新方法,其中,对象存储系统中存储有多个对象数据,每个对象数据包括元数据和分片存储的实际数据,方法包括:接收用户的对象数据更新请求,其中,对象数据更新请求包括更新请求的类型和待更新的对象数据的身份信息;基于待更新的对象数据的身份信息获取待更新的对象数据的元数据;基于更新请求的类型对待更新的对象数据的元数据执行第一预定操作;基于待更新的对象数据的身份信息获取待更新的对象数据的实际数据;以及基于更新请求的类型对待更新的对象数据的实际数据执行第二预定操作。
[0013]在一些实施例中,更新请求的类型包括复制请求,待更新的对象数据包括待复制对象数据,待复制对象数据的身份信息包括复制对象数据的源存储地址信息和目标存储地址信息;基于更新请求的类型对待更新的对象数据的元数据执行第一预定操作包括:将待复制对象数据的元数据作为目标对象数据的元数据存储至目标存储地址;基于更新请求的类型对待更新的对象数据的实际数据执行第二预定操作包括:将待复制对象数据的实际数据作为目标对象数据的实际数据存储到目标存储地址。
[0014]在一些实施例中,将待复制对象数据的元数据作为目标对象数据的元数据存储至目标存储地址包括:在待复制对象数据的元数据中,添加复制任务标识。
[0015]在一些实施例中,待复制对象数据的元数据包括待复制对象数据的实际数据的当前分片信息;在将待复制对象数据的实际数据复制到目标存储地址,生成目标对象数据的实际数据之后,方法还包括:删除复制任务标识;以及更新目标对象数据的元数据,使得目标对象数据的元数据包括目标对象数据的实际数据的当前分片信息。
[0016]在一些实施例中,更新请求的类型包括删除请求;待更新的对象数据包括待删除对象数据;待删除对象数据的元数据包括待删除对象数据的实际数据的当前分片信息以及待删除对象数据的实际数据的历史分片信息;基于更新请求的类型对待更新的对象数据的元数据执行第一预定操作包括:删除待删除对象数据的实际数据的当前分片信息;基于更新请求的类型对待更新的对象数据的实际数据执行第二预定操作包括:删除待删除对象数据的实际数据。
[0017]在一些实施例中,在删除待删除对象数据的实际数据之后,方法还包括:删除待删除对象数据的元数据中的历史分片信息。
[0018]在一些实施例中,对象数据更新请求包括用户身份信息;接收用户的对象数据更新请求包括:基于用户身份信息确定用户的操作权限;基于待更新的对象数据的身份信息获取待更新的对象数据的元数据包括:基于用户具有预定操作权限,获取待更新的对象数据的元数据;基于待更新的对象数据的身份信息获取待更新的对象数据的实际数据包括:基于用户具有预定操作权限,获取待更新的对象数据的实际数据。
[0019]第二方面,本申请提供了一种对象存储系统中的对象数据更新装置,其中,对象存储系统中存储有多个对象数据,每个对象数据包括元数据和分片存储的实际数据,装置包括:接收模块,配置用于接收用户的对象数据更新请求,其中,对象数据更新请求包括更新请求的类型和待更新的对象数据的身份信息;第一获取模块,配置用于基于待更新的对象数据的身份信息获取待更新的对象数据的元数据;第一执行模块,配置用于基于更新请求的类型对待更新的对象数据的元数据执行第一预定操作;第二获取模块,配置用于基于待更新的对象数据的身份信息获取待更新的对象数据的实际数据;以及第二执行模块,配置用于基于更新请求的类型对待更新的对象数据的实际数据执行第二预定操作。
[0020]在一些实施例中,更新请求的类型包括复制请求,待更新的对象数据包括待复制对象数据;待复制对象数据的身份信息包括待复制对象数据的存储地址信息和目标存储地址信息;第一执行模块包括第一复制单元,配置用于将待复制对象数据的元数据作为目标对象数据的元数据存储至目标存储地址;第二执行模块包括第二复制单元,配置用于将待复制对象数据的实际数据作为目标对象数据的实际数据存储到目标存储地址。
[0021]在一些实施例中,第一复制单元进一步配置用于:在待复制对象数据的元数据中,添加复制任务标识。
[0022]在一些实施例中,待复制对象数据的元数据包括待更新的对象数据的实际数据的当前分片信息;装置还包括元数据更新模块,配置用于:在第二复制单元将待复制对象数据的实际数据作为目标对象数据的实际数据存储到目标存储地址之后,删除复制任务标识,以及更新目标对象数据的元数据,使得目标对象数据的元数据包括目标对象数据的实际数据的当前分片信息。
[0023]在一些实施例中,更新请求的类型包括删除请求;待更新的对象数据包括待删除对象数据;待删除对象数据的元数据包括待删除对象数据的实际数据的当前分片信息以及待删除对象数据的实际数据的历史分片信息;第一执行模块包括第一删除单元,配置用于删除待删除对象数据的元数据中的当前分片信息;第二执行模块包括第二删除单元,配置用于删除待删除对象数据的实际数据。
[0024]在一些实施例中,第二删除单元进一步配置用于:在删除待删除对象数据的实际数据之后,删除待删除对象数据的元数据中的历史分片信息。
[0025]在一些实施例中,对象数据更新请求包括用户身份信息;接收模块还包括权限确定单元,配置用于基于用户身份信息确定用户的操作权限;第一执行模块进一步配置用于:基于权限确定单元确定的用户具有预定操作权限,获取待更新的对象数据的元数据;第二执行模块进一步配置用于:基于权限确定单元确定的用户具有预定操作权限,获取待更新的对象数据的实际数据。
[0026]本申请提供的对象存储系统中的对象数据的更新方法和更新装置,在用户请求复制/删除对象数据时,通过分别对对象数据的元数据和实际数据执行复制/删除操作,从而提高复制/删除操作的效率。
【附图说明】