The invention proposes a method and system for random read and write objects based on object storage. In one embodiment, a complete object consists of an index object and at least one data object, which is used to store data, and an index object is used to provide index information of the object, in which index header information records the basic information of the complete object, and data segment information records the basic information of each data segment and data object. Data correspondence. When writing to an object, the modified or newly added data is stored in the storage device as a data object, and the index object content is updated at the same time. When reading the object, the corresponding data object information is acquired from the data segment information in the index object, matched to the corresponding data object, and read the data object to obtain the required data. The method of the present invention can rapidly read and write random objects, especially for very large objects, can significantly reduce the consumption of resources in random read and write objects, and greatly improve the reading and writing efficiency.
【技术实现步骤摘要】
基于对象存储的随机读写对象的方法和系统
本专利技术属于对象存储
,具体涉及一种随机读写对象的方法和系统。
技术介绍
随着互联网、Web2.0的快速发展,Web应用创建出数百亿的小文件;人们上传海量的照片、视频、音乐,Facebook每天都新增数十亿条内容,人们每天发送数千亿封电子邮件。据IDC统计未来在10年间数据将增长44倍,到2020年全球数据将增加到35ZB,其中80%是非结构化数据,且大部分是非活跃数据。面对如此庞大的数据量,仅具备PB级扩展能力的块存储(例如SAN架构)和文件存储(例如NAS架构)显得有些无能为力:通常SAN存储的一个LUN(逻辑单元号)容量仅数TB,单个文件系统最优性能情况下支持的文件数量通常也只在百万级别。人们需要一种全新架构的存储系统,这种存储系统需要具备极高的可扩展性,能够满足人们对存储容量TB到EB规模的扩展需求,于是对象存储应运而生。对象存储是一种基于对象的存储形态,在基于对象存储的存储系统或服务中,对象(Object)是存储的基本数据单位,用户上传的数据以对象的形式存储在一个或多个容器(Bucket,桶)中。对象存储采用扁平化结构管理所有数据,容器和对象都有一个全局唯一的ID,用户/应用经过认证接入后,只需要根据ID就可以访问容器/对象及相关的数据(Data)、元数据(metadata)和对象属性(Attribute),解决了文件系统复杂目录树结构在海量数据情况下的数据查找耗时长的问题,这使得对象存储具备极强的扩展性。同时也能更好的满足特定非结构化数据(例如监控视频、话务中心录音、单据扫描图片等特定应用)的存储 ...
【技术保护点】
1.一种基于对象存储的对象写入方法,其特征在于,创建新对象包括:判断待写入数据的大小是否大于预先设定的数据段分片粒度,如果是,则以数据段分片粒度为单位将数据分割为指定大小的数据段,如果小于则不分割;创建索引对象,根据数据分片结果创建至少一个数据对象,所述索引对象和所述至少一个数据对象构成一个完整对象,在所述索引对象中记录索引头信息和数据段信息,所述索引头信息包括该对象的基本信息,所述数据段信息包括数据段与数据对象中数据的对应关系。
【技术特征摘要】
1.一种基于对象存储的对象写入方法,其特征在于,创建新对象包括:判断待写入数据的大小是否大于预先设定的数据段分片粒度,如果是,则以数据段分片粒度为单位将数据分割为指定大小的数据段,如果小于则不分割;创建索引对象,根据数据分片结果创建至少一个数据对象,所述索引对象和所述至少一个数据对象构成一个完整对象,在所述索引对象中记录索引头信息和数据段信息,所述索引头信息包括该对象的基本信息,所述数据段信息包括数据段与数据对象中数据的对应关系。2.根据权利要求1所述的对象写入方法,其特征在于,所述索引头信息包括:对象标识:表示该对象是否为索引对象;数据总长度:表示完整对象中所有数据对象的总长度;数据段个数:表示完整对象中数据段的个数;所述数据段信息包括:数据偏移:表示该数据段在整个数据中的偏移;数据对象中的偏移:表示该数据段在对应的数据对象中的偏移;数据段长度:表示该数据段的长度。3.根据权利要求2所述的对象写入方法,其特征在于,所述创建新对象过程中,数据对象的数据偏移从0开始递增,下一数据对象的数据偏移为上一数据对象的数据偏移和数据段长度之和,数据对象中的偏移均为0。4.根据权利要求2所述的对象写入方法,其特征在于,修改对象包括:判断待写入数据的大小是否大于当前对象中的数据段分片粒度,如果是,则以数据段分片粒度为单位将数据分割为指定大小的数据段,如果小于则不分割;根据分片结果创建相应数目的新的数据对象;修改索引对象:根据随机写的位置在已有数据段信息中增加一条或多条关于新数据对象的数据段信息,当写入位置位于已有数据对象中时,对该被修改的数据对象及其之后的数据对象的数据段信息进行修改,最后更新索引头信息中的数据总长度、数据段个数。5.一种根据权利要求1-4中的任一项所述的对象写入方法实现的对象读取方法,其特征在于,包括:先读索引对象,从索引对象中的数据段信息获取对应的数据对象信息,根据数据偏移匹配到对应的数据对象,读取数据对象获取所需要的数据。6.一种根据权利要求1-4中的任一项所述的对象写入方法实现的对象删除方法,其特征在于,包括:先读取索引对象,获取索引头信息和数据段信息,根据数据段信息删除所有的数据对象,最后删除索引对象。7.一种支持快速随机读写的对象存储系...
【专利技术属性】
技术研发人员:V·W·陈,蒋建涛,盛滢,吴永凯,
申请(专利权)人:南京紫光云信息科技有限公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。