本技术涉及存储,尤其涉及一种对象列表获取方法及装置。
背景技术:
1、随着非结构化数据的爆发式增长,对象存储应运而生。对象存储为扁平的二层架构,可快速查找所需对象,非常适合于存储海量非结构化数据,可用于存储海量图片数据、医疗保险监控等视频影像数据等。
2、桶和对象为对象存储中存储的基本实体。其中,一个对象是一个文件的数据及其相关属性信息的集合体,包括对象名称、对象数据以及对象元数据;桶为用于保存对象的容器。
3、对于启动多版本功能的桶,其可存储同一对象的多个版本,并通过数据库记录桶内每一个对象的对象信息,比如,桶名、对象名、存储时间、版本标识、删除标记等。
4、当需要获取桶内最新版本对象列表时,针对每一个对象,通过比较对象所对应多个版本的存储时间,来确定当前对象的最新版本,然后,判断该最新版本对象是否带有删除标记,如果带有删除标记,则不能在最新版本对象列表中列出该最新版本对象,反之,列出该最新版本对象。
5、可以看出,当数据库中存在大量多版本对象,或者,存在大量带有删除标记的对象时,获取最新版本对象列表的效率会显著下降。
技术实现思路
1、有鉴于此,本技术提出一种对象列表获取方法及装置,用以提升获取最新版本对象列表的效率。
2、为实现上述申请目的,本技术提供了如下技术方案:
3、第一方面,本技术提供一种对象列表获取方法,应用于对象存储系统包括的存储节点,所述方法包括:
4、如果接收到指示将第一对象写入目标桶的指令,且确定所述目标桶已开启多版本功能,获取所述第一对象的对象信息,该对象信息包括版本标识;
5、将获取的所述第一对象的对象信息添加到数据库的多版本信息表中,所述数据库还包括最新版本信息表;
6、如果确定所述最新版本信息表中记录有所述第一对象的对象信息,更新所述最新版本信息表中所述第一对象的版本标识为当前获取的所述第一对象的版本标识;
7、如果接收到指示获取所述目标桶的最新版本对象列表的指令,从所述最新版本信息表中,查找并列出存储于所述目标桶的对象的对象信息。
8、可选的,所述方法还包括:
9、如果确定所述最新版本信息表中未记录所述第一对象的对象信息,向所述最新版本信息表中添加当前获取的所述第一对象的对象信息。
10、可选的,所述方法还包括:
11、如果接收到指示删除第二对象的指令,且该指令未指定版本,向所述多版本信息表中添加一条所述第二对象的对象信息,该对象信息包括删除标记;
12、删除所述最新版本信息表中所述第二对象的对象信息。
13、可选的,所述方法还包括:
14、如果接收到指示删除第二对象指定版本的指令,且该指定版本不是最新版本,则删除所述多版本信息表中所述第二对象的该指定版本的对象信息;
15、禁止删除所述最新版本信息表中所述第二对象的对象信息。
16、可选的,所述方法还包括:
17、如果接收到指示删除第二对象指定版本的指令,且该指定版本是最新版本且不带删除标记,则删除所述多版本信息表中所述第二对象的该指定版本的对象信息;
18、如果该第二对象的次新版本带删除标记,删除所述最新版本信息表中所述第二对象的对象信息;
19、如果该第二对象的次新版本不带删除标记,更新所述最新版本信息表中所述第二对象的版本标识为所述次新版本的版本标识。
20、可选的,所述方法还包括:
21、如果接收到指示删除第二对象指定版本的指令,且该指定版本是最新版本且带删除标记,则删除所述多版本信息表中该第二对象的该指定版本的对象信息;
22、如果该第二对象的次新版本不带删除标记,向所述最新版本信息表中添加所述第二对象的次新版本的对象信息。
23、可选的,所述方法还包括:
24、如果接收到指示查询第三对象最新版本的指令,从所述最新版本信息表中查询所述第三对象的对象信息。
25、可选的,所述对象信息还包括用于标识版本生成顺序的版本序列号,所述版本序列号至少包括第一子序列号和第二子序列号,其中,所述第一子序列号以预设时间间隔递增;所述第二子序列号用于标识当前时间间隔内对象写入次序。
26、第二方面,本技术提供一种对象列表获取装置,应用于对象存储系统包括的存储节点,所述装置包括:
27、获取单元,用于如果接收到指示将第一对象写入目标桶的指令,且确定所述目标桶已开启多版本功能,获取所述第一对象的对象信息,该对象信息包括版本标识;
28、添加单元,用于将获取的所述第一对象的对象信息添加到数据库的多版本信息表中,所述数据库还包括最新版本信息表;
29、更新单元,用于如果确定所述最新版本信息表中记录有所述第一对象的对象信息,更新所述最新版本信息表中所述第一对象的版本标识为当前获取的所述第一对象的版本标识;
30、查找单元,用于如果接收到指示获取所述目标桶的最新版本对象列表的指令,从所述最新版本信息表中,查找并列出存储于所述目标桶的对象的对象信息。
31、可选的,所述添加单元,还用于如果确定所述最新版本信息表中未记录所述第一对象的对象信息,向所述最新版本信息表中添加当前获取的所述第一对象的对象信息。
32、可选的,所述装置还包括:
33、所述添加单元,还用于如果接收到指示删除第二对象的指令,且该指令未指定版本,向所述多版本信息表中添加一条所述第二对象的对象信息,该对象信息包括删除标记;
34、删除单元,用于删除所述最新版本信息表中所述第二对象的对象信息。
35、可选的,所述装置还包括:
36、删除单元,用于如果接收到指示删除第二对象指定版本的指令,且该指定版本不是最新版本,则删除所述多版本信息表中所述第二对象的该指定版本的对象信息;
37、禁止单元,用于禁止删除所述最新版本信息表中所述第二对象的对象信息。
38、可选的,所述装置还包括:
39、删除单元,用于如果接收到指示删除第二对象指定版本的指令,且该指定版本是最新版本且不带删除标记,则删除所述多版本信息表中所述第二对象的该指定版本的对象信息;
40、所述删除单元,还用于如果该第二对象的次新版本带删除标记,删除所述最新版本信息表中所述第二对象的对象信息;
41、所述更新单元,还用于如果该第二对象的次新版本不带删除标记,更新所述最新版本信息表中所述第二对象的版本标识为所述次新版本的版本标识。
42、可选的,所述装置还包括:
43、删除单元,用于如果接收到指示删除第二对象指定版本的指令,且该指定版本是最新版本且带删除标记,则删除所述多版本信息表中该第二对象的该指定版本的对象信息;
44、所述添加单元,还用于如果该第二对象的次新版本不带删除标记,向所述最新版本信息表中添加所述第二对象的次新版本的对象信息。
45、可选的,所述查找单元,还用于如果接收到指示查询第三对象最新版本的指令,从所述最新版本信息表中查询所述第三对象的对象信息。
46、可选的,所述对象信息还包括用于标识版本生成顺序的版本序列号,所述版本序列号至少包括第一子序列号和第二子序列号,其中,所述第一子序列号以预设时间间隔递增;所述第二子序列号用于标识当前时间间隔内对象写入次序。
47、由以上描述可以看出,本技术实施例中,在对象写入过程中增加对最新版本信息表的维护,当需要获取最新版本对象列表时,可直接查询最新版本信息表,以提升获取最新版本对象列表的效率。