CN116010348B - 一种分布式海量对象的管理方法和装置 - Google Patents

一种分布式海量对象的管理方法和装置 Download PDF

Info

Publication number
CN116010348B
CN116010348B CN202310118973.4A CN202310118973A CN116010348B CN 116010348 B CN116010348 B CN 116010348B CN 202310118973 A CN202310118973 A CN 202310118973A CN 116010348 B CN116010348 B CN 116010348B
Authority
CN
China
Prior art keywords
data
file
server
target
global unique
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.)
Active
Application number
CN202310118973.4A
Other languages
English (en)
Other versions
CN116010348A (zh
Inventor
廖雄杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Keynote Network Inc
Original Assignee
Beijing Keynote Network Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Keynote Network Inc filed Critical Beijing Keynote Network Inc
Priority to CN202310118973.4A priority Critical patent/CN116010348B/zh
Publication of CN116010348A publication Critical patent/CN116010348A/zh
Application granted granted Critical
Publication of CN116010348B publication Critical patent/CN116010348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明涉及一种分布式海量对象的管理方法和装置,通过获取数据对象、与数据对象对应的全局唯一标识,全局唯一标识包括服务器标识;将数据对象、全局唯一标识暂存至本地,得到本地暂存文件;将本地暂存文件同步至与服务器标识对应的目标服务器中,得到位于目标服务器中的数据文件;生成与数据文件对应的索引文件,并基于索引文件对数据文件进行管理。本发明通过在将本地的数据对象同步至服务器时,生成与数据对象对应的索引文件。并根据索引文件对数据对象进行统一管理,从而解决了现有技术中分布式存储技术中的管理混乱的技术问题。

Description

一种分布式海量对象的管理方法和装置
技术领域
本发明涉及分布式存储技术领域,具体涉及一种分布式海量对象的管理方法和装置。
背景技术
现有的大多数对象存储服务均具备海量、可扩展、高可用的特性,其中,依赖的很重要的一项技术就是分布式存储技术,该技术自动将数据分布于不同的服务器或存储设备上,以解决单个存储设备容量有限的局限性,同时,现代分布式存储技术也会将数据在不同设备上冗余存储,防止个别存储设备故障带来数据丢失的问题。但是现有的分布式存储系统存在管理混乱的问题。
发明内容
本发明的目的之一在于提供一种分布式海量对象的管理方法和装置,以解决现有技术中分布式存储系统存在管理混乱的技术问题。
为了实现上述目的,本发明采用的技术方案如下:
一种分布式海量对象的管理方法,所述方法包括:
获取数据对象、与所述数据对象对应的全局唯一标识,所述全局唯一标识包括服务器标识;
将所述数据对象、所述全局唯一标识暂存至本地,得到本地暂存文件;
将所述本地暂存文件同步至与所述服务器标识对应的目标服务器,得到位于所述目标服务器中的数据文件;
生成与所述数据文件对应的索引文件,并基于所述索引文件对所述数据文件进行管理。
在本发明一实施例中,获取与所述数据对象对应的全局唯一标识,包括:
获取服务器标识、当前时间的时间戳;
基于所述服务器标识、所述数据对象、所述时间戳生成全局唯一标识。
在本发明一实施例中,所述数据对象的数量为多个时,将多个数据对象、多个全局唯一标识暂存至本地,得到本地暂存文件,包括:
在本地创建当前存储块,并将所述多个数据对象、与所述多个数据对象对应的全局唯一标识写入至所述当前存储块中,在所述当前存储块的数据量大于预设的数据量阈值,或者所述当前存储块的数据对象数量大于预设的对象数量阈值,或者所述当前存储块的创建时间大于预设的时间阈值时,基于已经写入至所述当前存储块中的数据对象和全局唯一标识构建数据块、对象元数据;
在本地创建下一个存储块,并将剩余的数据对象、与所述剩余的数据对象对应的全局唯一标识写入至下一个存储块中,在所述下一个存储块的数据量大于预设的数据量阈值,或者所述下一个存储块的数据对象数量大于预设的对象数量阈值,或者所述下一个存储块的创建时间大于预设的时间阈值时,基于已经写入至所述下一个存储块中的数据对象和全局唯一标识构建数据块、对象元数据;直至将所有数据对象、全局唯一标识写入至本地,得到多个数据块、多个对象元数据;
基于多个数据块、所述多个对象元数据构建本地暂存文件。
在本发明一实施例中,在所述服务器标识包括主服务器标识和备用服务器标识时,将所述本地暂存文件同步至与所述服务器标识对应的目标服务器中,得到位于所述目标服务器中的数据文件,包括:
对所述本地暂存文件进行扫描,得到本地暂存文件存在的时间、本地暂存文件的数据量;
在所述本地暂存文件存在的时间超过预设的发送时间阈值,或者所述本地暂存文件的数据量大于预设的发送数据量阈值时,在当前周期将所述本地暂存文件同步至目标服务器;
在当前周期成功将所述本地暂存文件同步至目标服务器时,得到位于所述目标服务器中的数据文件;在当前周期未能成功将所述本地暂存文件同步至目标服务器时,在下一个周期将所述本地暂存文件同步至目标服务器,直至成功将所述本地暂存文件同步至目标服务器,并得到位于所述目标服务器中的数据文件。
在本发明一实施例中,将所述本地暂存文件同步至目标服务器,包括:
将所述本地暂存文件压缩后发送至与所述主服务器标识对应的主服务器中,得到第一发送结果;
在所述第一发送结果包括发送成功信息时,删除所述本地暂存文件,并判定成功将所述本地暂存文件同步至目标服务器;在所述第一发送结果包括发送失败信息时,将压缩后的本地暂存文件发送至与所述备用服务器标识对应的备用服务器中,得到第二发送结果;
在所述第二发送结果包括发送成功信息时,删除所述本地暂存文件,并判定成功将所述本地暂存文件同步至目标服务器;在所述第二发送结果包括发送失败信息时,判定未能成功将所述本地暂存文件同步至目标服务器。
在本发明一实施例中,生成与所述数据文件对应的索引文件,包括:
将所述数据文件持久化至所述目标服务器中,得到持久化后的数据文件、持久化后的数据文件对应的过程日志文件、数据文件的持久化完成时间;所述持久化后的数据文件包括多个合并的数据块,所述过程日志文件包括多个数据块起始位置、多个数据块的大小、多个数据块中每个数据对象的全局唯一标识、多个数据块中每个数据对象在数据块中的位置、多个数据块中每个数据对象的长度;
将满足目标条件的过程日志文件进行压缩,得到临时索引日志,所述目标条件包括:过程日志文件的全局唯一标识的时间戳在所述预设的切割时间范围内,且过程日志文件对应的数据文件的持久化完成时间晚于目标时间点的时间不超过预设的冻结时间;所述目标时间点为所述预设的切割时间范围的最晚时间点;
基于所述临时索引日志构建索引文件。
在本发明一实施例中,基于所述索引文件对所述数据文件进行管理,包括:
在接收到来自应用端的包含当前全局唯一标识的数据读取请求时,对所述当前全局唯一标识进行解析,得到当前服务器标识;
根据所述当前全局唯一标识在所述主服务器中执行对象查找;
在所述主服务器中不存在与所述当前全局唯一标识对应的索引文件时,将所述数据读取请求转发至与所述当前服务器标识对应的备用服务器中,并根据所述当前全局唯一标识在所述备用服务器中执行对象查找;
在所述主服务器中存在与所述当前全局唯一标识匹配的目标索引文件,或者所述备用服务器中存在与所述当前全局唯一标识匹配的目标索引文件时,根据所述目标索引文件读取目标对象;
对所述目标对象进行解压,并对解压后的目标对象执行摘要算法,得到数据摘要;
将所述数据摘要与预设的校验码进行对比,在所述数据摘要与预设的校验码一致时,将解压后的目标对象返回至应用端,在所述数据摘要与预设的校验码不一致时,生成异常信息,并将所述异常信息返回至应用端。
在本发明一实施例中,在所述目标索引文件包括用于存储目标对象的第一路径信息的根页、用于存储目标对象的第二路径信息的页节点、用于存储目标对象的位置信息的叶子节点时,根据所述目标索引文件读取目标数据文件,包括
将根页作为当前页,并根据所述第一路径信息得到所述当前页的下一级;
在所述当前页的下一级为页节点时,获取所述页节点对应的所有全局唯一标识的时间戳范围,并将所述当前全局唯一标识的时间戳与所述时间戳范围进行对比,得到时间戳范围包含所述当前全局唯一标识的时间戳的目标页节点;并将所述目标页节点作为当前页,并根据所述第二路径信息得到所述当前页的下一级,直至找所述当前页的下一级为叶子节点;
在所述当前页的下一级为叶子节点时,根据二分查找法对所述叶子节点进行查找,在查找到与所述当前全局唯一标识匹配的叶子节点时,获取与所述当前全局唯一标识匹配的叶子节点中的位置信息,并根据所述位置信息读取目标数据文件。
在本发明一实施例中,基于所述索引文件对所述数据文件进行管理,包括:
获取所述索引文件的生成时间、所述数据文件的生成时间;
基于所述索引文件的生成时间、所述数据文件的生成时间建立文件目录,并根据所述文件目录对所述索引文件、所述数据文件进行划分;
基于所述文件目录对所述数据文件进行管理。
本发明还提供一种分布式海量对象的管理装置,所述装置包括:
采集模块,用于获取数据对象、与所述数据对象对应的全局唯一标识,所述全局唯一标识包括服务器标识;
暂存模块,用于将所述数据对象、所述全局唯一标识暂存至本地,得到本地暂存文件;
同步模块,用于将所述本地暂存文件同步至与所述服务器标识对应的目标服务器中,得到位于所述目标服务器中的数据文件;
管理模块,用于生成与所述数据文件对应的索引文件,并基于所述索引文件对所述数据文件进行管理。
本发明的有益效果为:本发明中的一种分布式海量对象的管理方法和装置,通过获取数据对象、与数据对象对应的全局唯一标识,全局唯一标识包括服务器标识;将数据对象、全局唯一标识暂存至本地,得到本地暂存文件;将本地暂存文件同步至与服务器标识对应的目标服务器中,得到位于目标服务器中的数据文件;生成与数据文件对应的索引文件,并基于索引文件对数据文件进行管理。本发明通过在将本地的数据对象同步至服务器时,生成与数据对象对应的索引文件。并根据索引文件对数据对象进行统一管理,从而解决了现有技术中分布式存储技术中的管理混乱的技术问题。
附图说明
图1为本申请的一示例性实施例示出的一种分布式海量对象的管理方法的应用场景图;
图2为本申请的一示例性实施例示出的一种分布式海量对象的管理方法的流程图;
图3是本申请一实施例中示出的块文件的格式示意图;
图4是本申请一实施例中的数据块压缩后的格式示意图;
图5是本申请一实施例中的分布式对象存储流程之后的流程示意图;
图6是本申请一实施例中示出的索引文件的格式示意图;
图7是本申请一实施例中示出的查询和响应管理的过程示意图;
图8是本申请一实施例中示出的根据目标索引文件查询目标对象的过程示意图
图9为本申请的一示例性实施例示出的一种分布式海量对象的管理装置的结构图;
图10示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
以下将参照附图和优选实施例来说明本申请的实施方式,本领域技术人员可由本说明书中所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。应当理解,优选实施例仅为了说明本申请,而不是为了限制本申请的保护范围。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,遂图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本实施例中涉及到的术语解释如下:
(1)对象存储:对象存储(Object-based Storage)是一种计算机数据存储架构,与文件系统存储以及块存储不同,它将数据视为对象来管理,每一个对象包括数据本身、元数据和一个GUID(全局唯一标识)。对象存储可以基于文件系统存储或者块存储来实现。
(2)全局唯一标识(GUID):全局唯一标识(Globally Unique Identifier,简称GUID),在整个系统中保持唯一性,可起到唯一标识一个对象的作用。
(3)零拷贝(Zero-Copy):传统I/O的工作方式是,数据读取和写入是从用户空间到内核空间来回复制,而内核空间的数据是通过操作系统层面的I/O接口从磁盘读取或写入,这期间共发生了4次用户态与内核态的上下文切换,还发生了4次数据拷贝,其中两次是DMA的拷贝,另外两次则是通过CPU拷贝的。
Linux下可通过sendfile函数或mmap(一种内存映射文件的方法)方式实现零拷贝。零拷贝技术的文件传输方式相比传统文件传输的方式,减少了2次上下文切换和数据拷贝次数,只需要2次上下文切换和数据拷贝次数,就可以完成文件的传输,而且2次的数据拷贝过程,都不需要通过CPU,2次都是由DMA来搬运,相比传统的I/O工作方式,零拷贝技术可成倍地提升传输性能。
对于Java而言,零拷贝可通过调用FileChannel.transferTo()或FileChannel.map()函数实现。
(4)B+树:B+树是一种多路搜索树形数据结构,是一个n叉树,每个节点通常有多个孩子,一棵B+树包含根页、内部节点和叶子节点。根页可能是一个叶子节点,也可能是一个包含两个或两个以上孩子节点的节点。B+树通常用于数据库和操作系统的文件系统中。文件系统都在使用B+树作为元数据索引。B+树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。
图1是本申请的一示例性实施例示出的一种分布式海量对象的管理方法的应用场景图,如图1所示,本实施例中,实现分布式海量对象的管理方法的系统包括客户端、服务器端和深度存储系统三部分,其中,存储子系统为可选组件,可选择现有的如阿里云OSS(Operation Support Systems,操作支撑系统)、腾讯云COS(China Operating System,中国操作系统)等云存储作为深度存储系统,也可不使用深度存储。
客户端通过SDK(Software Development Kit,软件开发工具包)的方式提供,应用端可通过客户端SDK完成全部读写功能,除了SDK,应用端还可以通过服务器端提供的其他简单协议(如HTTP(Hyper Text Transfer Protocol,超文本传输协议)、gRPC(googleRemote Procedure Call Protocol,谷歌远程过程调用协议)等协议)读取指定的对象。
如图2所示,在一示例性的实施例中,一种分布式海量对象的管理方法至少包括步骤S210至步骤S240,详细介绍如下:
S210,获取数据对象、与所述数据对象对应的全局唯一标识,所述全局唯一标识包括服务器标识;
S220,将所述数据对象、所述全局唯一标识暂存至本地,得到本地暂存文件;
S230,将所述本地暂存文件同步至与所述服务器标识对应的目标服务器中,得到位于所述目标服务器中的数据文件;
S240,生成与所述数据文件对应的索引文件,并基于所述索引文件对所述数据文件进行管理。
在本实施例中,全局唯一标识(GUID)由客户端本地生成,基于全局唯一标识、数据对象生成本地暂存文件,在将本地暂存文件同步至目标服务器中时,也将全局唯一标识同步至目标服务器中,得到数据文件。最后基于数据文件生成索引文件,便得到了与全局唯一标识、数据对象对应的索引文件,基于索引文件对数据文件进行管理时,具有效率高、数据位置关系明确等优点。
在本发明一实施例中,获取与所述数据对象对应的全局唯一标识的过程可以包括步骤S310至步骤S320,详细介绍如下:
S310,获取服务器标识、当前时间的时间戳;
S320,基于所述服务器标识、所述数据对象、所述时间戳生成全局唯一标识。
在本实施例中,对象全局唯一标识(GUID)由客户端SDK自动生成,生成的规则参考雪花算法,并在其基础上略加改进,将服务器标识编码进GUID。对象全局唯一标识(GUID)共96位(12字节),按位从高到低设计如下(示例):
第1到41位(共41位):当前时间戳,精确到毫秒(时间戳的起始偏移时间可以灵活选取,例如可选取距格林威治时间2020年1月1日0时整的毫秒数作为时间戳)
第42到49位(共8位):保留期限(枚举常量)
第50到62位(共13位):客户端节点ID
第63到73位(共11位):主服务器ID
第74到84位(共11位):备选服务器ID(若主服务器宕机,则上传至备选服务器,若服务器少于2个节点,则置0)
第85到96位(共12位):同一毫秒内的序列号,当时间戳增加时,序号重置为0。
对象全局唯一标识的生成规则设计有以下几个特点:
客户端本地生成,速度快,无需与服务器交互,数据纯异步传输。
GUID以时间戳作为前置位,可以跨客户端节点保持趋势递增的特性,服务器端以GUID作为索引键时,非常适合设计为聚簇索引,可在保证索引效率的前提下,保持更低的资源消耗。根据GUID中的时间戳即可快速定位到该GUID所在的索引文件(索引文件和数据文件的文件路径均按时间进行组织)
GUID中包含服务器标识信息,读取时可直接定位到指定的服务器,每台服务器只需在本地缓存当前服务器的索引即可,无需单独的元数据缓存服务器做集中缓存。
此外,客户端SDK采用本地缓冲的方式写入数据,应用层每次调用写入操作时,由客户端SDK按上述方法生成GUID,并将对象GUID和数据一并追加写入本地暂存文件。
在本发明一实施例中,在所述数据对象的数量为多个时,将多个数据对象、多个全局唯一标识暂存至本地,得到本地暂存文件的过程可以包括步骤S410至步骤S430,详细介绍如下:
S410,在本地创建当前存储块,并将所述多个数据对象、与所述多个数据对象对应的全局唯一标识写入至所述当前存储块中,在所述当前存储块的数据量大于预设的数据量阈值,或者所述当前存储块的数据对象数量大于预设的对象数量阈值,或者所述当前存储块的创建时间大于预设的时间阈值时,基于已经写入至所述当前存储块中的数据对象和全局唯一标识构建数据块、对象元数据;
S420,在本地创建下一个存储块,并将剩余的数据对象、与所述剩余的数据对象对应的全局唯一标识写入至下一个存储块中,在所述下一个存储块的数据量大于预设的数据量阈值,或者所述下一个存储块的数据对象数量大于预设的对象数量阈值,或者所述下一个存储块的创建时间大于预设的时间阈值时,基于已经写入至所述下一个存储块中的数据对象和全局唯一标识构建数据块、对象元数据;直至将所有数据对象、全局唯一标识写入至本地,得到多个数据块、多个对象元数据;
S430,基于多个数据块、所述多个对象元数据构建本地暂存文件。
具体地,本地暂存文件分为两部分:块内容(.chunk)和块内对象元数据(.chunk.meta),每个块切分为一对本地暂存文件。为平衡压缩、传输和读取效率,块(Chunk)大小建议控制在1-8MB(压缩后,对应压缩前约5-50MB),块内对象个数建议控制在不超过4000个,块大小和块内对象个数任一个达到阈值,则触发块文件切分动作,若两个条件都未达到,则当前块的创建时间超过一定的时间(建议1分钟)触发块文件切分动作,以保证数据上传延时在可控的范围。
图3是本申请一实施例中示出的块文件的格式示意图,块内容(.chunk)和块内对象元数据(.chunk.meta)如图3所示。
在本发明一实施例中,在所述服务器标识包括主服务器标识和备用服务器标识时,将所述本地暂存文件同步至与所述服务器标识对应的目标服务器中,得到位于所述目标服务器中的数据文件的过程可以包括步骤S510至步骤S530,详细介绍如下:
S510,对所述本地暂存文件进行扫描,得到本地暂存文件存在的时间、本地暂存文件的数据量;
S520,在所述本地暂存文件存在的时间超过预设的发送时间阈值,或者所述本地暂存文件的数据量大于预设的发送数据量阈值时,在当前周期将所述本地暂存文件同步至目标服务器;
S530,在当前周期成功将所述本地暂存文件同步至目标服务器时,得到位于所述目标服务器中的数据文件;在当前周期未能成功将所述本地暂存文件同步至目标服务器时,在下一个周期将所述本地暂存文件同步至目标服务器,直至成功将所述本地暂存文件同步至目标服务器,并得到位于所述目标服务器中的数据文件。
在本实施例中,后台定时任务周期性扫描本地暂存文件,当本地暂存数据超过一定时间(建议60秒,根据查询端的延时要求可灵活调整)或一定大小(建议10MB),后台任务将本地缓冲的暂存数据(连同GUID一起)异步传输给服务器端。
客户端为每一批本地缓冲分配相同的服务器标识(服务器ID)(即同一批次的本地缓冲数据,所对应生成的GUID中,副本1-3服务器ID均相同),这样做的目的是将同一批本地缓冲数据批量传输至同一台服务器,同时,传输过程中利用零拷贝技术,可最大化提升传输效率。
此外,本地化批量数据写入的设计有以下优势:
(1)高性能:客户端本地生成GUID作为对象的Key,并将数据先写入本地缓冲,实现纯异步批量写入,可以以非常高的吞吐写入存储,写入性能极高。
(2)高可靠性:由于数据先写入本地暂存文件,即便服务器短暂不可用,数据并不会丢失,服务器恢复后,客户端自动将数据批量传送至服务器端。
(3)低资源消耗:批量异步写入的方式可以更好地利用零拷贝的优势,降低资源消耗,提升传输效率;同时,负载均衡由客户端实现,服务器无需管理客户端状态,减轻服务器端的运行负担,每一批本地缓冲数据分配相同的服务器ID,批次切换时,自动切换至下一组服务器,既保障了批量传输的效率,又能保证数据写入时不会发生严重的数据倾斜。
(4)压缩率高:批量传输也有利于数据压缩,可以以更高的压缩比对数据压缩后传输,节约传输带宽,提升传输效率。
此外,客户端采用批量传输的方式将本地暂存文件传输至服务器中,批量传输的数据(即本地暂存数据)采用分块压缩传输的方案,先将本地暂存数据分割为多个块,每一个块称为一个Chunk,服务器收到每个Chunk数据直接存储,无需解压,仅在读取时完成解压动作,减少反复压缩解压所带来的资源消耗。
在本发明一实施例中,将所述本地暂存文件同步至目标服务器的过程可以包括步骤S610至步骤S630,详细介绍如下:
S610,将所述本地暂存文件压缩后发送至与所述主服务器标识对应的主服务器中,得到第一发送结果;
S620,在所述第一发送结果包括发送成功信息时,删除所述本地暂存文件,并判定成功将所述本地暂存文件同步至目标服务器;在所述第一发送结果包括发送失败信息时,将压缩后的本地暂存文件发送至与所述备用服务器标识对应的备用服务器中,得到第二发送结果;
S630,在所述第二发送结果包括发送成功信息时,删除所述本地暂存文件,并判定成功将所述本地暂存文件同步至目标服务器;在所述第二发送结果包括发送失败信息时,判定未能成功将所述本地暂存文件同步至目标服务器。
在本实施例中,本地客户端后台每隔5分钟(同步间隔可配置)压缩并异步上传至指定的服务器节点,上传到服务器节点在写入时随机指定,并准备写入的1个或多个副本服务器ID编码在GUID中,客户端挑选第一个服务器ID上传,若第一个服务器ID在上传时不可用,则上传至下一个,以此类推。同步成功后,删除本地暂存文件,若同步失败,则等待下一个同步周期再重试。
图4是本申请一实施例中的数据块压缩后的格式示意图,压缩后的数据块如图4所示。
上述过程为分布式对象的存储流程,图5是本申请一实施例中的分布式对象存储流程之后的流程示意图,如图5所示,如果服务器加载了深度存储系统;那么在服务器中生成数据文件和索引文件之后,还可以判断深度存储系统是否可用;在深度存储系统可用时,定时将服务器中的数据文件同步至深度存储系统,定期删除已经同步至深度存储系统中的本地数据文件,以及定期清理深度存储系统中的过期数据。如果深度存储系统不可用,则定期清理本地过期的数据文件即可。
在本发明一实施例中,生成与所述数据文件对应的索引文件的过程可以包括步骤S710至步骤S730,详细介绍如下:
S710,将所述数据文件持久化至所述目标服务器中,得到持久化后的数据文件、持久化后的数据文件对应的过程日志文件、数据文件的持久化完成时间;所述持久化后的数据文件包括多个合并的数据块,所述过程日志文件包括多个数据块起始位置、多个数据块的大小、多个数据块中每个数据对象的全局唯一标识、多个数据块中每个数据对象在数据块中的位置、多个数据块中每个数据对象的长度;
S720,将满足目标条件的过程日志文件进行压缩,得到临时索引日志,所述目标条件包括:过程日志文件的全局唯一标识的时间戳在所述预设的切割时间范围内,且过程日志文件对应的数据文件的持久化完成时间晚于目标时间点的时间不超过预设的冻结时间;所述目标时间点为所述预设的切割时间范围的最晚时间点;
S730,基于所述临时索引日志构建索引文件。
在本实施例中,主服务器或者备用服务器接收到客户端上传的数据,将数据写入本地文件进行持久化,持久化文件包含持久化后的数据文件(.bin文件)、索引文件(.idx文件)和临时索引日志(.idx.log文件)3部分,持久化后的数据文件和索引文件为一一对应的关系,索引文件用于索引并描述GUID与相应对象数据在数据文件中的位置信息。
临时索引日志是实时写入数据时同步写入的过程日志文件,用于描述数据文件中多个数据块起始位置、多个数据块的大小、多个数据块中每个数据对象的全局唯一标识、多个数据块中每个数据对象在数据块中的位置、多个数据块中每个数据对象的长度。
切割时间范围用于对过程日志文件进行分割,切割时间范围是3点40-3点50,因此将时间戳为3点40-3点50的全局唯一标识对应的过程日志文件进行分割;此外,在步骤S720中,考虑到多个客户端并发写入时,只能保证GUID中的时间戳是趋势递增的,无法保证严格递增,因此,设置一个冻结时间(例如5分钟),对超过该冻结时间的过程日志文件在后台执行compact(压缩)动作,得到临时索引日志;如持久化完成时间为3点54的数据文件,但是对应的过程日志文件的全局唯一标识满足切割时间范围(3点40-3点50),此时,仍将持久化完成时间为3点54的数据文件对应的过程日志文件看做是满足目标条件的,再将满足目标条件的过程日志文件进行压缩,即可得到临时索引日志。
最后将临时索引日志载入内存,构建为便于快速检索的B+树,并持久化到索引文件。
图6是本申请一实施例中示出的索引文件的格式示意图,如图6所示,在本实施例中,索引文件实际上是一个B+树的数据结构,包含若干层页节点(非叶子节点,一般不超过3层),叶子节点存储对象元信息,包括GUID以及对象数据的位置信息,位置信息通过块起始位置、块大小、对象在块内偏移量和对象数据长度4个字段组成,数据文件(.bin)内最小存储单元为块(压缩后),对象在块内偏移量和对象数据长度是指块解压后的块内位置。
每个页的头除了存储当前页元信息,还将子页的元信息以顺序方式存储在当前页元信息之后,这样可以一次性将当前节点所有子页元信息加载进内存,便于快速定位到GUID所在的子页。
在本发明一实施例中,对所述数据文件进行管理的方式可以包括查询和响应管理,基于所述索引文件对所述数据文件进行查询和响应管理的过程可以包括步骤S810至步骤S860,详细介绍如下:
S810,在接收到来自应用端的包含当前全局唯一标识的数据读取请求时,对所述当前全局唯一标识进行解析,得到当前服务器标识;
S820,根据所述当前全局唯一标识在所述主服务器中执行对象查找;
S830,在所述主服务器中不存在与所述当前全局唯一标识对应的索引文件时,将所述数据读取请求转发至与所述当前服务器标识对应的备用服务器中,并根据所述当前全局唯一标识在所述备用服务器中执行对象查找;
S840,在所述主服务器中存在与所述当前全局唯一标识匹配的目标索引文件,或者所述备用服务器中存在与所述当前全局唯一标识匹配的目标索引文件时,根据所述目标索引文件读取目标对象;
S850,对所述目标对象进行解压,并对解压后的目标对象执行摘要算法,得到数据摘要;
S860,将所述数据摘要与预设的校验码进行对比,在所述数据摘要与预设的校验码一致时,将解压后的目标对象返回至应用端,在所述数据摘要与预设的校验码不一致时,生成异常信息,并将所述异常信息返回至应用端。
图7是本申请一实施例中示出的查询和响应管理的过程示意图,如图7所示:
本实施例中,查询方通过应用端来发起请求,并指定读取对象的GUID,响应方便可以接收到来自应用端的包含当前全局唯一标识的数据读取请求;此时,需要对GUID中的bucketid(本实施例中的服务器标识)进行解析,得到当前服务器标识;
根据当前服务器标识将查询请求发送至对应的目标服务器,目标服务器接收到读请求后,目标服务器可通过高效的内存索引(热数据)及文件索引可快速查找到GUID对应数据所在的文件位置,以达到快速响应的目的。因此需要对该GUID是否加载至内存进行判断;在该GUID加载至内存时,直接按照该GUID在对应的主服务器中执行查找;在该GUID没有加载至内存时,加载该GUID相应的索引文件至缓存中,再按照该GUID在对应的主服务器中执行查找;
如果主服务器中不存在该GUID和对象元数据(该GUID和对象元数据存储在索引文件中,因此如果主服务器中不存在该GUID和对象元数据,对应地也不存在包含该GUID和对象元数据的索引文件);将请求转发至副本所在节点,即将该请求转发至与当前服务器标识对应的备用服务器中,执行对象查找;
在主服务器或者备用服务器中找到了对应的GUID和对象元数据(包含对象的存放位置)时,便可以得到目标对象的数据;
得到目标对象的数据后,解压和摘要算法,得到数据摘要(如哈希摘要);
如果哈希摘要和校验码(可以是应用端发送的校验码,也可以是服务器中预设的校验码)吻合,则将目标对象数据返回;如果不吻合,则抛出检验码不一定的异常;然后向客户端发送数据返回响应或者异常响应,客户端对应地接收到服务器的数据返回响应或者异常响应。
在本发明一实施例中,根据所述目标索引文件读取目标数据文件的过程可以包括步骤S910至步骤S930,详细介绍如下:
S910,将根页作为当前页,并根据所述第一路径信息得到所述当前页的下一级;
S920,在所述当前页的下一级为页节点时,获取所述页节点对应的所有全局唯一标识的时间戳范围,并将所述当前全局唯一标识的时间戳与所述时间戳范围进行对比,得到时间戳范围包含所述当前全局唯一标识的时间戳的目标页节点;并将所述目标页节点作为当前页,并根据所述第二路径信息得到所述当前页的下一级,直至找所述当前页的下一级为叶子节点;
S930,在所述当前页的下一级为叶子节点时,根据二分查找法对所述叶子节点进行查找,在查找到与所述当前全局唯一标识匹配的叶子节点时,获取与所述当前全局唯一标识匹配的叶子节点中的位置信息,并根据所述位置信息读取目标数据文件。
图8是本申请一实施例中示出的根据目标索引文件查询目标对象的过程示意图,如图8所示;在根据GUID查询服务器中的对象时,先根据GUID得到对应的索引文件,索引文件的结构为B+树结构,因此首先需要在内存或者缓存中加载当前页(起始页为根页)的元信息;具体地,当前页的元信息即为根目录或者第一路径信息,得到根目录后,自然可以得到根目录的下一级目录;
如果根目录的下一级目录为页节点(或子页),则根据页节点或者子页的个数,一次性加载子页元信息列表,得到所有子页的第二路径信息;
遍历子页元信息,比较当前GUID时间戳是否在子页时间戳范围内(最小时间戳-最大时间戳),若是,将子页作为当前页进行递归查找;若否,则回到最开始的当前页重新查找;直至找到最后一级的叶子节点;
如果根目录的下一级目录为叶子节点,则一次性将当前页下一级的所有叶子节点加载至内存,然后执行二分查找法,对与当前GUID对应的GUID进行查找;如果找到,则获得并返回目标对象的位置信息,并根据位置信息读取得到目标对象;如果未找到,则抛出异常信息。
在本发明一实施例中,对所述数据文件进行管理的方式可以包括文件寿命管理;基于所述索引文件对所述数据文件进行寿命管理的过程可以包括步骤S1010至步骤S1030,详细介绍如下:
S1010,获取所述索引文件的生成时间、所述数据文件的生成时间;
S1020,基于所述索引文件的生成时间、所述数据文件的生成时间建立文件目录,并根据所述文件目录对所述索引文件、所述数据文件进行划分;
S1030,基于所述文件目录对所述数据文件进行管理。
在本实施例中,数据文件及索引文件按保留期限及创建时间划分目录,例如,目录格式为:${RETENTION}/${CREATE_TIME},其中,RETENTION表示数据文件的保留期限,由应用层在调用时指定,若未指定,则使用缺省值(例如3个月)。按照不同的使用场景,保留期限分为:
1M:1个月
3M:3个月
6M:6个月
1Y:1年
2Y:2年
3Y:3年
4Y:4年
5Y:5年
6Y;6年
PM:永久保留
CREATE_TIME表示数据文件的写入时间,通过按保留期限和创建时间(写入时间)划分目录,可非常方便地对数据文件进行生命周期管理,需要滚动删除文件时,只需要定时按目录删除即可。
本发明中的一种分布式海量对象的管理方法,通过获取数据对象、与数据对象对应的全局唯一标识,全局唯一标识包括服务器标识;将数据对象、全局唯一标识暂存至本地,得到本地暂存文件;将本地暂存文件同步至与服务器标识对应的目标服务器中,得到位于目标服务器中的数据文件;生成与数据文件对应的索引文件,并基于索引文件对数据文件进行管理。本发明通过在将本地的数据对象同步至服务器时,生成与数据对象对应的索引文件。并根据索引文件对数据对象进行统一管理,从而解决了现有技术中分布式存储技术中的管理混乱的技术问题。
如图9所示,本发明还提供一种分布式海量对象的管理装置,所述装置包括:
采集模块,用于获取数据对象、与所述数据对象对应的全局唯一标识,所述全局唯一标识包括服务器标识;
暂存模块,用于将所述数据对象、所述全局唯一标识暂存至本地,得到本地暂存文件;
同步模块,用于将所述本地暂存文件同步至与所述服务器标识对应的目标服务器中,得到位于所述目标服务器中的数据文件;
管理模块,用于生成与所述数据文件对应的索引文件,并基于所述索引文件对所述数据文件进行管理。
本发明中的一种分布式海量对象的管理装置,通过获取数据对象、与数据对象对应的全局唯一标识,全局唯一标识包括服务器标识;将数据对象、全局唯一标识暂存至本地,得到本地暂存文件;将本地暂存文件同步至与服务器标识对应的目标服务器中,得到位于目标服务器中的数据文件;生成与数据文件对应的索引文件,并基于索引文件对数据文件进行管理。本发明通过在将本地的数据对象同步至服务器时,生成与数据对象对应的索引文件。并根据索引文件对数据对象进行统一管理,从而解决了现有技术中分布式存储技术中的管理混乱的技术问题。
需要说明的是,上述实施例所提供的一种分布式海量对象的管理装置与上述实施例所提供的一种分布式海量对象的管理方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的一种分布式海量对象的管理装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得电子设备实现上述各个实施例中提供的一种分布式海量对象的管理方法。
图10示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图10示出的电子设备的计算机系统1000仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,计算机系统1000包括中央处理单元(Central Processing Unit,CPU)1001,其可以根据存储在只读存储器(Read-Only Memory,ROM)1002中的程序或者从储存部分1008加载到随机访问存储器(Random Access Memory,RAM)1003中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在RAM 1003中,还存储有系统操作所需的各种程序和数据。CPU1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(Input/Output,I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1007;包括硬盘等的储存部分1008;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入储存部分1008。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机的处理器执行时,使计算机执行如前的一种分布式海量对象的管理方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的一种分布式海量对象的管理方法。
以上实施例仅是为充分说明本申请而所举的较佳的实施例,本申请的保护范围不限于此。本技术领域的技术人员在本申请基础上所作的等同替代或变换,均在本申请的保护范围之内。

Claims (9)

1.一种分布式海量对象的管理方法,其特征在于,所述方法包括:
获取数据对象、与所述数据对象对应的全局唯一标识,所述全局唯一标识包括服务器标识;
将所述数据对象、所述全局唯一标识暂存至本地,得到本地暂存文件;
将所述本地暂存文件同步至与所述服务器标识对应的目标服务器,得到位于所述目标服务器中的数据文件;
生成与所述数据文件对应的索引文件,并基于所述索引文件对所述数据文件进行管理;
其中,生成与所述数据文件对应的索引文件,包括:
将所述数据文件持久化至所述目标服务器中,得到持久化后的数据文件、持久化后的数据文件对应的过程日志文件、数据文件的持久化完成时间;所述持久化后的数据文件包括多个合并的数据块,所述过程日志文件包括多个数据块起始位置、多个数据块的大小、多个数据块中每个数据对象的全局唯一标识、多个数据块中每个数据对象在数据块中的位置、多个数据块中每个数据对象的长度;
将满足目标条件的过程日志文件进行压缩,得到临时索引日志,所述目标条件包括:过程日志文件的全局唯一标识的时间戳在预设的切割时间范围内,且过程日志文件对应的数据文件的持久化完成时间晚于目标时间点的时间不超过预设的冻结时间;所述目标时间点为所述预设的切割时间范围的最晚时间点;
基于所述临时索引日志构建索引文件。
2.根据权利要求1所述的分布式海量对象的管理方法,其特征在于:获取与所述数据对象对应的全局唯一标识,包括:
获取服务器标识和当前时间的时间戳;
基于所述服务器标识、所述数据对象和所述时间戳生成全局唯一标识。
3.根据权利要求2所述的分布式海量对象的管理方法,其特征在于:所述数据对象的数量为多个时,将多个数据对象、多个全局唯一标识暂存至本地,得到本地暂存文件,包括:
在本地创建当前存储块,并将所述多个数据对象、与所述多个数据对象对应的全局唯一标识写入至所述当前存储块中,在所述当前存储块的数据量大于预设的数据量阈值,或者所述当前存储块的数据对象数量大于预设的对象数量阈值,或者所述当前存储块的创建时间大于预设的时间阈值时,基于已经写入至所述当前存储块中的数据对象和全局唯一标识构建数据块、对象元数据;
在本地创建下一个存储块,并将剩余的数据对象、与所述剩余的数据对象对应的全局唯一标识写入至下一个存储块中,在所述下一个存储块的数据量大于预设的数据量阈值,或者所述下一个存储块的数据对象数量大于预设的对象数量阈值,或者所述下一个存储块的创建时间大于预设的时间阈值时,基于已经写入至所述下一个存储块中的数据对象和全局唯一标识构建数据块、对象元数据;直至将所有数据对象、全局唯一标识写入至本地,得到多个数据块、多个对象元数据;
基于多个数据块、所述多个对象元数据构建本地暂存文件。
4.根据权利要求3所述的分布式海量对象的管理方法,其特征在于:在所述服务器标识包括主服务器标识和备用服务器标识时,将所述本地暂存文件同步至与所述服务器标识对应的目标服务器中,得到位于所述目标服务器中的数据文件,包括:
对所述本地暂存文件进行扫描,得到本地暂存文件存在的时间、本地暂存文件的数据量;
在所述本地暂存文件存在的时间超过预设的发送时间阈值,或者所述本地暂存文件的数据量大于预设的发送数据量阈值时,在当前周期将所述本地暂存文件同步至目标服务器;
在当前周期成功将所述本地暂存文件同步至目标服务器时,得到位于所述目标服务器中的数据文件;在当前周期未能成功将所述本地暂存文件同步至目标服务器时,在下一个周期将所述本地暂存文件同步至目标服务器,直至成功将所述本地暂存文件同步至目标服务器,并得到位于所述目标服务器中的数据文件。
5.根据权利要求4所述的分布式海量对象的管理方法,其特征在于:将所述本地暂存文件同步至目标服务器,包括:
将所述本地暂存文件压缩后发送至与所述主服务器标识对应的主服务器中,得到第一发送结果;
在所述第一发送结果包括发送成功信息时,删除所述本地暂存文件,并判定成功将所述本地暂存文件同步至目标服务器;在所述第一发送结果包括发送失败信息时,将压缩后的本地暂存文件发送至与所述备用服务器标识对应的备用服务器中,得到第二发送结果;
在所述第二发送结果包括发送成功信息时,删除所述本地暂存文件,并判定成功将所述本地暂存文件同步至目标服务器;在所述第二发送结果包括发送失败信息时,判定未能成功将所述本地暂存文件同步至目标服务器。
6.根据权利要求1所述的分布式海量对象的管理方法,其特征在于:基于所述索引文件对所述数据文件进行管理,包括:
在接收到来自应用端的包含当前全局唯一标识的数据读取请求时,对所述当前全局唯一标识进行解析,得到当前服务器标识;
根据所述当前全局唯一标识在主服务器中执行对象查找;
在所述主服务器中不存在与所述当前全局唯一标识对应的索引文件时,将所述数据读取请求转发至与所述当前服务器标识对应的备用服务器中,并根据所述当前全局唯一标识在所述备用服务器中执行对象查找;
在所述主服务器中存在与所述当前全局唯一标识匹配的目标索引文件,或者所述备用服务器中存在与所述当前全局唯一标识匹配的目标索引文件时,根据所述目标索引文件读取目标对象;
对所述目标对象进行解压,并对解压后的目标对象执行摘要算法,得到数据摘要;
将所述数据摘要与预设的校验码进行对比,在所述数据摘要与预设的校验码一致时,将解压后的目标对象返回至应用端,在所述数据摘要与预设的校验码不一致时,生成异常信息,并将所述异常信息返回至应用端。
7.根据权利要求6所述的分布式海量对象的管理方法,其特征在于:在所述目标索引文件包括用于存储目标对象的第一路径信息的根页、用于存储目标对象的第二路径信息的页节点、用于存储目标对象的位置信息的叶子节点时,根据所述目标索引文件读取目标数据文件,包括:
将根页作为当前页,并根据所述第一路径信息得到所述当前页的下一级;
在所述当前页的下一级为页节点时,获取所述页节点对应的所有全局唯一标识的时间戳范围,并将所述当前全局唯一标识的时间戳与所述时间戳范围进行对比,得到时间戳范围包含所述当前全局唯一标识的时间戳的目标页节点;并将所述目标页节点作为当前页,并根据所述第二路径信息得到所述当前页的下一级,直至找所述当前页的下一级为叶子节点;
在所述当前页的下一级为叶子节点时,根据二分查找法对所述叶子节点进行查找,在查找到与所述当前全局唯一标识匹配的叶子节点时,获取与所述当前全局唯一标识匹配的叶子节点中的位置信息,并根据所述位置信息读取目标数据文件。
8.根据权利要求1所述的分布式海量对象的管理方法,其特征在于:基于所述索引文件对所述数据文件进行管理,包括:
获取所述索引文件的生成时间、所述数据文件的生成时间;
基于所述索引文件的生成时间、所述数据文件的生成时间建立文件目录,并根据所述文件目录对所述索引文件、所述数据文件进行划分;
基于所述文件目录对所述数据文件进行管理。
9.一种分布式海量对象的管理装置,其特征在于,所述装置包括:
采集模块,用于获取数据对象、与所述数据对象对应的全局唯一标识,所述全局唯一标识包括服务器标识;
暂存模块,用于将所述数据对象、所述全局唯一标识暂存至本地,得到本地暂存文件;
同步模块,用于将所述本地暂存文件同步至与所述服务器标识对应的目标服务器中,得到位于所述目标服务器中的数据文件;
管理模块,用于生成与所述数据文件对应的索引文件,并基于所述索引文件对所述数据文件进行管理;
其中,所述管理模块,具体用于:
将所述数据文件持久化至所述目标服务器中,得到持久化后的数据文件、持久化后的数据文件对应的过程日志文件、数据文件的持久化完成时间;所述持久化后的数据文件包括多个合并的数据块,所述过程日志文件包括多个数据块起始位置、多个数据块的大小、多个数据块中每个数据对象的全局唯一标识、多个数据块中每个数据对象在数据块中的位置、多个数据块中每个数据对象的长度;
将满足目标条件的过程日志文件进行压缩,得到临时索引日志,所述目标条件包括:过程日志文件的全局唯一标识的时间戳在预设的切割时间范围内,且过程日志文件对应的数据文件的持久化完成时间晚于目标时间点的时间不超过预设的冻结时间;所述目标时间点为所述预设的切割时间范围的最晚时间点;
基于所述临时索引日志构建索引文件。
CN202310118973.4A 2023-01-31 2023-01-31 一种分布式海量对象的管理方法和装置 Active CN116010348B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310118973.4A CN116010348B (zh) 2023-01-31 2023-01-31 一种分布式海量对象的管理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310118973.4A CN116010348B (zh) 2023-01-31 2023-01-31 一种分布式海量对象的管理方法和装置

Publications (2)

Publication Number Publication Date
CN116010348A CN116010348A (zh) 2023-04-25
CN116010348B true CN116010348B (zh) 2023-10-03

Family

ID=86033642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310118973.4A Active CN116010348B (zh) 2023-01-31 2023-01-31 一种分布式海量对象的管理方法和装置

Country Status (1)

Country Link
CN (1) CN116010348B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116627568B (zh) * 2023-05-25 2024-02-20 成都融见软件科技有限公司 一种数据可视化定位系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2557514A1 (en) * 2011-08-12 2013-02-13 Nexenta Systems, Inc. Cloud Storage System with Distributed Metadata
GB201300088D0 (en) * 2013-01-04 2013-02-20 Ibm Method for data file handling in a network environment and independent file server
CN103150394A (zh) * 2013-03-25 2013-06-12 中国人民解放军国防科学技术大学 面向高性能计算的分布式文件系统元数据管理方法
KR20130136730A (ko) * 2012-06-05 2013-12-13 주식회사 퓨쳐시스템 비정형 로그 압축 저장 및 조회 방법 및 장치
US9223843B1 (en) * 2013-12-02 2015-12-29 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
CN109344122A (zh) * 2018-10-15 2019-02-15 中山大学 一种基于文件预创策略的分布式元数据管理方法及系统
CN110806966A (zh) * 2019-11-08 2020-02-18 哈工大机器人湖州国际创新研究院 日志管理方法、装置、电子设备及计算机存储介质
CN111026707A (zh) * 2019-11-05 2020-04-17 中国科学院计算机网络信息中心 一种小文件对象的存取方法和装置
CN111045985A (zh) * 2019-11-25 2020-04-21 北京百度网讯科技有限公司 文件存储处理方法、服务器、电子设备及存储介质
WO2021127245A1 (en) * 2019-12-18 2021-06-24 Ndata, Inc. Systems and methods for sketch computation

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751449B2 (en) * 2011-04-04 2014-06-10 Symantec Corporation Managing performance within an enterprise object store file system

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2557514A1 (en) * 2011-08-12 2013-02-13 Nexenta Systems, Inc. Cloud Storage System with Distributed Metadata
KR20130136730A (ko) * 2012-06-05 2013-12-13 주식회사 퓨쳐시스템 비정형 로그 압축 저장 및 조회 방법 및 장치
GB201300088D0 (en) * 2013-01-04 2013-02-20 Ibm Method for data file handling in a network environment and independent file server
CN103150394A (zh) * 2013-03-25 2013-06-12 中国人民解放军国防科学技术大学 面向高性能计算的分布式文件系统元数据管理方法
US9223843B1 (en) * 2013-12-02 2015-12-29 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
CN109344122A (zh) * 2018-10-15 2019-02-15 中山大学 一种基于文件预创策略的分布式元数据管理方法及系统
CN111026707A (zh) * 2019-11-05 2020-04-17 中国科学院计算机网络信息中心 一种小文件对象的存取方法和装置
CN110806966A (zh) * 2019-11-08 2020-02-18 哈工大机器人湖州国际创新研究院 日志管理方法、装置、电子设备及计算机存储介质
CN111045985A (zh) * 2019-11-25 2020-04-21 北京百度网讯科技有限公司 文件存储处理方法、服务器、电子设备及存储介质
WO2021127245A1 (en) * 2019-12-18 2021-06-24 Ndata, Inc. Systems and methods for sketch computation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Key-Value型NoSQL本地存储系统研究;马文龙;朱妤晴;蒋德钧;熊劲;张立新;孟潇;包云岗;;计算机学报(08);全文 *

Also Published As

Publication number Publication date
CN116010348A (zh) 2023-04-25

Similar Documents

Publication Publication Date Title
CN109254733B (zh) 用于存储数据的方法、装置和系统
US20150006475A1 (en) Data deduplication in a file system
US9477682B1 (en) Parallel compression of data chunks of a shared data object using a log-structured file system
CN109657174B (zh) 用于更新数据的方法和装置
US20170031948A1 (en) File synchronization method, server, and terminal
WO2021237467A1 (zh) 文件上传方法、文件下载方法和文件管理装置
CN111400312B (zh) 一种基于改进lsm树的边缘存储数据库
CN112307037A (zh) 一种数据同步方法和装置
CN113485962B (zh) 日志文件的存储方法、装置、设备和存储介质
CN102411598A (zh) 一种实现数据一致性的方法及其系统
CN116010348B (zh) 一种分布式海量对象的管理方法和装置
CN107818111B (zh) 一种缓存文件数据的方法、服务器及终端
CN110457305B (zh) 数据去重方法、装置、设备及介质
CN102255866A (zh) 一种数据下载方法及装置
CN113282540A (zh) 一种云对象存储同步方法、装置、计算机设备及存储介质
CN113885780A (zh) 数据同步方法、装置、电子设备、系统和存储介质
CN113806301A (zh) 数据同步方法、装置、服务器及存储介质
CN116467275A (zh) 共享远程存储方法、装置、系统、电子设备及存储介质
CN112866406B (zh) 一种数据存储方法、系统、装置、设备及存储介质
CN112069152B (zh) 一种数据库集群升级方法、装置、设备以及存储介质
CN113704359A (zh) 一种时序数据库多数据副本的同步方法、系统以及服务器
CN112650755A (zh) 数据存储方法、查询数据的方法、数据库、以及可读介质
CN114564457B (zh) 一种针对数据库文件的存储空间优化方法及系统
CN115238006A (zh) 检索数据同步方法、装置、设备及计算机存储介质
CN112148745B (zh) 一种多HBase集群访问方法、装置及存储介质

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