数据处理方法及装置、计算机存储介质、电子设备与流程

文档序号:29943339发布日期:2022-05-07 15:16阅读:88来源:国知局
数据处理方法及装置、计算机存储介质、电子设备与流程

1.本公开涉及计算机技术领域,特别涉及一种数据处理方法、数据处理装置、计算机存储介质及电子设备。


背景技术:

2.在模型的训练过程中,需要处理大规模稀疏特征,这些稀疏特征对应的参数规模比较大,为提高其更新和查询的处理效率,一般需要将其按照一定的规则进行分片并存储在不同的参数服务器中。并且,随着训练数据量的更新,有根据模型参数的规模调整参数服务器数目的需求。
3.相关技术中,一般是使用预设的哈希算法计算特征的哈希值,使用该哈希值与参数服务器的数量进行取余运算,以确定各模型参数所属的参数服务器。然而,当参数服务器的数量调整时,该方法需要重新对模型参数进行分片处理,但由于模型参数规模巨大,重分片操作耗费时间比较长。
4.鉴于此,本领域亟需开发一种新的数据处理方法及装置。
5.需要说明的是,上述背景技术部分公开的信息仅用于加强对本公开的背景的理解。


技术实现要素:

6.本公开的目的在于提供一种数据处理方法、数据处理装置、计算机存储介质及电子设备,进而至少在一定程度上避免了相关技术中当参数服务器的数目调整时需要对参数重新分片的缺陷。
7.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
8.根据本公开的第一方面,提供一种数据处理方法,应用于数据分片终端,所述数据分片终端与多个参数服务器通信连接,所述参数服务器用于维护待存储数据,所述方法包括:按照预设分片数目将待存储数据划分为带有分片序号的多个分片;根据所述预设分片数目和所述参数服务器的数目,确定分配至各所述参数服务器的分片序号,以使各所述参数服务器加载所述分片序号对应的分片,并为所述分片创建索引。
9.在本公开的示例性实施例中,所述待存储数据包括用于训练机器学习模型的多个模型参数;所述按照预设分片数目将待存储数据划分为带有分片序号的多个分片,包括:利用预设的哈希算法确定各所述模型参数对应的哈希值;对各所述哈希值与所述预设分片数目进行取余运算,得到各所述模型参数所属的分片序号;将所述所属的分片序号相同的模型参数划分为一个分片,以获得所述带有分片序号的多个分片。
10.在本公开的示例性实施例中,所述根据所述预设分片数目和所述参数服务器的数目,确定分配至各所述参数服务器的分片序号,包括:获取所述预设分片数目除以所述参数服务器的数目所得的商值;对所述商值进行向下取整,得到向各所述参数服务器分配的分
片个数;根据所述分片个数,确定分配至各所述参数服务器的分片序号。
11.在本公开的示例性实施例中,所述根据所述分片个数,确定分配至各所述参数服务器的分片序号,包括:对于前n-1个参数服务器,根据所述分片序号由小到大的顺序,依次向每个参数服务器分配与所述分片个数相对应的分片;将未分配的分片序号确定为分配至各第n个参数服务器的分片序号;n表示所述参数服务器的数目,n为大于1的整数。
12.在本公开的示例性实施例中,当所述参数服务器的数目发生变更时,所述方法还包括:获取变更后的所述参数服务器的目标数目;根据所述预设分片数目和所述目标数目,确定分配至各所述参数服务器的目标分片序号,以使各所述参数服务器加载所述目标分片序号对应的分片,并为所述分片创建索引。
13.根据本公开的第二方面,提供一种数据处理方法,应用于参数服务器,所述方法包括:获取分配至所述参数服务器的分片序号,以及,分配至所述参数服务器的分片个数;获取所述参数服务器的标识与所述分片个数之间的乘积;根据各所述分片序号和所述乘积的差值,确定各所述分片对应的索引。
14.根据本公开的第三方面,提供一种数据处理装置,包括:数据分片模块,用于按照预设分片数目将待存储数据划分为带有分片序号的多个分片;分片加载模块,用于根据所述预设分片数目和所述参数服务器的数目,确定分配至各所述参数服务器的分片序号,以使各所述参数服务器加载所述分片序号对应的分片,并为所述分片创建索引。
15.根据本公开的第四方面,提供一种数据处理装置,包括:序号获取模块,用于获取分配至所述参数服务器的分片个数,以及,分配至所述参数服务器的分片序号;乘积获取模块,用于获取所述参数服务器的标识与所述分片个数之间的乘积;索引创建模块,用于根据各所述分片序号和所述乘积的差值,确定各所述分片对应的索引。
16.根据本公开的第五方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面所述的数据处理方法。
17.根据本公开的第六方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面或第二方面所述的数据处理方法。
18.由上述技术方案可知,本公开示例性实施例中的数据处理方法、数据处理装置、计算机存储介质及电子设备至少具备以下优点和积极效果:
19.在本公开的一些实施例所提供的技术方案中,一方面,按照预设分片数目将待存储数据划分为带有分片序号的多个分片,能够避免直接对全量数据进行存储所导致的服务器节点压力过大的问题,减小数据操作压力,提升数据的查询和召回效率。另一方面,根据预设分片数目和参数服务器的数目,确定分配至各参数服务器的分片序号,以使各参数服务器加载分片序号对应的分片,并为分片创建索引,能够在参数服务器数目发生变动时,只需要在预先得到的预设分片数目的基础上,调整每个参数服务器中存储的分片序号并重新加载参数即可,无需对参数重新分片,解决相关技术中当参数服务器数目变动时需要对参数重新分片的技术问题,从而,节省了重分片操作的时间,提高了离线训练和在线推理之间模型流转的效率,使得离线训练导出的模型能够快速推到线上并提供推理服务,提升业务效果。
20.本公开应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性
的,并不能限制本公开。
附图说明
21.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1a示出相关技术中模型离线训练的架构图;
23.图1b示出相关技术中的分片方法的示意图;
24.图1c示出相关技术中模型在线推理的架构图;
25.图2示出本公开实施例中数据处理方法的流程示意图;
26.图3示出本公开实施例中按照预设分片数目对待存储数据进行分片,获得多个分片的流程示意图;
27.图4示出本公开实施例中根据预设分片数目和参数服务器的数目,确定分配至各个参数服务器的分片序号的流程示意图;
28.图5示出本公开实施例中根据分片个数,确定分配至各参数服务器的分片序号的流程示意图;
29.图6示出本公开实施例中各个参数服务器创建分片对应的索引的流程示意图;
30.图7示出本公开一示例性实施例中数据处理装置的结构示意图;
31.图8示出本公开另一示例性实施例中数据处理装置的结构示意图;
32.图9示出本公开示例性实施例中电子设备的结构示意图。
具体实施方式
33.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
34.本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
35.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
36.近年来,在搜索、推荐、广告等应用领域的ctr(click-through-rate,点击通过率)
机器学习模型,需要处理大规模稀疏特征,这些稀疏特征对应的模型参数规模比较大,达到1tb~10tb(数据存储单位,万亿字节)规模。为提高稀疏特征对应的模型参数更新和查询的处理效率,需要将其存储在服务器内存中。而单机的内存容量无法存储如此规模的模型参数,需要对这些参数按照一定的规则进行分片处理,并存储在多台参数服务器(又称:ps服务器,parameter server)中。
37.在将模型参数存储之后,一般有以下两种使用方式:
38.第一,离线训练。参照图1a,图1a示出相关技术中模型离线训练的架构图。具体的,在获取训练数据(样本)后,ps客户端会通过push接口先从参数服务器ps上拉取参数(在拉取到参数之后,ps客户端可以基于训练数据对机器学习模型进行迭代训练),参数服务器会对模型参数的初始值进行设置,这样在首次pull模型特征时,能取到初始化参数。然后计算模型参数的梯度,把梯度push到参数服务器上,由参数服务器把梯度变化量更新到对应的模型参数上。
39.其中,常规的分片方式可以参照图1b,图1b示出相关技术中的分片方法的示意图,假设参数服务器的总数量为n,则参数服务器的id(identification,标识)范围为[0,n),参数服务器客户端使用预设的哈希算法计算特征的哈希值,使用该哈希值与参数服务器的数量n进行取模运算,即hash(key)%n,结果范围为[0,n)。结果范围与参数服务器id范围一致,取模的结果为存储模型参数的参数服务器id。
[0040]
第二,在线推理服务。参照图1c,图1c示出相关技术中模型在线推理的架构图,具体的,离线训练以文件的形式导出模型及参数,提供给在线推理引擎使用,由推理引擎提供在线推理服务。在线推理引擎在进行推理时,同样需要根据用户的稀疏特征,去参数服务器上获取对应的参数后,在推荐引擎侧进行模型的推理,并将结果返回给服务的客户端。
[0041]
在实际的生产环境中,不论是离线模型训练,还是在线推理服务,都有需求根据模型的参数规模调整参数服务器的数量,这需要对已经保存的模型参数进行重新分片。通常的实现方案是,读取每个参数服务器导出的模型文件,加载模型参数并重新计算参数所属的分片序号,并写入对应的模型文件中。离线训练或线上推理使用的参数服务器加载重分片后的模型文件,完成相应参数的加载,来支持参数服务器数量调整。
[0042]
上述方案具有以下缺陷:
[0043]
第一,大规模稀疏深度学习模型存储文件巨大,文件大小tb级别,调整参数服务器个数需要对模型参数重新分片。
[0044]
第二,重新分片操作需要耗费较长时间,降低了离线训练和在线推理之间模型流转效率。
[0045]
在本公开的实施例中,首先提供了一种数据处理方法,至少在一定程度上克服相关技术中当参数服务器数目调整时,需要对参数重新分片的缺陷。
[0046]
图2示出本公开实施例中数据处理方法的流程示意图,该数据处理方法的执行主体可以是对数据进行分片处理的终端。
[0047]
参考图2,根据本公开的一个实施例的数据处理方法包括以下步骤:
[0048]
步骤s210,按照预设分片数目将待存储数据划分为带有分片序号的多个分片;
[0049]
步骤s220,根据预设分片数目和参数服务器的数目,确定分配至各参数服务器的分片序号,以使各参数服务器加载分片序号对应的分片,并为分片创建索引。
[0050]
在图2所示实施例所提供的技术方案中,一方面,按照预设分片数目将待存储数据划分为带有分片序号的多个分片,能够避免直接对全量数据进行存储所导致的服务器节点压力过大的问题,减小数据操作压力,提升数据的查询和召回效率。另一方面,根据预设分片数目和参数服务器的数目,确定分配至各参数服务器的分片序号,以使各参数服务器加载分片序号对应的分片,并为分片创建索引,能够在参数服务器数目发生变动时,只需要在预先得到的预设分片数目的基础上,调整每个参数服务器中存储的分片序号并重新加载参数即可,无需对参数重新分片,解决相关技术中当参数服务器数目变动时需要对参数重新分片的技术问题,从而,节省了重分片操作的时间,提高了离线训练和在线推理之间模型流转的效率,使得离线训练导出的模型能够快速推到线上并提供推理服务,提升业务效果。
[0051]
以下对图2中的各个步骤的具体实现过程进行详细阐述:
[0052]
分片(shard)指的是在大规模参数存储时,由于受限于单服务器资源(内存、cpu)容量上限,无法使用单服务器提供服务,将参数根据一定的规则进行划分,存储在多台服务器上,以减小单个节点的数据操作压力,同时提升数据的查询和召回效率。
[0053]
在步骤s210中,按照预设分片数目将待存储数据划分为带有分片序号的多个分片。
[0054]
本步骤中,待存储数据可以是用于训练机器学习模型的多个模型参数,其中,模型参数是机器学习模型内部的可配置变量,可以通过训练样本来估计模型参数的值。
[0055]
上述预设分片数目即将待存储数据划分之后所得到的分片的数目。以预设分片数目(global_shard_num)为16为例进行说明,则得到的16个分片的分片序号可以是[0,16)。
[0056]
需要说明的是,预设分片数目可以设置为2的幂次方,举例而言,在模型参数规模较大的情况下,比如达到tb(万亿字节,数据存储单位)级别时,则可以将预设分片数目设置为1024,便于参数的分发和加载,而在参数规模较小的情况下,预设分片数目可以根据实际情况自行设定,本公开对此不作特殊限定。
[0057]
参考图3,图3示出本公开实施例中按照预设分片数目将待存储数据划分为带有分片序号的多个分片的流程示意图,包含步骤s301-步骤s303:
[0058]
在步骤s301中,利用预设的哈希算法确定各模型参数对应的哈希值。
[0059]
本步骤中,可以基于预设的哈希算法获取各模型参数对应的哈希值。
[0060]
其中,哈希算法(hash)又称摘要算法(digest),它的作用是:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。预设的哈希算法最重要的特点就是:相同的输入一定得到相同的输出,不同的输入大概率得到不同的输出。
[0061]
示例性的,上述预设的哈希算法可以是:md5哈希加密算法(message-digest algorithm 5,信息-摘要算法5)、sha-1哈希加密算法、sha-2哈希加密算法、sha-256哈希加密算法等,可以根据实际情况自行设定,本公开对此不作特殊限定。
[0062]
在步骤s302中,对各哈希值与预设分片数目进行取余运算,得到各模型参数所属的分片序号。
[0063]
本步骤中,可以将上述步骤s301中得到的哈希值与预设分片数目进行取余运算,得到各个模型参数所属的分片序号。
[0064]
其中,取余运算即求哈希值除以预设分片数目所得的余数,上述哈希值与预设分片数目的取余运算结果的范围也为[0,16)。仍以预设分片数目为16为例进行说明,则当模
型参数a的哈希值为32时,哈希值除以预设分片数目所得的余数为:32/16=2
……
0,即取余运算结果为0,则可以确定模型参数a所属的分片序号为0。当模型参数b的哈希值为15时,哈希值除以预设分片数目所得的余数为:15/16=0
……
15,即取余运算结果为15,则模型参数b所属的分片序号为15。
[0065]
需要说明的是,在计算出各个模型参数的哈希值及其所属的分片序号之后,可以创建一散列表,并将上述哈希值与分片序号之间的映射关系存储至一散列表中,以便于快速准确的将各个模型参数划分至不同的分片中,以及根据该散列表快速访问每个模型参数。
[0066]
其中,散列表是根据关键码值而直接进行访问的数据结构,也就是说,把关键码值映射到表中一个位置来访问记录,加快查找的速度,这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希表是种数据结构,它可以提供快速的插入操作和查找操作。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
[0067]
在步骤s303中,将所属的分片序号相同的模型参数划分为一个分片,以获得带有分片序号的多个分片。
[0068]
本步骤中,参照上述步骤s302的相关解释,可以创建16个分片文件夹,每个分片文件夹对应一个分片,从而,这16个分片文件夹的分片序号依次为0-15。进而,可以根据分片序号,将模型参数放入不同的分片文件夹中,以获得带有分片序号的多个分片。示例性的,可以将模型参数a放入分片序号为0的分片文件夹中,将模型参数b放入分片序号为15的分片文件夹中,依次类推,得到带有分片序号的多个分片文件夹,即多个分片。
[0069]
示例性的,还可以将分片序号为0的分片文件夹命名为00000.data,将分片序号为1的分片文件夹命名为00001.data,从而,在模型离线训练或在线推理服务时,就可以根据命名信息快速调用文件以完成数据的加载。
[0070]
通过对海量模型参数进行分片,能够使得每个参数服务器(即上述参数服务器)的数据量更加均匀,解决了在信息海量时单个存储终端的内存有限的问题,同时,由于分片数据的粒度更细,在参数服务器数目调整时,可以降低对每个分片对应的索引的更新时间,且可以根据索引信息快速查询所需的数据,加快数据查询速度。
[0071]
接着参考图2,在步骤s220中,根据预设分片数目和参数服务器的数目,确定向各参数服务器分配的分片序号,以使各参数服务器加载分片序号对应的分片,并为分片创建索引。
[0072]
本步骤中,可以先根据预设分片数目和参数服务器的数目,确定分配至各个参数服务器的分片序号。仍以上述预设分片数目为16,参数服务器的数目为3为例进行说明,参考图4,图4示出本公开实施例中确定分配至各个参数服务器的分片序号的流程示意图,包含步骤s401-步骤s403:
[0073]
在步骤s401中,获取预设分片数目除以参数服务器的数目所得的商值。
[0074]
本步骤中,以上述预设分片数目为16,参数服务器的数目为3为例进行说明,则16除以3所得的商值为5.33。
[0075]
在步骤s402中,对商值进行向下取整,得到向各参数服务器分配的分片个数。
[0076]
本步骤中,对上述商值5.33取整可以得到5,即分配至各个参数服务器的分片个数为5。
[0077]
在步骤s403中,根据分片个数,确定向各参数服务器分配的分片序号。
[0078]
本步骤中,可以参考图5,图5示出本公开实施例中根据分片个数,确定向各参数服务器分配的分片序号的流程示意图,包含步骤s501-步骤s502:
[0079]
在步骤s501中,对于前n-1个参数服务器,根据分片序号由小到大的顺序,依次向每个参数服务器分配与分片个数相对应的分片。
[0080]
本步骤中,仍以预设分片数目为16,参数服务器的数目为3(参数服务器0、1、2)为例进行说明,则向参数服务器0分配的分片序号为0至4,向参数服务器1分配的分片序号为5至9。
[0081]
在步骤s502中,将未分配的分片序号确定为分配至第n个参数服务器的分片序号。
[0082]
本步骤中,可以将未分配的分片序号10至15确定为分配至参数服务器2的分片序号。
[0083]
在确定出分配至各个参数服务器的分片序号之后,数据分片终端可以基于上述分片序号向各个参数服务器发送参数加载通知(包含各个参数服务器需要加载的分片序号),以使各个参数服务器加载与分片序号相对应的分片,并创建对应其分片的索引。
[0084]
具体的,参考图6,图6示出本公开实施例中各个参数服务器创建分片对应的索引的流程示意图,包含步骤s601-步骤s603:
[0085]
在步骤s601中,获取分配至参数服务器的分片序号,以及,分配至参数服务器的分片个数。
[0086]
本步骤中,各个参数服务器可以获取分配至自身的分片序号,并根据分片序号确定出分配至自身的分片个数。
[0087]
在步骤s602中,获取参数服务器的标识与分片个数之间的乘积。
[0088]
本步骤中,示例性的,对于参数服务器1而言,参照上述步骤s401的相关解释可知,参数服务器1中存储了5个分片,则参数服务器的标识为1,分片个数为5,其乘积为1*5=5。
[0089]
在步骤s603中,根据上述分片序号和上述乘积的差值,确定各分片对应的索引。
[0090]
本步骤中,参照上述步骤s501的相关解释可知,参数服务器1存储的分片序号为5-9,则对于分片5,其分片序号为5,与上述乘积5的差值为5-5=0,则分片5在参数服务器1内的索引为0;对于分片6,其分片序号为6,与上述乘积5的差值为6-5=1,则分片6在参数服务器1内的索引为1;对于分片7,其分片序号为7,与上述乘积5的差值为7-5=2,则分片7在参数服务器1内的索引为2;对于分片8,其分片序号为8,与上述乘积5的差值为8-5=3,则分片8在参数服务器1内的索引为3;对于分片9,其分片序号为9,与上述乘积5的差值为9-5=4,则分片9在参数服务器1内的索引为4,从而实现将各个分片的标识映射至各个参数服务器内。
[0091]
示例性的,参考表1,表1示出分配至各个参数服务器的分片序号、分片个数及每个分片在所属参数服务器内的索引的示意性表格:
[0092]
表1
[0093][0094]
需要说明的是,当模型训练过程中,参数服务器的数目发生变更时,举例而言,变更后的参数服务器的目标数目为5个(即参数服务器的标识为0-4),则可以在无需对参数重新分片的情况下,直接执行本公开中的步骤s220,具体的,可以根据上述预设分片数目和上述目标数目,重新计算分配至各个参数服务器的目标分片序号。具体的,可以先获取预设分片数目除以目标数目所得的商值(16/5=3.2),并对该商值进行向下取整(3.2向下取整得到3),从而,可以确定出分配至参数服务器0的目标分片序号为0-2,分配至参数服务器1的目标分片序号为3-5,分配至参数服务器2的目标分片序号为6-8,分配至参数服务器3的目标分片序号为9-11,分配至参数服务器4的目标分片序号为12-15。
[0095]
进一步的,可以向各个参数服务器发送参数加载通知,以使各个参数服务器加载与目标分片序号相对应的分片,并执行上述步骤s601-步骤s603,创建每个分片对应对应的索引。示例性的,以参数服务器2为例进行说明,则分片6在参数服务器2内的索引为0,分片7在参数服务器2内的索引为1,分片8在参数服务器2内的索引为2。
[0096]
示例性的,可以参考表2,表2示出将参数服务器的数目调整为5个之后,向各个参数服务器分配的目标分片序号、数目及每个分片在所属参数服务器内对应的索引的示意性表格:
[0097]
表2
[0098][0099]
基于以上技术方案可知,本公开不仅能够减小单个服务器节点的数据操作压力,提升数据的查询和召回效率,还能够解决相关技术中当参数服务器的数目发生变动时,需要对参数重新分片的技术问题,当参数服务器数目发生变动时,只需要调整每个参数服务器中存储的分片序号并重新加载参数即可,无需对参数重新分片,从而,节省了重分片操作的时间,提高了离线训练和在线推理之间模型流转的效率,使得离线训练导出的模型能够快速推到线上并提供推理服务,提升业务效果。
[0100]
本公开还提供了一种数据处理装置,图7示出本公开一示例性实施例中数据处理
装置的结构示意图;如图7所示,数据处理装置700可以包括数据分片模块710和分片加载模块720。其中:
[0101]
数据分片模块710,用于按照预设分片数目将待存储数据划分为带有分片序号的多个分片;
[0102]
分片加载模块720,用于根据所述预设分片数目和所述参数服务器的数目,确定分配至各所述参数服务器的分片序号,以使各所述参数服务器加载所述分片序号对应的分片,并为所述分片创建索引。
[0103]
在本公开的示例性实施例中,所述待存储数据包括用于训练机器学习模型的多个模型参数;数据分片模块710,被配置为:
[0104]
利用预设的哈希算法确定各所述模型参数对应的哈希值;对各所述哈希值与所述预设分片数目进行取余运算,得到各所述模型参数所属的分片序号;将所述所属的分片序号相同的模型参数划分为一个分片,以获得所述带有分片序号的多个分片。
[0105]
在本公开的示例性实施例中,分片加载模块720,被配置为:
[0106]
获取所述预设分片数目除以所述参数服务器的数目所得的商值;对所述商值进行向下取整,得到向各所述参数服务器分配的分片个数;根据所述分片个数,确定分配至各所述参数服务器的分片序号。
[0107]
在本公开的示例性实施例中,分片加载模块720,被配置为:
[0108]
对于前n-1个参数服务器,根据所述分片序号由小到大的顺序,依次向每个参数服务器分配与所述分片个数相对应的分片;将未分配的分片序号确定为分配至各第n个参数服务器的分片序号;n表示所述参数服务器的数目,n为大于1的整数。
[0109]
在本公开的示例性实施例中,分片加载模块720,被配置为:
[0110]
当所述参数服务器的数目发生变更时,获取变更后的所述参数服务器的目标数目;根据所述预设分片数目和所述目标数目,确定分配至各所述参数服务器的目标分片序号,以使各所述参数服务器加载所述目标分片序号对应的分片,并为所述分片创建索引。
[0111]
上述数据处理装置中各模块的具体细节已经在对应的数据处理方法中进行了详细的描述,因此此处不再赘述。
[0112]
本公开还提供了一种数据处理装置,图8示出本公开另一示例性实施例中数据处理装置的结构示意图;如图8所示,数据处理装置800可以包括序号获取模块810、乘积获取模块820和索引创建模块830。其中:
[0113]
序号获取模块810,用于获取分配至所述参数服务器的分片个数,以及,分配至所述参数服务器的分片序号;
[0114]
乘积获取模块820,用于获取所述参数服务器的标识与所述分片个数之间的乘积;
[0115]
索引创建模块830,用于根据各所述分片序号和所述乘积的差值,确定各所述分片对应的索引。
[0116]
上述数据处理装置中各模块的具体细节已经在对应的数据处理方法中进行了详细的描述,因此此处不再赘述。
[0117]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模
块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0118]
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0119]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
[0120]
本技术还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
[0121]
计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0122]
计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0123]
计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的方法。
[0124]
此外,在本公开实施例中还提供了一种能够实现上述方法的电子设备。
[0125]
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0126]
下面参照图9来描述根据本公开的这种实施方式的电子设备900。图9显示的电子设备900仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0127]
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930以及显示单元940。
[0128]
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元910执行,使得所述处理单元910执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元910可以执行如图2中所示的:步骤s210,按照预设分片数目将待存储数据划分为带有分片序号的多个分片;步骤s220,根据所述预设分
片数目和所述参数服务器的数目,确定分配至各所述参数服务器的分片序号,以使各所述参数服务器加载所述分片序号对应的分片,并为所述分片创建索引。
[0129]
存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)9201和/或高速缓存存储单元9202,还可以进一步包括只读存储单元(rom)9203。
[0130]
存储单元920还可以包括具有一组(至少一个)程序模块9205的程序/实用工具9204,这样的程序模块9205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0131]
总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0132]
电子设备900也可以与一个或多个外部设备1000(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备900交互的设备通信,和/或与使得该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0133]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1