一种对象存储、读取方法、装置、及业务服务器制造方法及图纸

技术编号:20841825 阅读:22 留言:0更新日期:2019-04-13 08:39
公开了一种对象存储、读取方法、装置、及业务服务器,该对象存储方法包括:对目标对象进行序列化处理,得到目标对象的序列化数据;对序列化数据进行拆分处理;基于拆分处理结果,确定序列化数据的多个数据分片,将多个数据分片存储至数据库中,并存储用于表示多个数据分片在数据库中存储位置的索引信息;该对象读取方法包括:根据预先保存的索引信息在数据库中确定目标存储位置,索引信息用于表示多个数据分片在所述数据库中的存储位置;基于目标存储位置,从数据库中读取数据分片;对所读取到的数据分片进行合并处理;对合并处理所得到的数据进行反序列化处理,得到目标对象。应用该对象存储方法与对象读取方法,可以提高对象的存取性能。

【技术实现步骤摘要】
一种对象存储、读取方法、装置、及业务服务器
本说明书实施例涉及数据处理
,尤其涉及一种对象存储、读取方法、装置、及业务服务器。
技术介绍
在业务系统中,经常涉及超大对象的存储与读取。现有技术中,通常使用文件形式存储超大对象,文件形式的存储容量是无限大的,但是,若采用此形式存储超大对象,在后续查找超大对象的过程中,首先会查找每个文件逻辑块,而逻辑块是分散在物理块上,物理块又分散在不同扇区上,这也就需要逐层进行查找,才可查找到完整的对象,最后才能完成对象的读取。由此可见,使用文件形式存储超大对象的存取性能非常差。
技术实现思路
针对上述技术问题,本说明书实施例提供一种对象存储、读取方法、装置、及业务服务器,技术方案如下:根据本说明书实施例的第一方面,提供一种对象存储方法,所述方法包括:对目标对象进行序列化处理,得到所述目标对象的序列化数据;对所述序列化数据进行拆分处理;基于拆分处理结果,确定所述序列化数据的多个数据分片,将所述多个数据分片存储至数据库中,并存储用于表示所述多个数据分片在所述数据库中存储位置的索引信息。根据本说明书实施例的第二方面,提供一种对象读取方法,所述方法包括:根据预先保存的索引信息在数据库中确定目标存储位置,所述索引信息用于表示多个数据分片在所述数据库中的存储位置;基于所述目标存储位置,从所述数据库中读取数据分片;对所读取到的数据分片进行合并处理;对合并处理所得到的数据进行反序列化处理,得到目标对象。根据本说明书实施例的第三方面,提供一种对象存储装置,所述装置包括:序列化模块,用于对目标对象进行序列化处理,得到所述目标对象的序列化数据;拆分模块,用于对所述序列化数据进行拆分处理;存储模块,用于基于拆分处理结果,确定所述序列化数据的多个数据分片,将所述多个数据分片存储至数据库中,并存储用于表示所述多个数据分片在所述数据库中存储位置的索引信息。根据本说明书实施例的第四方面,提供一种对象读取装置,所述装置包括:确定模块,用于根据预先保存的索引信息在数据库中确定目标存储位置,所述索引信息用于表示多个数据分片在所述数据库中的存储位置;读取模块,用于基于所述目标存储位置,从所述数据库中读取数据分片;合并模块,用于对所读取到的数据分片进行合并处理;反序列化模块,用于对合并处理所得到的数据进行反序列化处理,得到目标对象。根据本说明书实施例的第五方面,提供一种业务服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现本说明书实施例提供的对象存储方法。根据本说明书实施例的第六方面,提供一种业务服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现本说明书实施例提供的对象读取方法。本说明书实施例所提供的技术方案,通过对目标对象进行序列化处理,得到目标对象的序列化数据,对该序列化数据进行拆分处理,基于拆分处理结果,确定序列化数据的多个数据分片,将多个数据分片存储至数据库中,并存储用于表示该多个数据分片在数据库中存储位置的索引信息,可以突破底层存储的限制,提高超大对象的存储性能。本说明书实施例所提供的技术方案,通过根据预先保存的索引信息在数据库中确定目标存储位置,基于该目标存储位置,从数据库中读取数据分片,对所读取到的数据分片进行合并处理;对合并处理所得到的数据进行反序列化处理,得到目标对象,可以提高超大对象的读取性能。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1为本说明书一示例性实施例提供的一种对象存储方法的实施例流程图;图2为本说明书一示例性实施例提供的一种对象读取方法的实施例流程图;图3为本说明书一示例性实施例提供的一种对象存储装置的实施例框图;图4为本说明书一示例性实施例提供的一种对象读取装置的实施例框图;图5为本说明书实施例所提供的一种更为具体的业务服务器硬件结构示意图。具体实施方式为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。由于现有技术中,使用文件形式存储超大对象的存取性能非常差,因此,本说明书实施例提出一种对象存储方法和对象读取方法,以提高对象的存取性能。首先说明,该对象存储方法和对象读取方法的实现基于Hbase数据库,也即将对象存储至Hbase数据中,后续,从Hbase数据库中读取对象。如下,示出下述实施例分别对该对象存储方法和该对象读取方法进行说明:首先,对对象存储方法进行说明:请参见图1,为本说明书一示例性实施例提供的一种对象存储方法的实施例流程图,该方法可以包括以下步骤:步骤102:对目标对象进行序列化处理,得到目标对象的序列化数据。首先说明,在本说明书实施例中,为了描述方便,将待处理的对象称为目标对象。为了使得目标对象可被持久化保存,可以对目标对象进行序列化处理,得到一组字节,该组字节即为目标对象的序列化数据。其中,在对目标对象进行序列化处理时,可以采用json、kryo,或者jdkSerialize等方式,本说明书实施例对此不做限制。此外,在得到目标对象的序列化数据后,可以进一步对该序列化数据做压缩处理,后续则针对压缩处理后的序列化数据进行存储。通过该种处理,可以进一步降低待存储数据的数据量,提高数据的存取性能。步骤104:对序列化数据进行拆分处理。在一实施例中,可以直接对步骤102得到的序列化数据进行物理拆分处理,这里所说的“物理拆分处理”即指在系统内存中,将序列化数据拆分成多个数据分片,例如,假设序列化数据包括100个字节,则将该100个字节拆分为10个分组,每一分组包括10个字节,每一分组即为一个数据分片,得到10个数据分片。在一实施例中,可以对步骤102得到的序列化数据进行逻辑拆分处理,这里所说的“逻辑拆分处理”即指在系统内存中,基于预设的拆分规则,获取序列化数据中的多个拆分位置,例如,假设序列化数据包括100个字节,预设的拆分规则为将序列化数据拆分为10个数据分片,每一数据分片包括10个字节,那么,所获取到的拆分位置包括:10、20、30、40、50、60、70、80、90,本领域技术人员可以理解的是,基于该9个拆分位置,可以将序列化数据拆分成10个数据分片,其中,1~10字节位置上的数据为一个数据分片,11~20字节位置上的数据为一个数据分片,依次类推,共10个数据分片。由上述描述可见,在内存中对序列化数据进行物理拆分处理,会在内存中生成多个数据分片,从而占用内存,而在内存中对序列化数据进行逻辑拆分处理,仅涉及到多个拆分位置对内存的占用,从而,相本文档来自技高网...

【技术保护点】
1.一种对象存储方法,所述方法包括:对目标对象进行序列化处理,得到所述目标对象的序列化数据;对所述序列化数据进行拆分处理;基于拆分处理结果,确定所述序列化数据的多个数据分片,将所述多个数据分片存储至数据库中,并存储用于表示所述多个数据分片在所述数据库中存储位置的索引信息。

【技术特征摘要】
1.一种对象存储方法,所述方法包括:对目标对象进行序列化处理,得到所述目标对象的序列化数据;对所述序列化数据进行拆分处理;基于拆分处理结果,确定所述序列化数据的多个数据分片,将所述多个数据分片存储至数据库中,并存储用于表示所述多个数据分片在所述数据库中存储位置的索引信息。2.根据权利要求1所述的方法,所述对所述序列化数据进行拆分处理,包括:基于预设的拆分规则,获取所述序列化数据中的多个拆分位置。3.根据权利要求1所述的方法,不同的数据分片分别存储至所述数据库的不同行记录中;所述索引信息包括:数据分片所在行记录的rowkey值。4.一种基于如权利要求1至3任一项所述的对象存储方法的对象读取方法,所述方法包括:根据预先保存的索引信息在数据库中确定目标存储位置,所述索引信息用于表示多个数据分片在所述数据库中的存储位置;基于所述目标存储位置,从所述数据库中读取数据分片;对所读取到的数据分片进行合并处理;对合并处理所得到的数据进行反序列化处理,得到目标对象。5.根据权利要求4所述的方法,所述对所读取到的数据分片进行合并处理,包括:将所读取到的数据分片封装成输入流。6.一种对象存储装置,所述装置包括:序列化模块,用于对目标对象进行序列化处理,得到所述目标对象的序列化数据;拆分模块,用于对所述序列化数据进行拆分处理;存储模块,用于基于拆分处理结果,确定...

【专利技术属性】
技术研发人员:姚逢靖
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1