CN111884949B - Ab实验的分流方案确定、分流实现方法、装置及系统 - Google Patents
Ab实验的分流方案确定、分流实现方法、装置及系统 Download PDFInfo
- Publication number
- CN111884949B CN111884949B CN202010775645.8A CN202010775645A CN111884949B CN 111884949 B CN111884949 B CN 111884949B CN 202010775645 A CN202010775645 A CN 202010775645A CN 111884949 B CN111884949 B CN 111884949B
- Authority
- CN
- China
- Prior art keywords
- user
- experiment
- traffic
- hash chain
- information
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/808—User-type aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例提供了一种AB实验的流量分配方案确定、分配实现方法、装置及系统。在AB实验中的用户流量分配方案确定方法中,响应于获取到针对AB实验的当前用户流量分配请求,使用第一哈希因子将当前可分配用户流量打散分配至预定数目个流量分桶,根据各个目标实验版本的用户流量比例,确定各个目标实验版本的对应用户流量分桶区间;以及根据所确定出的各个目标实验版本的对应用户流量分桶区间,生成当前用户流量分配请求的当前用户流量分配方案。
Description
技术领域
本说明书实施例涉及计算机应用技术领域,具体地,涉及AB实验的分流方案确定、分流实现方法、装置及系统。
背景技术
AB实验是一种通过数据驱动来推进产品迭代、验证算法效果、获取业务产出等的方式,一般是将产品、页面、算法等不同方案作为AB实验的不同实验版本,从全体用户流量中划分一部分用户流量到不同实验版本中。在此基础上,为不同的实验版本设置不同的实验方案,观察分析实验指标效果,得到实验结论。
在AB实验中,通过分流算法将用户流量分配到需要分析的AB实验版本中,以支持后续数据分析。AB实验的分流算法需要确保各个实验版本中所分配的用户流量符合预期,且所分配的用户流量满足一致性、均匀性以及独立性。这样才能确保AB实验的有效性。
发明内容
鉴于上述,本说明书实施例提供了一种AB实验的分流方案确定、分流实现方法、装置及系统。在AB实验的用户流量分配方案确定方法中,响应于当前用户流量分配请求,所使用的第一哈希因子与先前用户流量分配请求使用的哈希因子不同,使用这样的第一哈希因子将当前可分配用户流量重新打散分配,确保了用户流量分配的均匀性,避免了先前已运行实验导致用户流量的特征发生变化而不满足均匀性,从而导致后续实验不准确的问题。
根据本说明书实施例的一个方面,提供了一种用于确定AB实验中的用户流量分配方案的方法,包括:响应于获取到针对AB实验的当前用户流量分配请求,使用第一哈希因子将当前可分配用户流量打散分配至预定数目个流量分桶,所述当前用户流量分配请求包括当前用户流量分配的目标实验的目标实验版本以及各个目标实验版本的用户流量比例;根据各个目标实验版本的用户流量比例,确定各个目标实验版本的对应用户流量分桶区间;以及根据所确定出的各个目标实验版本的对应用户流量分桶区间,生成当前用户流量分配请求的当前用户流量分配方案,其中,所述第一哈希因子与先前用户流量分配请求所对应的哈希因子不同。
可选地,在上述方面的一个示例中,所述预定数目个流量分桶是固定数目个流量分桶。
可选地,在上述方面的一个示例中,各个目标实验版本的用户流量比例是绝对用户流量比例,根据各个目标实验版本的用户流量比例,确定各个目标实验版本的对应流量分桶区间包括:基于各个目标实验版本的绝对用户流量比例和所述当前可分配用户流量,确定各个目标实验版本相对于所述当前可分配用户流量的相对用户流量比例;以及根据各个目标实验版本的相对用户流量比例,确定各个目标实验版本的对应流量分桶区间。
可选地,在上述方面的一个示例中,还包括:根据所述当前用户流量分配方案确定哈希链的新增哈希链节点,所述哈希链由多个哈希链节点依照用户流量分配顺序链接构成,每个哈希链节点与一次用户流量分配请求中的一个目标实验对应,并且记录在该次用户流量分配请求时针对该目标实验的用户流量分配信息;以及将所确定出的新增哈希链节点依照用户流量分配顺序链接到当前哈希链的链尾。
可选地,在上述方面的一个示例中,每个哈希链节点记录节点哈希因子、实验信息MD5值和流量分配列表,所述节点哈希因子是该哈希链节点所对应的用户流量分配请求所使用的哈希因子,所述实验信息MD5值是针对该哈希链节点所对应的实验信息的MD5值,所述流量分配列表包括响应于该哈希链节点所对应的用户流量分配请求而分配给该目标实验的所有流量分配信息,每个流量分配信息对应一个实验版本,每个流量分配信息包括对应实验版本的实验版本标识和用户流量分桶区间。
可选地,在上述方面的一个示例中,每个哈希链节点采用分层结构来记录所述节点哈希因子、实验信息MD5值和流量分配列表,所述分层结构包括哈希链根节点和实验版本子节点,所述哈希链根节点记录所述节点哈希因子,实验信息MD5值以及该次用户流量分配请求所分配的实验版本信息列表,所述实验版本子节点记录实验版本标识信息和各个实验版本所对应的用户流量分桶区间信息。
可选地,在上述方面的一个示例中,所述分层结构还包括流量分桶区间子节点,所述用户流量分桶区间信息被记录到所述流量分桶区间子节点,以及所述实验版本子节点记录各个实验版本所对应的用户流量分桶区间的区间标识信息。
可选地,在上述方面的一个示例中,还包括:利用当前哈希链来确定所述当前可分配用户流量。
可选地,在上述方面的一个示例中,所述当前用户流量分配请求包括:实验增加请求、实验版本增加请求和实验版本流量增加请求中的一种。
可选地,在上述方面的一个示例中,还包括:响应于获取到用户流量减少请求,从当前哈希链中确定出与所述用户流量减少请求对应的用户流量减少量匹配的用户流量减少信息;以及将所述用户流量减少信息对应的用户流量释放。
可选地,在上述方面的一个示例中,每个流量分配信息还包括:用于指示该流量分配信息对应的用户流量是否释放的第一流量使能信息,以及用于指向该流量分配信息对应的用户流量被释放成为可分配用户流量时的释放位置的指针,将所述用户流量减少信息对应的用户流量释放包括:将所述用户流量减少信息包括的各个流量分配信息中的第一流量使能信息设置为释放;以及将所述各个流量分配信息中的指针设置为指向所述当前哈希链中的指定释放位置。
可选地,在上述方面的一个示例中,每个哈希链节点还记录用于指示该哈希链节点中的所有流量分配信息对应的用户流量是否释放的第二流量使能信息,所述方法还包括:当哈希链节点中所有流量分配信息中的第一流量使能信息被设置为释放时,将该哈希链节点的第二流量使能信息设置为释放。
可选地,在上述方面的一个示例中,还包括:按照所述当前哈希链从后向前的顺序依次遍历各个哈希链节点,将遍历到的第二流量使能信息设置为释放的哈希链节点从当前哈希链中移除,直至遍历到被设置为未释放的哈希链节点时停止遍历;以及将经过移除处理的哈希链中指针指向的哈希链长度大于所述经过移除处理的哈希链长度的指针更新为指向所述移除处理的哈希链的长度。
可选地,在上述方面的一个示例中,所述用户流量减少请求包括实验删除请求、实验版本删除请求和实验版本流量减少请求中的一种。
可选地,在上述方面的一个示例中,还包括:响应于接收到针对AB实验的用户流量调整请求,利用当前哈希链与已运行实验进行全量比较,以确定该用户流量调整请求包括的请求类型。
可选地,在上述方面的一个示例中,所确定出的用户流量调整请求按照以下顺序依次进行处理:实验删除请求,实验版本删除请求,实验版本流量减少请求,用户流量分配请求。
可选地,在上述方面的一个示例中,还包括:将当前哈希链提供给用户流量分配平台,以供所述用户流量分配平台来根据该当前哈希链进行用户流量分配。
根据本说明书实施例的另一方面,还提供一种用于实现AB实验中的用户流量分配的方法,包括:获取AB实验平台提供的哈希链,所述哈希链由多个哈希链节点依照用户流量分配顺序链接构成,每个哈希链节点与一次用户流量分配请求中的一个目标实验对应,并且记录在该次用户流量分配请求时针对该目标实验的实验版本的用户流量分配信息;针对每个用户流量,按照所述哈希链的哈希链节点链接顺序,依次使用各个哈希链节点来确定该用户流量是否与该哈希链节点中的流量分配信息匹配;以及在用户流量与流量分配信息匹配时,将该用户流量分配给该流量分配信息对应的实验版本。
可选地,在上述方面的一个示例中,每个哈希链节点记录节点哈希因子和流量分配列表,所述节点哈希因子是该哈希链节点所对应的用户流量分配请求所使用的哈希因子,所述流量分配列表包括响应于该哈希链节点所对应的用户流量分配请求而分配给该目标实验的所有流量分配信息,每个流量分配信息对应一个实验版本,每个流量分配信息包括对应实验版本的实验版本标识和用户流量分桶区间。
可选地,在上述方面的一个示例中,针对每个用户流量,按照所述哈希链的哈希链节点链接先后顺序,依次使用各个哈希链节点来确定该用户流量是否与该哈希链节点中的用户流量分配信息匹配包括:针对每个用户流量,按照所述哈希链的哈希链节点链接先后顺序,依次使用各个哈希链节点按照以下方式来确定该用户流量是否与该哈希链节点中的用户流量分配信息匹配:根据用户流量的标识和哈希链节点中的节点哈希因子得到该用户流量对应的散列值;对所述散列值进行取模计算;以及将取模计算的结果与该哈希链节点中的各个用户流量分桶区间进行匹配,若所述结果在用户流量分桶区间内,则与该用户流量分桶区间匹配成功;若所述结果不在用户流量分桶区间内,则与该用户流量分桶区间不匹配。
根据本说明书实施例的另一方面,还提供一种用于确定AB实验中的用户流量分配方案的装置,包括:流量打散单元,响应于获取到针对AB实验的当前用户流量分配请求,使用第一哈希因子将当前可分配用户流量打散分配至预定数目个流量分桶,所述当前用户流量分配请求包括当前用户流量分配的目标实验的目标实验版本以及各个目标实验版本的用户流量比例;流量分桶单元,根据各个目标实验版本的用户流量比例,确定各个目标实验版本的对应用户流量分桶区间;以及流量分配方案生成单元,根据所确定出的各个目标实验版本的对应用户流量分桶区间,生成当前用户流量分配请求的当前用户流量分配方案,其中,所述第一哈希因子与先前用户流量分配请求所对应的哈希因子不同。
可选地,在上述方面的一个示例中,各个目标实验版本的用户流量比例是绝对用户流量比例,所述流量分桶单元:基于各个目标实验版本的绝对用户流量比例和所述当前可分配用户流量,确定各个目标实验版本相对于所述当前可分配用户流量的相对用户流量比例;以及根据各个目标实验版本的相对用户流量比例,确定各个目标实验版本的对应流量分桶区间。
可选地,在上述方面的一个示例中,还包括:新增节点确定单元,根据所述当前用户流量分配方案确定哈希链的新增哈希链节点,所述哈希链由多个哈希链节点依照用户流量分配顺序链接构成,每个哈希链节点与一次用户流量分配请求中的一个目标实验对应,并且记录在该次用户流量分配请求时针对该目标实验的用户流量分配信息;以及新增节点链接单元,将所确定出的新增哈希链节点依照用户流量分配顺序链接到当前哈希链的链尾。
可选地,在上述方面的一个示例中,每个哈希链节点记录节点哈希因子、实验信息MD5值和流量分配列表,所述节点哈希因子是该哈希链节点所对应的用户流量分配请求所使用的哈希因子,所述实验信息MD5值是针对该哈希链节点所对应的实验信息的MD5值,所述流量分配列表包括响应于该哈希链节点所对应的用户流量分配请求而分配给该目标实验的所有流量分配信息,每个流量分配信息对应一个实验版本,每个流量分配信息包括对应实验版本的实验版本标识和用户流量分桶区间。
可选地,在上述方面的一个示例中,每个哈希链节点采用分层结构来记录所述节点哈希因子、实验信息MD5值和流量分配列表,所述分层结构包括哈希链根节点和实验版本子节点,所述哈希链根节点记录所述节点哈希因子,实验信息MD5值以及该次用户流量分配请求所分配的实验版本信息列表,所述实验版本子节点记录实验版本标识信息和各个实验版本所对应的用户流量分桶区间信息。
可选地,在上述方面的一个示例中,所述分层结构还包括流量分桶区间子节点,所述用户流量分桶区间信息被记录到所述流量分桶区间子节点,以及所述实验版本子节点记录各个实验版本所对应的用户流量分桶区间的区间标识信息。
可选地,在上述方面的一个示例中,还包括:流量减少信息确定单元,响应于获取到用户流量减少请求,从当前哈希链中确定出与所述用户流量减少请求对应的用户流量减少量匹配的用户流量减少信息;以及流量释放单元,将所述用户流量减少信息对应的用户流量释放。
可选地,在上述方面的一个示例中,每个流量分配信息还包括:用于指示该流量分配信息对应的用户流量是否释放的第一流量使能信息,以及用于指向该流量分配信息对应的用户流量被释放成为可分配用户流量时的释放位置的指针,所述流量释放单元:将所述用户流量减少信息包括的各个流量分配信息中的第一流量使能信息设置为释放;以及将所述各个流量分配信息中的指针设置为指向所述当前哈希链中的指定释放位置。
可选地,在上述方面的一个示例中,每个哈希链节点还记录用于指示该哈希链节点中的所有流量分配信息对应的用户流量是否释放的第二流量使能信息,所述流量释放单元:当哈希链节点中所有流量分配信息中的第一流量使能信息被设置为释放时,将该哈希链节点的第二流量使能信息设置为释放。
可选地,在上述方面的一个示例中,还包括:节点移除单元,按照所述当前哈希链从后向前的顺序依次遍历各个哈希链节点,将遍历到的第二流量使能信息设置为释放的哈希链节点从当前哈希链中移除,直至遍历到被设置为未释放的哈希链节点时停止遍历;以及指针设置单元,将经过移除处理的哈希链中指针指向的哈希链长度大于所述经过移除处理的哈希链长度的指针更新为指向所述移除处理的哈希链的长度。
可选地,在上述方面的一个示例中,还包括:全量比较单元,响应于接收到针对AB实验的用户流量调整请求,利用当前哈希链与已运行实验进行全量比较,以确定该用户流量调整请求包括的请求类型。
可选地,在上述方面的一个示例中,还包括:哈希链提供单元,将当前哈希链提供给用户流量分配平台,以供所述用户流量分配平台来根据该当前哈希链进行用户流量分配。
根据本说明书实施例的另一方面,还提供一种用于实现AB实验中的用户流量分配的装置,包括:哈希链获取单元,获取AB实验平台提供的哈希链,所述哈希链由多个哈希链节点依照用户流量分配顺序链接构成,每个哈希链节点与一次用户流量分配请求中的一个目标实验对应,并且记录在该次用户流量分配请求时针对该目标实验的实验版本的用户流量分配信息;流量匹配单元,针对每个用户流量,按照所述哈希链的哈希链节点链接顺序,依次使用各个哈希链节点来确定该用户流量是否与该哈希链节点中的流量分配信息匹配;以及流量分配单元,在用户流量与流量分配信息匹配时,将该用户流量分配给该流量分配信息对应的实验版本。
可选地,在上述方面的一个示例中,每个哈希链节点记录节点哈希因子和流量分配列表,所述节点哈希因子是该哈希链节点所对应的用户流量分配请求所使用的哈希因子,所述流量分配列表包括响应于该哈希链节点所对应的用户流量分配请求而分配给该目标实验的所有流量分配信息,每个流量分配信息对应一个实验版本,每个流量分配信息包括对应实验版本的实验版本标识和用户流量分桶区间。
可选地,在上述方面的一个示例中,所述流量匹配单元:针对每个用户流量,按照所述哈希链的哈希链节点链接先后顺序,依次使用各个哈希链节点按照以下方式来确定该用户流量是否与该哈希链节点中的用户流量分配信息匹配:根据用户流量的标识和哈希链节点中的节点哈希因子得到该用户流量对应的散列值;对所述散列值进行取模计算;以及将取模计算的结果与该哈希链节点中的各个用户流量分桶区间进行匹配,若所述结果在用户流量分桶区间内,则与该用户流量分桶区间匹配成功;若所述结果不在用户流量分桶区间内,则与该用户流量分桶区间不匹配。
根据本说明书实施例的另一方面,还提供一种用于实现AB实验中的用户流量分配的系统,所述系统包括AB实验平台和用户流量分配平台,所述AB实验平台包括上述中任一所述的AB实验中的用户流量分配方案确定装置;以及用户流量分配平台包括上述中任一所述的AB实验中的用户流量分配实现装置。
根据本说明书实施例的另一方面,还提供一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的AB实验中的用户流量分配方案确定方法。
根据本说明书实施例的另一方面,还提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的AB实验中的用户流量分配方案确定方法。
根据本说明书实施例的另一方面,还提供一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的AB实验中的用户流量分配实现方法。
根据本说明书实施例的另一方面,还提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的AB实验中的用户流量分配实现方法。
附图说明
通过参照下面的附图,可以实现对于本说明书内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
图1示出了本说明书实施例的AB实验中的用户流量分配方案确定方法的一个示例的流程图。
图2示出了本说明书实施例的哈希链更新方法的一个示例的流程图。
图3示出了本说明书实施例的哈希链的一个示例的示意图。
图4示出了本说明书实施例的AB实验中的用户流量分配方案确定方法的一个示例的流程图。
图5(a)示出了本说明书实施例的AB实验中请求实验版本流量减少的一个示例的流程图。
图5(b)示出了本说明书实施例的AB实验中请求实验版本流量减少的另一个示例的流程图。
图6示出了本说明书实施例的AB实验中的用户流量分配实现方法的一个示例的流程图。
图7示出了本说明书实施例的AB实验中的用户流量分配方案确定装置的一个示例的方框图。
图8示出了本说明书实施例的AB实验中的用户流量分配方案确定装置的一个示例的方框图。
图9示出了本说明书实施例的AB实验中的用户流量分配方案确定装置的一个示例的方框图。
图10示出了本说明书实施例的AB实验中的用户流量分配实现装置的一个示例的方框图。
图11示出了本说明书实施例的AB实验中的用户流量分配实现系统的一个示例的方框图。
图12示出了本说明书实施例的用于实现AB实验中的用户流量分配方案确定方法的电子设备的方框图。
图13示出了本说明书实施例的用于实现AB实验中的用户流量分配实现方法的电子设备的方框图。
具体实施方式
以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
AB实验是为一个实验对象制定两个或两个以上的版本,在同一时间维度上分别让特征分布相同的用户流量来访问这些版本,再采集每个版本对应的用户流量的用户体验数据、业务数据等,然后对所采集的用户流量数据进行分析、评估以确定各个版本对应的实验指标效果。最后可以将实验指标效果最好的版本作为最终采用的版本。
AB实验的实验对象可以是一个产品,比如,在对app产品进行更新前,可以针对该app进行AB实验,以确定新版本app相比于老版本app在用户群体中的效果。其中,该app的老版本和新版本分别作为AB实验的两个实验版本。实验对象还可以是一个产品中的一个或多个元素,比如,针对app中的按键颜色进行AB实验,此时的实验对象是按键颜色。其中,红色按键、蓝色按键以及黄色按键分别作为AB实验的三个实验版本。
实验指标可以包括点击量、浏览时长、购买量等,实验指标可以根据实验对象来确定,不同的实验对象所采用的实验指标可以不同。例如,针对网页的背景颜色进行AB实验,实验版本包括白色、黄色和绿色,则该实验中的实验指标可以是浏览时长,在实验过程中实验版本对应的用户浏览时间越长,表示该实验版本的效果越好。在一个实验中,可以采用一个实验指标,也可以采用多个实验指标,当采用多个实验指标时,可以将多个实验指标综合起来判断各个实验版本的效果。
图1示出了本说明书实施例的AB实验中的用户流量分配方案确定方法的一个示例100的流程图。
图1示出的该方法可以由AB实验平台来执行,AB实验平台可以用于为发起AB实验并为AB实验制定实验方案,比如,AB实验包括的实验版本,各个实验版本分配的用户流量比例,实验生命周期,实验指标等,此外,AB实验平台还可以为AB实验确定用户流量分配方案。
如图1所示,在块110,获取针对AB实验的当前用户流量分配请求。
当前用户流量分配请求可以由AB实验的控制实施方发送的,控制实施方可以发起AB实验、对运行中的实验进行调整等。
例如,控制实施方与AB实验平台通信连接,控制实施方需要执行用户流量分配的操作时,生成当前用户流量分配请求,并将所生成的当前用户流量分配请求发送给AB实验平台。又例如,控制实施方属于AB实验平台的一部分,控制实施方可以直接在AB实验平台上生成当前用户流量分配请求,AB实验平台也可以直接获取到当前用户流量分配请求。
当前用户流量分配请求可以包括当前用户流量分配的目标实验的目标实验版本以及各个目标实验版本的用户流量比例。
目标实验是当前用户流量分配的对象,目标实验可以是新创建的实验,还可以是当前已运行的实验。在一个示例场景下,当前还没有运行的实验,当前用户流量分配的目标实验是新创建的第一个实验。在另一个示例场景下,当前存在已运行的实验,目标实验可以是新创建的实验,此时目标实验与已运行的实验相互独立。目标实验可以是已运行的实验中的一个或多个实验。
目标实验版本是需要分配用户流量的实验版本,目标实验版本可以是目标实验所包括的实验版本中的部分或全部。当目标实验版本是目标实验所包括的实验版本中的部分时,目标实验版本可以包括一个或多个实验版本。
例如,目标实验是按键颜色实验,包括三个实验版本:红色按键、蓝色按键和黄色按键,若当前用户流量分配请求是增加红色按键的实验版本的用户流量,则目标实验版本仅是目标实验所包括的三个实验版本中的一个实验版本,即红色按键的实验版本。若当前用户流量分配请求是增加红色按键、蓝色按键和黄色按键三个实验版本的用户流量,此时目标实验版本是目标实验所包括的实验版本中的全部实验版本。
目标实验版本的用户流量比例可以是指定的,各个目标实验版本的用户流量比例可以不同,也可以相同。例如,同一目标实验中的目标实验版本的用户流量比例可以相同。
每个目标实验版本的用户流量都来自于目标实验对应的总用户流量,总用户流量(又称为初始层剩余用户流量)是能够用于目标实验的所有用户流量。比如,对于一个app来说,总的用户流量包括该app上的所有注册用户,这些注册用户都能够用于针对该app的AB实验。
针对一个实验对象的总用户流量可以是固定的,当存在针对该实验对象的已运行实验时,该已运行实验会消耗一部分用户流量,剩余用户流量是后续的用户流量分配请求能够使用的用户流量。剩余用户流量又可以称为层上剩余用户流量,每一层可以认为是一个流量入口,表示当前可分配的所有用户流量。例如,一个app的总用户流量是100%,一个已运行实验中的两个版本各占10%,则剩余用户流量是80%,这80%的用户流量是后续的用户流量分配请求能够分配的所有用户流量。
在一个示例中,当前用户流量分配请求可以包括:实验增加请求、实验版本增加请求和实验版本流量增加请求等请求中的任一种。
实验增加请求是请求新增一个或多个新的实验,实验增加请求可以是在已运行实验的基础上新增实验,也可以是在没有已运行实验的基础上新增实验,此时新增的实验可以是第一个实验。
实验版本增加请求可以是在已运行实验中新增实验版本,比如,可以是在一个已运行实验中新增一个或多个实验版本,还可以是在多个已运行实验中都新增实验版本。
实验版本流量增加请求可以是增加已运行实验版本中的一个或多个实验版本的用户流量。当增加多个实验版本的用户流量时,该多个实验版本可以属于同一个实验,还可以分别属于不同的实验。
在获取到当前用户流量分配请求后,在块120,可以使用第一哈希因子将当前可分配用户流量打散分配至预定数目个流量分桶。
当前可分配用户流量是能够分配给目标实验的剩余用户流量。若当前没有实验运行,即目标实验会成为第一个AB实验,则当前可分配用户流量是100%。若当前有实验运行,则可以将总用户流量减去已运行实验占用的用户流量,从而可以得到当前可分配用户流量。
数量级较大的用户流量被打散分配到各个流量分桶,属于同一个流量分桶的用户流量是一部分用户流量,这样数量级较大的用户流量被均匀分成若干份用户流量,每一份用户流量包括一部分用户流量。当对用户流量进行分配时,可以以流量分桶为单位进行分配。这样可以实现将用户流量分配给AB实验中的各个实验版本。
例如,待分配的流量分桶有1000个,总用户流量有10万,将这10万的总用户流量打散分配至1000个流量分桶中,每个流量分桶包括有100个用户流量。当一个实验版本的用户流量比例是10%,则将1000个流量分桶中的100个流量分桶分配给该实验版本,即属于该100个流量分桶的用户流量都分配给该实验版本。
在本说明书中,流量分桶的数量可以是预定数目,预定数目可以是指定的。流量分桶的数量越大,用户流量分配的精确度越高。在一个示例中,预定数目是固定数目,在每次对用户流量进行打散分配时都是将用户流量分配至固定数目的流量分桶,这样可以避免每次都要重新确定流量分桶的数量,简化了打散分配的操作,提升了便利性。
在另一个示例中,预定数目是非固定数目,不同次的打散分配所采用的流量分桶的数目可以不同,每次打散分配可以根据实际情况重新确定流量分桶的数量。例如,在上一次打散分配时所采用的流量分桶的数量使得用户流量分配的精确度偏低,则在本次打散分配时增加流量分桶的数量,以提高用户流量分配的精确度。该示例中的预定数目是非固定的,每次打散分配时能够适时调整流量分桶的数目,提高用户流量分配方案的灵活性。
将用户流量打散分配的方式可以是使用哈希因子,使用不同的哈希因子对用户流量进行打散分配,所得到的分配结果不同。例如,使用哈希因子a对当前可分配用户流量打散分配的分配结果中,用户流量1被分配至第50号流量分桶中。而使用哈希因子b对当前可分配用户流量打散分配的分配结果中,该用户流量1被分配至第1000号流量分桶中。
在本说明书中,所使用的第一哈希因子与先前用户流量分配请求所对应的哈希因子不同,也就是说,每次用户流量分配请求对应有一个哈希因子,并且不同的用户流量分配请求对应的哈希因子不同。这样,在存在已运行实验时,每次使用不同的哈希因子对当前可分配用户流量进行打散时是将当前可分配用户流量进行重新打散分配,避免了先前已运行实验导致用户流量的特征发生变化而不满足均匀性,从而导致后续实验不准确的问题。
在一个示例中,第一哈希因子以及其他哈希因子的构成可以采用实验标识和数字序列组合的形式,还可以采用实验标识、实验版本标识和数字序号组合的形式。其中,数字序列可以是时间戳,该时间戳可以是节点创建的时间。以第一哈希因子为例,第一哈希因子中的实验标识是当前用户流量分配请求对应的目标实验的实验标识。例如,第一哈希因子是Exp-1,其中,“Exp”表示实验标识,“1”表示组成第一哈希因子的数字序列。
使用第一哈希因子将用户流量打散分配的一个示例中,可以根据用户流量的标识和第一哈希因子得到对应的散列值。具体地,可以将用户流量的标识与第一节点哈希因子进行拼接处理以得到一个字符串,对该字符串进行MD5运算,可以得到一个固定长度的散列值。然后,利用流量分桶的预定数目对散列值进行取模计算,所得到的计算结果即表示该用户流量对应分配的流量分桶。
在将当前可分配用户流量进行打散分配后,在块130,根据各个目标实验版本的用户流量比例,确定各个目标实验版本的对应用户流量分桶区间。
用户流量分桶区间可以表示分配到该流量分桶区间的用户流量,例如,用户流量分桶区间是1-100,表示被分配到第1-100的流量分桶中的用户流量。目标实验版本的对应用户流量分桶区间可以表示属于对应用户流量分桶区间的用户流量被分配至目标实验版本。
在一个示例中,各个目标实验版本的用户流量比例是绝对用户流量比例,绝对用户流量比例是相对于总用户流量的比例,相对用户流量比例是相对于剩余用户流量的比例。例如,总用户流量是100%,已运行实验A中的两个版本各占10%,则当前剩余用户流量是80%,新增一个目标实验B,包括B1和B2两个目标实验版本,B1和B2的绝对用户流量比例是20%,对应地,相对用户流量比例是25%。这里的20%是相对于总用户流量100%的比例,25%是相对于当前剩余用户流量80%的比例。
在该示例中,可以基于各个目标实验版本的绝对用户流量比例和当前可分配用户流量,确定各个目标实验版本相对于当前可分配用户流量的相对用户流量比例。
具体地,将各个目标实验版本的绝对用户流量比例与当前可分配用户流量的商,确定为各个目标实验版本相对于当前可分配用户流量的相对用户流量比例。
例如,当前可分配用户流量是80%,其中一个目标实验版本的绝对用户流量比例20%,则该目标实验版本相对于当前可分配用户流量的相对用户流量比例是:20%/80%=25%。
在确定出各个目标实验版本的相对用户流量比例之后,可以根据各个目标实验版本的相对用户流量比例来确定各个目标实验版本的对应流量分桶区间。
每个用户流量分配请求对应的流量分桶具有序号,比如,可以按序编号。将各个目标实验版本的相对用户流量比例与流量分桶的预定数目相乘以得到该目标实验版本对应分配到的流量分桶数量(以下称为第一数量),然后从预定数目个流量分桶中选取第一数量的流量分桶,所选取的第一数量的流量分桶即为分配给该目标实验版本的用户流量。
在一个示例中,选取流量分桶的方式可以是按序选取,比如,预定数目是1000,则当前用户流量分配请求对应有1000个流量分桶,分别编号为1-1000,当确定的目标实验版本对应分配到的流量分桶数量是250,则可以按序选取分桶区间1-250作为该目标实验版本的分桶区间。
当存在有多个目标实验版本时,每个目标实验版本对应一个用户流量分桶区间,在从预定数目个流量分桶中选取对应的分桶区间时,对各个目标实验版本对应的分桶区间的先后顺序可以不限定。
例如,预定数目是1000,目标实验版本a的相对用户流量比例是25%,目标实验版本b的相对用户流量比例是20%,则可以先确定目标实验版本a对应的用户流量分桶区间是1-250,再确定目标实验版本b对应的用户流量分桶区间是251-450;还可以先确定目标实验版本b对应的用户流量分桶区间是1-200,再确定目标实验版本a对应的用户流量分桶区间是201-450。
在块140,根据所确定出的各个目标实验版本的对应用户流量分桶区间,生成当前用户流量分配请求的当前用户流量分配方案。
图2示出了本说明书实施例的哈希链更新方法的一个示例200的流程图。
如图2所示,块210至块240的操作与图1中的块110至块140的操作相同,可以参照上述图1的块110至块140的操作。下面仅对不同之处进行描述。
在生成当前用户流量分配请求的当前用户流量分配方案后,在块250,可以根据所生成的当前用户流量分配方案确定哈希链的新增哈希链节点。
哈希链可以由多个哈希链节点依照用户流量分配顺序链接构成,在一个示例中,哈希链可以与用户流量源一一对应,用户流量源可以包括一个实验对象或实验对象所属主体的总用户流量,一个用户流量源的初始用户流量是100%。例如,AB实验的实验对象一个app,该app的总用户流量是一个用户流量源。又例如,实验对象是网页的背景色,该实验对象所属主体是该网页,该网页的总用户流量是一个用户流量源。
不同的用户流量源对应的哈希链不同,属于同一用户流量源的用户流量的分配信息被记录在同一条哈希链上。
例如,app1对应哈希链a,则针对该app1的AB实验,比如,app1的背景色实验、app1的一个按键形状实验、app1的一个按键颜色实验等,这些实验的用户流量分配信息都会被记录在哈希链a上。App2对应哈希链b,则针对该app2的AB实验的用户流量分配信息都会被记录在哈希链b上。
用户流量分配顺序可以是用户流量分配请求的顺序,用户流量分配请求的时间越早,则该用户流量分配请求对应的哈希链节点在哈希链上的顺序越靠前。当一个用户流量分配请求对应多个哈希链节点时,该多个哈希链节点在哈希链上的顺序可以是随机的。例如,一个用户流量分配请求针对目标实验1和目标实验2,目标实验1对应哈希链节点1,目标实验2对应哈希链节点2,则哈希链节点1和哈希链节点2在哈希链上顺序可以是哈希链节点1在前,还可以是哈希链节点2在前。
当多个用户流量分配请求的请求时刻相同且该多个用户流量分配请求被同时处理时,多个用户流量分配请求对应的哈希链节点在哈希链上的顺序可以随机。
哈希链中的每个哈希链节点与一次用户流量分配请求中的一个目标实验对应,并且记录在该次用户流量分配请求时针对该目标实验的用户流量分配信息。
图3示出了本说明书实施例的哈希链的一个示例300的示意图。如图3所示的一条哈希链由n个哈希链节点(即图中的节点)依照用户流量分配顺序链接构成,也就是说,哈希链节点1是第一个用户流量分配请求对应的节点,哈希链节点n是最后一个用户流量分配请求对应的节点。
当一次用户流量分配请求对应多个目标实验时,则该次用户流量分配请求可以对应多个哈希链节点。一次用户流量分配请求中的一个目标实验可以对应一个哈希链节点,也可以对应多个哈希链节点。当一次用户流量分配请求中的一个目标实验对应多个哈希链节点时,该多个哈希链节点中记录的用户流量分配信息共同构成了在该次用户流量分配请求时针对该目标实验的用户流量分配信息。
以图3为例,若一次用户流量分配请求对应两个目标实验:目标实验1和目标实验2,则该次用户流量分配请求可以对应两个哈希链节点:哈希链节点1和哈希链节点2,哈希链节点1记录针对目标实验1的用户流量分配信息,哈希链节点2记录针对目标实验2的用户流量分配信息。当然,还可以哈希链节点1记录针对目标实验2的用户流量分配信息,哈希链节点2记录针对目标实验1的用户流量分配信息。
还是以图3为例,若一次用户流量分配请求对应目标实验3,该次用户流量分配请求针对目标实验3中的版本A1和版本A2,当该次用户流量分配请求仅对应哈希链节点3时,哈希链节点3记录针对目标实验3中的版本A1和版本A2的用户流量分配信息。当该次用户流量分配请求对应哈希链节点3和哈希链节点4时,哈希链节点3可以记录针对版本A1的用户流量分配信息,哈希链节点4可以记录针对版本A2的用户流量分配信息。
在本说明书的一个示例中,各个哈希链节点中的数据结构可以相同。每个哈希链节点可以记录节点哈希因子、实验信息MD5值和流量分配列表。其中,节点哈希因子是哈希链节点所对应的用户流量分配请求所使用的哈希因子,同一个用户流量分配请求对应的针对相同实验的各个哈希链节点中的节点哈希因子相同,同一个用户流量分配请求对应的针对不同实验的哈希链节点中的节点哈希因子可以不同,不同用户流量分配请求对应的节点哈希因子不同。如图3所示,哈希链节点1和哈希链节点2分别对应不同的用户流量分配请求,哈希链节点1中的节点哈希因子是Exp-1,哈希链节点2中的节点哈希因子是Exp-2。
哈希链节点中记录的实验信息MD5值是针对该哈希链节点所对应的实验信息的MD5值。实验信息MD5值与实验一一对应,每个实验对应一个实验信息MD5值,每个实验的实验信息MD5值用来验证该实验是否有调整。当实验信息MD5值发生变化时表示对应的实验也发生变化,比如,实验中的实验版本有增加或减少,实验版本的流量调整等。如图3所示,哈希链节点1中记录的实验信息MD5值是:MD5(Exp-1 Info)。
实验信息MD5值可以是由实验中的指定类型信息经过MD5运算得到的,指定类型信息可以包括实验标识信息、实验版本信息、各个实验版本对应的流量分桶信息以及绝对用户流量比例信息等。
具体地,在计算一个实验的实验信息MD5值时,将实验标识信息、实验版本信息、各个实验版本对应的流量分桶信息以及绝对用户流量比例信息分别用字符串来表示,再将各个信息对应的字符串拼接成一个字符串,对拼接而成的字符串进行MD5运算,得到一个固定长度的实验信息MD5值。当实验的实验标识信息、实验版本信息、流量分桶信息以及绝对用户流量比例信息中的任何一个信息发生变化时,则对应的实验信息MD5值也会发生变化,与变化之前的实验信息MD5值不一致。基于此,可以通过实验的实验信息MD5值来判断该实验是否发生变化。
当然,除了MD5算法得到的实验信息MD5值以外,还可以用其他哈希算法得到的散列值来判断该实验是否发生变化。
在针对当前用户流量分配请求进行用户流量分配时,目标实验的用户流量发生变化,导致目标实验对应的实验信息MD5值也变化。在这种情况下,需要重新计算目标实验的实验信息MD5值,并将哈希链中目标实验对应的哈希链节点中的实验信息MD5值进行更新。
流量分配列表可以包括响应于该哈希链节点所对应的用户流量分配请求而分配给该目标实验的所有流量分配信息,每个流量分配信息对应一个实验版本,每个流量分配信息可以包括对应实验版本的实验版本标识和用户流量分桶区间。每个流量分配信息还可以包括对应实验版本的绝对用户流量比例和指针等信息,其中,流量分配信息中的指针用于指向该流量分配信息中的用户流量被释放成为可分配用户流量时的释放位置,该释放位置可以是当前哈希链中的最后一个哈希链节点的下一个哈希链节点。
如图3所示,哈希链节点1中的流量分配列表包括m1个流量分配信息,分别为:ExpVer-1-1、…、ExpVer-1-m1,对应于实验版本1的流量分配信息ExpVer-1-1包括实验版本1的实验版本标识和用户流量分桶区间,对应于实验版本m1的流量分配信息ExpVer-1-m1包括实验版本m1的实验版本标识和用户流量分桶区间。
在一个示例中,各个哈希链节点可以采用分层结构来记录节点哈希因子、实验信息MD5值和流量分配列表,该分层结构可以包括哈希链根节点和实验版本子节点,其中,哈希链根节点可以记录节点哈希因子,实验信息MD5值以及该次用户流量分配请求所分配的实验版本信息列表,实验版本子节点可以记录实验版本标识信息和各个实验版本所对应的用户流量分桶区间信息。
如图3所示,哈希链节点1的分层结构包括的实验版本子节点记录:实验版本标识信息ExpVer-1-m1、绝对用户流量比例10%、指针-1以及实验版本所对应的用户流量分桶区间信息。其中,实验版本所对应的用户流量分桶区间信息包括有k个用户流量分桶区间信息,每个用户流量分桶区间信息用来表示一个用户流量分桶区间,比如,BucketRange-1和BucketRange-k分别表示其中的一个用户流量分桶区间。
在一个示例中,分层结构还可以包括流量分桶区间子节点,用户流量分桶区间信息被记录到流量分桶区间子节点,以及实验版本子节点记录各个实验版本所对应的用户流量分桶区间的区间标识信息。
如图3所示,实验版本子节点中记录的BucketRange-1和BucketRange-k分别是一个用户流量分桶区间的区间标识信息,针对用户流量分桶区间的区间标识信息BucketRange-k,对应的流量分桶区间子节点记录的流量分桶区间是1-100。
在上述示例中,哈希链节点采用分层结构来记录不同的各种信息,对于各个哈希链节点来说,相同类型信息存储在固定的结构分层中,由此,提升在哈希链节点中查询信息的便利性,从而提高查询效率。
然后,在块260,可以将所确定出的新增哈希链节点依照用户流量分配顺序链接到当前哈希链的链尾。
当新增哈希链节点仅一个时,可以直接将该新增哈希链节点链接到当前哈希链的链尾。当新增哈希链节点包括至少两个时,确定各个新增哈希链节点对应的用户流量分配请求的先后顺序,将排序第一的用户流量分配请求对应的新增哈希链节点先链接到当前哈希链的链尾,然后按照用户流量分配请求的先后顺序依次链接其他新增哈希链节点,直至将所有的新增哈希链节点都链接至哈希链。
在使用第一哈希因子将当前可分配用户流量进行打散分配操作之前,需要确定当前可分配用户流量。若当前没有已运行实验,则可以确定当前可分配用户流量是100%。若当前存在已运行实验,在一种确定方式中,可以利用当前哈希链来确定当前可分配用户流量。具体地,当前哈希链的哈希链节点中记录对应的一次用户流量分配请求时针对实验版本的绝对用户流量比例,将当前哈希链的各个哈希链节点中的绝对用户流量比例之和确定为已分配的用户流量,将总用户流量减去已分配的用户流量即可以得到当前可分配用户流量。
在另一种确定方式中,已运行的实验中的各个实验版本对应有运行日志,每个实验版本的运行日志用来记录实验版本运行过程中的各种实验运行信息,其中包括分配给该实验版本的用户流量。基于此,可以从运行日志中获取已运行实验中的各个实验版本对应的用户流量,所获取的用户流量之和即为已分配的用户流量,然后将总用户流量减去已分配的用户流量即可以得到当前可分配用户流量。
在本说明书的一个示例中,在将新增哈希链节点链接到当前哈希链的链尾后,可以将当前哈希链提供给用户流量分配平台,此时的当前哈希链是链接新增哈希链节点的哈希链。用户流量分配平台可以根据当前哈希链进行用户流量分配。
AB实验平台提供的当前哈希链记录了用户流量分配信息,由此,当前哈希链能够体现当前用户流量分配方案,AB实验平台将当前哈希链提供给用户流量分配平台,能够使得用户流量分配平台及时地根据AB实验平台生成的当前用户流量分配方案来进行用户流量分配。
图4示出了本说明书实施例的AB实验中的用户流量分配方案确定方法的一个示例400的流程图。
如图4所示,在块410,可以获取用户流量减少请求。
在一个示例中,用户流量减少请求可以包括实验删除请求、实验版本删除请求和实验版本流量减少请求等请求中的一种。
实验删除请求是请求将一个或多个已运行实验删除。当用户流量减少请求包括实验删除请求时,用户流量减少请求可以包括用户流量减少所针对实验的实验标识。
实验版本删除请求是请求将当前已运行实验中的一个或多个实验版本删除,在删除该一个或多个实验版本后,该实验的其他实验版本还继续运行。当用户流量减少请求包括实验版本删除请求时,用户流量减少请求可以包括用户流量减少所针对实验版本的实验版本标识。
实验版本流量减少请求是请求减少已运行实验版本中的用户流量,用户流量减少的实验版本还会继续运行。当用户流量减少请求包括实验版本流量减少请求时,用户流量减少请求可以包括用户流量减少所针对实验版本的实验版本标识以及用户流量减少量。
例如,当前已运行实验包括实验A和实验B,其中,实验A包括实验版本A1和A2,实验B包括实验版本B1和B2,实验版本A1、A2、B1和B2的分配用户流量都是15%,若用户流量减少请求是实验版本流量减少请求,且该实验版本流量减少请求包括实验版本B1的标识以及用户流量减少量为5%,则该用户流量减少请求将实验版本B1的用户流量减少5%,使得后续运行中分配给实验版本B1的用户流量是10%。
然后,在块420,从当前哈希链中确定出与用户流量减少请求对应的用户流量减少量匹配的用户流量减少信息。
用户流量减少请求对应的用户流量减少量是该用户流量减少请求需要减少的用户流量,比如,用户流量减少请求是请求减少实验版本B1中5%的用户流量,则该用户流量减少请求对应的用户流量减少量是5%。
与用户流量减少量匹配的用户流量减少信息是指该用户流量减少信息所指示的用户流量与用户流量减少量相同。比如,用户流量减少请求对应的用户流量减少量是5%,所匹配的用户流量减少信息指示的流量分桶区间包括的用户流量也是5%。
在用户流量减少请求是实验删除请求时,该用户流量减少请求对应的用户流量减少量是请求删除的实验中的所有用户流量,与用户流量减少量匹配的用户流量减少信息可以包括该实验对应的所有哈希链节点中的流量分配信息。
在用户流量减少请求是实验版本删除请求时,该用户流量减少请求对应的用户流量减少量是请求删除的实验版本中的所有用户流量,与用户流量减少量匹配的用户流量减少信息可以包括该实验版本对应的所有流量分配信息。
在用户流量减少请求是实验版本流量减少请求时,该用户流量减少请求对应的用户流量减少量是该实验版本中的部分用户流量,与用户流量减少量匹配的用户流量减少信息即为该部分用户流量对应的流量分配信息。
在一个示例中,当用户流量减少请求是实验版本流量减少请求时,可以按照当前哈希链从后向前的顺序从当前哈希链中确定出与用户流量减少请求对应的用户流量减少量匹配的用户流量减少信息。
当前哈希链从后向前的顺序是指当前哈希链从链尾到首端的顺序,以图3为例,从哈希链节点n开始,依次向首端的顺序,最后是哈希链节点1。
具体地,从当前哈希链中筛选出实验版本流量减少请求所针对的目标实验版本的流量分配信息,当筛选出的流量分配信息有多个且分布在不同的哈希链节点时,按照当前哈希链从后向前的顺序依次累计各个流量分配信息的用户流量。
在累计的用户流量等于实验版本流量减少请求对应的用户流量减少量时,将所累计的用户流量对应的流量分配信息确定为匹配的用户流量减少信息。
在累计的用户流量不等于且首次大于实验版本流量减少请求对应的用户流量减少量时,可以将当前累计的最后一个流量分配信息拆分成两个流量分配信息。其中,其中一个流量分配信息中的用户流量与已累计的其他流量分配信息的用户流量之和等于用户流量减少量。然后,将该其中一个流量分配信息和累计的其他流量分配信息确定为匹配的用户流量减少信息。
图5(a)示出了本说明书实施例的AB实验中请求实验版本流量减少的一个示例500a的流程图。如图5(a)所示,用户流量减少请求是针对实验版本ExpVer-1-1的实验版本流量减少请求,从当前哈希链中筛选出节点1、节点3和节点4中包括该实验版本ExpVer-1-1的流量分配信息,其中,节点1中的实验版本ExpVer-1-1的流量分配信息对应10%的用户流量,节点3中的实验版本ExpVer-1-1的流量分配信息对应20%的用户流量,节点3中的实验版本ExpVer-1-1的流量分配信息对应10%的用户流量。
当用户流量减少请求对应的用户流量减少量是30%时,按照当前哈希链从后向前的顺序依次累计各个流量分配信息的用户流量,具体地,从节点4开始,将节点4中实验版本ExpVer-1-1的流量分配信息与节点3中实验版本ExpVer-1-1的流量分配信息进行累计得到的累计用户流量是30%,则将节点3和节点4中实验版本ExpVer-1-1的流量分配信息确定为匹配的用户流量减少信息。
当用户流量减少请求对应的用户流量减少量是35%时,节点3和节点4所累计的用户流量是30%,则继续累计节点1中实验版本ExpVer-1-1的流量分配信息。在累计节点1中实验版本ExpVer-1-1的流量分配信息之后的累计用户流量是40%,则可以将节点1中实验版本ExpVer-1-1的流量分配信息进行拆分。
图5(b)示出了本说明书实施例的AB实验中请求实验版本流量减少的另一个示例500b的流程图。如图5(b)所示,将节点1中实验版本ExpVer-1-1的流量分配信息拆分成实验版本ExpVer-1-1-1的流量分配信息和实验版本ExpVer-1-1-2的流量分配信息,其中,实验版本ExpVer-1-1-1和实验版本ExpVer-1-1-2的流量分配信息对应的用户流量都是5%。然后将节点1中实验版本ExpVer-1-1-1的流量分配信息以及节点3和节点4中实验版本ExpVer-1-1的流量分配信息确定为匹配的用户流量减少信息。
在上述示例中,按照哈希链从后向前的顺序来确定哈希链中的待减少的流量分配信息,可以优先释放哈希链的链尾的哈希链节点中的用户流量,当链尾的哈希链节点中的用户流量都被释放时,该哈希链节点可以从哈希链中删除,从而缩短哈希链的长度。
接着,在块430,可以将用户流量减少信息对应的用户流量释放。当前被释放的用户流量可以成为当前的可分配用户流量,用于后续的用户流量分配请求中的用户流量分配。
在释放用户流量减少信息对应的用户流量后,该用户流量减少信息包括的流量分配信息所对应的实验发生变化,比如,实验版本流量减少,实验版本删除等。此时,该实验的实验信息MD5值也会改变,需要对变化后的实验重新计算实验信息MD5值,并将哈希链中该实验对应的各个哈希链节点中的实验信息MD5值进行更新。
在一个示例中,每个流量分配信息还可以包括:用于指示对应用户流量分桶区间的用户流量是否被释放的第一流量使能信息以及指针,指针用于指向该流量分配信息对应的用户流量被释放成为可分配用户流量时的释放位置,释放位置是释放的用户流量成为可分配用户流量时在哈希链上的节点位置,具体地,该释放位置是指当前哈希链中最后一个哈希链节点的下一个哈希链节点,表示该下一个哈希链节点在创建时可以使用这一部分释放的用户流量。
在一个示例中,哈希链长度可以用包括的哈希链节点来表示,比如,一条哈希链上有四个哈希链节点,则该哈希链的长度可以表示成4。针对哈希链上的各个哈希链节点的序号可以从0开始编号,即哈希链上的第一个哈希链节点的序号是0,后面依次链接的哈希链节点的序号依次递增,最后一个哈希链节点的序号比哈希链的长度少1。例如,长度为4的哈希链上的第一个哈希链节点的序号是0,最后一个哈希链节点的序号是3。在该示例中,释放位置可以表示成当前哈希链的长度,指针设置为当前哈希链的长度,指向当前哈希链的最后一个哈希链节点的下一个哈希链节点。
在从当前哈希链中确定出用户流量减少信息后,可以将用户流量减少信息包括的各个流量分配信息中的第一流量使能信息设置为释放,被设置为释放的流量分配信息对应的用户流量成为可分配用户流量。
然后,可以将用户流量减少信息包括的各个流量分配信息中的指针设置为当前哈希链的长度。这样,针对释放的这一部分用户流量,从当前哈希链中的最后一个哈希链节点的下一个哈希链节点开始成为可分配用户流量。在后续实验过程中,若这一部分用户流量再被分配至实验版本,则这一部分用户流量会被记录在该最后一个哈希链节点之后的哈希链节点中。
以图5(a)为例,某一时刻的哈希链中仅包括图5(a)中的哈希链节点1和哈希链节点2,哈希链节点1的序号是0,哈希链节点2的序号是1,当前哈希链的长度是2。此时,实验版本ExpVer-1-1的流量分配信息对应的用户流量被释放,则该流量分配信息中的第一流量使能信息设置为释放,指针设置为2,指向哈希链节点2的下一个哈希链节点,即创建后的哈希链节点3,该哈希链节点3的序号是2。在哈希链节点3被创建时,流量分配信息对应的这一部分用户流量成为可分配用户流量。然后,这一部分用户流量又被分配给实验版本ExpVer-3-1,哈希链节点3记录针对这一次的用户流量分配情况,即哈希链节点3中的实验版本ExpVer-3-1的流量分配信息。
每个流量分配信息中包括指针,当流量分配信息对应的用户流量未被释放时,该流量分配信息中的指针无效,此时可以将指针设置为用于表示指针无效的指定值。比如,指定值是-1,当流量分配信息中的指针是-1时,表示该指针无效,该流量分配信息对应的用户流量未被释放。
在一个示例中,每个哈希链节点还记录用于指示该哈希链节点中的所有流量分配信息对应的用户流量是否释放的第二流量使能信息。当第二流量使能信息设置为释放时,表示该哈希链节点中所有流量分配信息对应的用户流量都被释放,当第二流量使能信息设置为未释放时,表示该哈希链节点中存在流量分配信息对应的用户流量未被释放。
针对每个哈希链节点,当该哈希链节点中的所有流量分配信息的第一流量使能信息都被设置为释放时,表示该哈希链节点对应的所有用户流量都被释放,此时可以将该哈希链节点的第二流量使能信息设置为释放。
在该示例中,利用第二流量使能信息来表征对应哈希链节点中的用户流量的分配状况,便于用户直接查看各个哈希链节点的用户流量整体情况,尤其是当哈希链节点中的所有用户流量都被释放时,哈希链节点中的第二流量使能信息能够直接指示出来,提高了便利性,避免了需要进入哈希链节点的下一层(即哈希链节点中的流量分配信息)才能查看对应用户流量的释放情况。
在一个示例中,对于整个当前哈希链来说,可以按照当前哈希链从后向前的顺序依次遍历各个哈希链节点,将遍历到的第二流量使能信息设置为释放的哈希链节点从当前哈希链中移除,直至遍历到第二流量使能信息设置为未释放的哈希链节点时停止遍历,从而得到一条新的哈希链。
以图5(a)为例,图5(a)所示的当前哈希链包括四个哈希链节点,按照当前哈希链从后向前的顺序依次遍历时,首先遍历哈希链节点4,若遍历哈希链节点4的第二流量使能信息设置为释放,则可以将该哈希链节点4从哈希链中移除。然后继续遍历哈希链节点3,若遍历哈希链节点3的第二流量使能信息设置为释放,则可以将该哈希链节点3从哈希链中移除。然后继续遍历哈希链节点2,若遍历哈希链节点2的第二流量使能信息设置为未释放,则停止遍历,从而得到的新哈希链由哈希链节点1和哈希链节点2链接构成。
哈希链经过移除处理后,可以将经过移除处理的哈希链中指针指向的哈希链长度大于经过移除处理的哈希链长度的指针更新为指向移除处理的哈希链的长度。
以图5(a)为例,图5(a)所示的哈希链是移除处理前的哈希链,此时哈希链长度是4,在经过移除处理后的新哈希链由哈希链节点1和哈希链节点2链接构成,此时哈希链长度变为2。若哈希链节点1中实验版本ExpVer-1-1的流量分配信息中的指针为3,即指向哈希链节点4,此时该指针所指向的哈希链长度3大于新哈希链的长度2,则可以将该指针更新为新哈希链的长度2,表示ExpVer-1-1的流量分配信息对应的用户流量被释放的位置是哈希链节点2的下一个哈希链节点。
在该示例中,将哈希链链尾的用户流量全部释放了的哈希链节点从哈希链上移除,缩短了哈希链长度,从而减少了哈希链过长导致的用户流量分配效率低的问题。
在本说明书的一个示例中,当接收到针对AB实验的用户流量调整请求时,该用户流量调整请求可以是用户流量分配请求,还可以是用户流量减少请求,此时可以利用当前哈希链与已运行实验进行全量比较,以确定该用户流量调整请求包括的请求类型,该请求类型包括用户流量分配请求和用户流量减少请求。在一种场景中,所接收到的用户流量调整请求是多个,可以对该多个用户流量调整请求同时进行全量比较。
针对一个实验的全量比较,获取该实验在运行中的计算实验信息MD5值所需的实验信息,比如,计算实验信息MD5值所需的实验信息包括实验标识信息、实验版本信息、各个实验版本对应的流量分桶信息以及绝对用户流量比例信息,则获取这四种实验信息,并根据所获取的实验信息来计算针对已运行实验的实验信息MD5值,将计算出的实验信息MD5值与该实验对应的哈希链节点中的实验信息MD5值进行比较,若相同,则表示该实验没有发生变化,若不同,则表示该实验已变化,需要对该实验的流量分配信息进行调整,以保持哈希链记录的用户流量分配信息与实际运行中的各个实验版本所分配到的用户流量一致。
在接收到多个用户流量调整请求的情况下,该多个用户流量调整请求中可以包括用户流量减少请求和用户流量分配请求,这样,可以优先处理用户流量减少请求,然后再处理用户流量分配请求。优先对用户流量减少请求进行处理,可以优先移除链尾的哈希链节点,从而有效地缩短哈希链长度,避免哈希链过长导致的用户流量分流效率降低的问题。
在一个示例中,用户流量减少请求可以包括实验删除请求、实验版本删除请求以及实验版本流量减少请求等,用户流量分配请求可以包括实验增加请求、实验版本增加请求以及实验版本流量增加请求等。
对于所确定出的多个用户流量调整请求,可以按照实验删除请求、实验版本删除请求、实验版本流量减少请求以及用户流量分配请求的顺序依次进行处理。
在该示例中,实验删除请求能够从哈希链中移除哈希链节点的概率最大,实验版本删除请求次之,实验版本流量减少请求最小,因此按照上述顺序可以优先移除哈希链节点从而缩短哈希链长度。
图6示出了本说明书实施例的AB实验中的用户流量分配实现方法的一个示例600的流程图。
图6示出的用户流量分配方法可以由用户流量分配平台来执行,用户流量分配平台与AB实验平台通信连接。
如图6所示,在块610,可以获取AB实验平台提供的哈希链。
哈希链由多个哈希链节点依照用户流量分配顺序链接构成,每个哈希链节点与一次用户流量分配请求中的一个目标实验对应,并且记录在该次用户流量分配请求时针对该目标实验的实验版本的用户流量分配信息
AB实验平台每更新一次哈希链,都会将更新后的哈希链提供给用户流量分配平台,以使用户流量分配平台能够依据最新的哈希链来进行用户流量分配,及时调整用户流量分配策略,从而提高用户流量分配效率。
接着,在块620,可以按照哈希链的哈希链节点链接先后顺序,从该哈希链中确定待使用的一个哈希链节点。
当首次确定哈希链节点时,所确定的待使用的哈希链节点是哈希链上的第一个哈希链节点。然后后续确定的每个哈希链节点是链接上一次所确定的哈希链节点的下一个哈希链节点。
在确定出待使用的一个哈希链节点后,在块630,针对每个用户流量,可以使用所确定的哈希链节点来检验该用户流量与该哈希链节点中的流量分配信息是否匹配。如果是,继续执行块640的操作;如果否,则返回执行块620的操作。
在一个示例中,每个哈希链节点记录节点哈希因子和流量分配列表,所述节点哈希因子是该哈希链节点所对应的用户流量分配请求所使用的哈希因子,所述流量分配列表包括响应于该哈希链节点所对应的用户流量分配请求而分配给该目标实验的所有流量分配信息,每个流量分配信息对应一个实验版本,每个流量分配信息包括对应实验版本的实验版本标识和用户流量分桶区间。
在一个示例中,对于每个哈希链节点来说,在对每个用户流量进行分配时,可以根据用户流量的标识和哈希链节点中的节点哈希因子得到对应的散列值。具体地,可以将用户流量的标识与节点哈希因子进行拼接处理以得到一个字符串,对该字符串进行MD5运算,可以得到一个固定长度的散列值,该散列值与字符串对应。
在得到散列值后,利用流量分桶的数量值对该散列值进行取模计算,所得到的结果小于该流量分桶的数量值。例如,若流量分桶的数量是1000,散列值是1001,利用流量分桶数量1000对散列值1001进行取模计算,得到1,表示该用户流量被分配至1号流量分桶。
将取模计算的结果与该哈希链节点中的各个用户流量分桶区间进行匹配,若结果在用户流量分桶区间内,则与该用户流量分桶区间匹配成功;若结果不在用户流量分桶区间内,则与该用户流量分桶区间不匹配。
在用户流量与哈希链节点中所有的用户流量分桶区间都不匹配时,则返回重新执行块620的操作,重新确定待使用的下一个哈希链节点,直至该用户流量匹配成功或哈希链中的所有哈希链节点都执行完成块630的操作。在哈希链中的所有哈希链节点都不能与该用户流量匹配,则可以确定该用户流量是可分配用户流量。
在用户流量与哈希链节点中的流量分配信息匹配时,在块640,可以将该用户流量分配给该流量分配信息对应的实验版本。
若匹配的流量分配信息中的第一流量使能信息设置为释放,且指针指向一个哈希链节点的位置,则可以确定在该哈希链节点被创建时该用户流量被释放成为可分配用户流量,则从指针指向的哈希链节点开始,继续执行上述块630的操作。
以图5(a)为例,一个用户流量与哈希链节点1中的实验版本ExpVer-1-1的流量分配信息中的用户流量分桶区间匹配,而该实验版本ExpVer-1-1的流量分配信息中的第一流量使能信息设置为释放,且指针指向哈希链节点3的位置,则继续使用哈希链节点3来确定该用户流量是否与该哈希链节点中的流量分配信息匹配。
用户流量分配平台可以通过执行上述过程,使用AB实验平台提供的哈希链来进行用户流量分配,并且,当AB实验平台的用户流量分配方案发生变化时,AB实验平台可以提供相应的新哈希链,从而用户流量分配平台能够及时响应新的用户流量分配方案并执行,提高了用户流量分配效率。
图7示出了本说明书实施例的AB实验中的用户流量分配方案确定装置700的一个示例的方框图。如图7所示,流量分配方案确定装置700可以包括流量打散单元710、流量分桶单元720和流量分配方案生成单元730。
流量打散单元710被配置为响应于获取到针对AB实验的当前用户流量分配请求,使用第一哈希因子将当前可分配用户流量打散分配至预定数目个流量分桶,当前用户流量分配请求包括当前用户流量分配的目标实验的目标实验版本以及各个目标实验版本的用户流量比例。其中,第一哈希因子与先前用户流量分配请求所对应的哈希因子不同。流量打散单元710的操作可以参考上面参照图1描述的块110和块120的操作。
流量分桶单元720被配置为根据各个目标实验版本的用户流量比例,确定各个目标实验版本的对应用户流量分桶区间。流量分桶单元720的操作可以参考上面参照图1描述的块130的操作。
在一个示例中,各个目标实验版本的用户流量比例是绝对用户流量比例,流量分桶单元720被配置为基于各个目标实验版本的绝对用户流量比例和当前可分配用户流量,确定各个目标实验版本相对于当前可分配用户流量的相对用户流量比例;以及根据各个目标实验版本的相对用户流量比例,确定各个目标实验版本的对应流量分桶区间。
流量分配方案生成单元730被配置为根据所确定出的各个目标实验版本的对应用户流量分桶区间,生成当前用户流量分配请求的当前用户流量分配方案。流量分配方案生成单元730的操作可以参考上面参照图1描述的块140的操作。
图8示出了本说明书实施例的AB实验中的用户流量分配方案确定装置800的一个示例的方框图。如图8所示,流量分配方案确定装置800还可以包括新增节点确定单元740和新增节点链接单元750。
新增节点确定单元740被配置为根据当前用户流量分配方案确定哈希链的新增哈希链节点,哈希链由多个哈希链节点依照用户流量分配顺序链接构成,每个哈希链节点与一次用户流量分配请求中的一个目标实验对应,并且记录在该次用户流量分配请求时针对该目标实验的用户流量分配信息。新增节点确定单元740的操作可以参考上面参照图2描述的块250的操作。
新增节点链接单元750被配置为将所确定出的新增哈希链节点依照用户流量分配顺序链接到当前哈希链的链尾。新增节点链接单元750的操作可以参考上面参照图2描述的块260的操作。
在一个示例中,每个哈希链节点记录节点哈希因子、实验信息MD5值和流量分配列表,节点哈希因子是该哈希链节点所对应的用户流量分配请求所使用的哈希因子,实验信息MD5值是针对该哈希链节点所对应的实验信息的MD5值,流量分配列表包括响应于该哈希链节点所对应的用户流量分配请求而分配给该目标实验的所有流量分配信息,每个流量分配信息对应一个实验版本,每个流量分配信息包括对应实验版本的实验版本标识和用户流量分桶区间。
在一个示例中,每个哈希链节点采用分层结构来记录节点哈希因子、实验信息MD5值和流量分配列表,分层结构包括哈希链根节点和实验版本子节点,哈希链根节点记录节点哈希因子,实验信息MD5值以及该次用户流量分配请求所分配的实验版本信息列表,实验版本子节点记录实验版本标识信息和各个实验版本所对应的用户流量分桶区间信息。
在一个示例中,分层结构还包括流量分桶区间子节点,用户流量分桶区间信息被记录到流量分桶区间子节点,以及实验版本子节点记录各个实验版本所对应的用户流量分桶区间的区间标识信息。
在一个示例中,流量分配方案确定装置800还可以包括哈希链提供单元,哈希链提供单元被配置为将当前哈希链提供给用户流量分配平台,以供用户流量分配平台来根据该当前哈希链进行用户流量分配。
图9示出了本说明书实施例的AB实验中的用户流量分配方案确定装置900的一个示例的方框图。如图9所示,流量分配方案确定装置900还可以包括流量减少信息确定单元760和流量释放单元770。
流量减少信息确定单元760被配置为响应于获取到用户流量减少请求,从当前哈希链中确定出与用户流量减少请求对应的用户流量减少量匹配的用户流量减少信息。流量减少信息确定单元760的操作可以参考上面参照图4描述的块410和块420的操作。
流量释放单元770被配置为将用户流量减少信息对应的用户流量释放。流量释放单元770的操作可以参考上面参照图4描述的块430的操作。
在一个示例中,每个流量分配信息还包括:用于指示该流量分配信息对应的用户流量是否释放的第一流量使能信息,以及用于指向该流量分配信息对应的用户流量被释放成为可分配用户流量时的释放位置的指针,流量释放单元770被配置为:将用户流量减少信息包括的各个流量分配信息中的第一流量使能信息设置为释放;以及将各个流量分配信息中的指针设置为指向当前哈希链中的指定释放位置。
在一个示例中,每个哈希链节点还记录用于指示该哈希链节点中的所有流量分配信息对应的用户流量是否释放的第二流量使能信息,所述流量释放单元770被配置为:当哈希链节点中所有流量分配信息中的第一流量使能信息被设置为释放时,将该哈希链节点的第二流量使能信息设置为释放。
在一个示例中,流量分配方案确定装置900还可以包括节点移除单元和指针设置单元。节点移除单元,按照当前哈希链从后向前的顺序依次遍历各个哈希链节点,将遍历到的第二流量使能信息设置为释放的哈希链节点从当前哈希链中移除,直至遍历到被设置为未释放的哈希链节点时停止遍历。指针设置单元,将经过移除处理的哈希链中指针指向的哈希链长度大于经过移除处理的哈希链长度的指针更新为指向移除处理的哈希链的长度。
在一个示例中,流量分配方案确定装置900还可以包括全量比较单元,全量比较单元被配置为响应于接收到针对AB实验的用户流量调整请求,利用当前哈希链与已运行实验进行全量比较,以确定该用户流量调整请求包括的请求类型。
图10示出了本说明书实施例的AB实验中的用户流量分配实现装置1000的一个示例的方框图。如图10所示,流量分配实现装置1000可以包括哈希链获取单元1010、流量匹配单元1020和流量分配单元1030。
哈希链获取单元1010被配置为获取AB实验平台提供的哈希链,哈希链由多个哈希链节点依照用户流量分配顺序链接构成,每个哈希链节点与一次用户流量分配请求中的一个目标实验对应,并且记录在该次用户流量分配请求时针对该目标实验的实验版本的用户流量分配信息。哈希链获取单元1010的操作可以参考上面参照图6描述的块610的操作。
流量匹配单元1020被配置为针对每个用户流量,按照哈希链的哈希链节点链接顺序,依次使用各个哈希链节点来确定该用户流量是否与该哈希链节点中的流量分配信息匹配。流量匹配单元1020的操作可以参考上面参照图6描述的块620和块630的操作。
流量分配单元1030被配置为在用户流量与流量分配信息匹配时,将该用户流量分配给该流量分配信息对应的实验版本。流量分配单元1030的操作可以参考上面参照图6描述的块640的操作。
在一个示例中,每个哈希链节点记录节点哈希因子和流量分配列表,节点哈希因子是该哈希链节点所对应的用户流量分配请求所使用的哈希因子,流量分配列表包括响应于该哈希链节点所对应的用户流量分配请求而分配给该目标实验的所有流量分配信息,每个流量分配信息对应一个实验版本,每个流量分配信息包括对应实验版本的实验版本标识和用户流量分桶区间。
在一个示例中,所述流量匹配单元1020被配置为:针对每个用户流量,按照哈希链的哈希链节点链接先后顺序,依次使用各个哈希链节点按照以下方式来确定该用户流量是否与该哈希链节点中的用户流量分配信息匹配:根据用户流量的标识和哈希链节点中的节点哈希因子得到该用户流量对应的散列值;对散列值进行取模计算;以及将取模计算的结果与该哈希链节点中的各个用户流量分桶区间进行匹配,若结果在用户流量分桶区间内,则与该用户流量分桶区间匹配成功;若结果不在用户流量分桶区间内,则与该用户流量分桶区间不匹配。
图11示出了本说明书实施例的AB实验中的用户流量分配实现系统1100的一个示例的方框图。如图11所示,流量分配实现系统1100可以包括AB实验平台1110和用户流量分配平台1120。
AB实验平台1110被配置为包括上述图7、8和9中任一所述的装置,用户流量分配平台1120被配置为包括上述图10中任一所述的装置。
以上参照图1到图11,对根据本说明书实施例的AB实验中的用户流量分配方案确定方法及装置、用户流量分配实现方法及装置的实施例进行了描述。
本说明书实施例的AB实验中的用户流量分配方案确定装置、用户流量分配实现装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将存储器中对应的计算机程序指令读取到内存中运行形成的。在本说明书实施例中,用户流量分配方案确定装置以及用户流量分配实现装置例如可以利用电子设备实现。
图12示出了本说明书实施例的用于实现AB实验中的用户流量分配方案确定方法的电子设备1200的方框图。
如图12所示,电子设备1200可以包括至少一个处理器1210、存储器(例如,非易失性存储器)1220、内存1230和通信接口1240,并且至少一个处理器1210、存储器1220、内存1230和通信接口1240经由总线1250连接在一起。至少一个处理器1210执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1210:响应于获取到针对AB实验的当前用户流量分配请求,使用第一哈希因子将当前可分配用户流量打散分配至预定数目个流量分桶,当前用户流量分配请求包括当前用户流量分配的目标实验的目标实验版本以及各个目标实验版本的用户流量比例;根据各个目标实验版本的用户流量比例,确定各个目标实验版本的对应用户流量分桶区间;以及根据所确定出的各个目标实验版本的对应用户流量分桶区间,生成当前用户流量分配请求的当前用户流量分配方案,其中,第一哈希因子与先前用户流量分配请求所对应的哈希因子不同。
应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1210进行本说明书的各个实施例中以上结合图1-11描述的各种操作和功能。
根据一个实施例,提供了一种例如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-11描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
图13示出了本说明书实施例的用于实现AB实验中的用户流量分配实现方法的电子设备1300的方框图。
如图13所示,电子设备1300可以包括至少一个处理器1310、存储器(例如,非易失性存储器)1320、内存1330和通信接口1340,并且至少一个处理器1310、存储器1320、内存1330和通信接口1340经由总线1350连接在一起。至少一个处理器1310执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1310:获取AB实验平台提供的哈希链,哈希链由多个哈希链节点依照用户流量分配顺序链接构成,每个哈希链节点与一次用户流量分配请求中的一个目标实验对应,并且记录在该次用户流量分配请求时针对该目标实验的实验版本的用户流量分配信息;针对每个用户流量,按照哈希链的哈希链节点链接顺序,依次使用各个哈希链节点来确定该用户流量是否与该哈希链节点中的流量分配信息匹配;以及在用户流量与流量分配信息匹配时,将该用户流量分配给该流量分配信息对应的实验版本。
应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1310进行本说明书的各个实施例中以上结合图1-11描述的各种操作和功能。
根据一个实施例,提供了一种例如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-11描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本说明书实施例的一部分。
本说明书各部分操作所需的计算机程序代码可以用任意一种或多种程序语言编写,包括面向对象编程语言,如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB、NET以及Python等,常规程序化编程语言如C语言、Visual Basic 2003、Perl、COBOL 2002、PHP以及ABAP,动态编程语言如Python、Ruby和Groovy,或者其他编程语言等。该程序编码可以在用户计算机上运行,或者作为独立的软件包在用户计算机上运行,或者部分在用户计算机上运行另一部分在远程计算机运行,或者全部在远程计算机或服务器上运行。在后一种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或者在云计算环境中,或者作为服务使用,比如软件即服务(SaaS)。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本说明书的实施例的可选实施方式,但是,本说明书的实施例并不限于上述实施方式中的具体细节,在本说明书的实施例的技术构思范围内,可以对本说明书的实施例的技术方案进行多种简单变型,这些简单变型均属于本说明书的实施例的保护范围。
本说明书内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本说明书内容。对于本领域普通技术人员来说,对本说明书内容进行的各种修改是显而易见的,并且,也可以在不脱离本说明书内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本说明书内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (36)
1.一种用于确定AB实验中的用户流量分配方案的方法,包括:
响应于获取到针对AB实验的当前用户流量分配请求,使用第一哈希因子将当前可分配用户流量打散分配至预定数目个流量分桶,所述当前用户流量分配请求包括当前用户流量分配的目标实验的目标实验版本以及各个目标实验版本的用户流量比例;
根据各个目标实验版本的用户流量比例,确定各个目标实验版本的对应用户流量分桶区间;
根据所确定出的各个目标实验版本的对应用户流量分桶区间,生成当前用户流量分配请求的当前用户流量分配方案,其中,所述第一哈希因子与先前用户流量分配请求所对应的哈希因子不同;
根据所述当前用户流量分配方案确定哈希链的新增哈希链节点,所述哈希链由多个哈希链节点依照用户流量分配顺序链接构成,每个哈希链节点与一次用户流量分配请求中的一个目标实验对应,并且记录在该次用户流量分配请求时针对该目标实验的用户流量分配信息;以及
将所确定出的新增哈希链节点依照用户流量分配顺序链接到当前哈希链的链尾。
2.如权利要求1所述的方法,其中,所述预定数目个流量分桶是固定数目个流量分桶。
3.如权利要求2所述的方法,其中,各个目标实验版本的用户流量比例是绝对用户流量比例,
根据各个目标实验版本的用户流量比例,确定各个目标实验版本的对应流量分桶区间包括:
基于各个目标实验版本的绝对用户流量比例和所述当前可分配用户流量,确定各个目标实验版本相对于所述当前可分配用户流量的相对用户流量比例;以及
根据各个目标实验版本的相对用户流量比例,确定各个目标实验版本的对应流量分桶区间。
4.如权利要求1所述的方法,其中,每个哈希链节点记录节点哈希因子、实验信息MD5值和流量分配列表,所述节点哈希因子是该哈希链节点所对应的用户流量分配请求所使用的哈希因子,所述实验信息MD5值是针对该哈希链节点所对应的实验信息的MD5值,所述流量分配列表包括响应于该哈希链节点所对应的用户流量分配请求而分配给该目标实验的所有流量分配信息,每个流量分配信息对应一个实验版本,每个流量分配信息包括对应实验版本的实验版本标识和用户流量分桶区间。
5.如权利要求4所述的方法,其中,每个哈希链节点采用分层结构来记录所述节点哈希因子、实验信息MD5值和流量分配列表,所述分层结构包括哈希链根节点和实验版本子节点,
所述哈希链根节点记录所述节点哈希因子,实验信息MD5值以及该次用户流量分配请求所分配的实验版本信息列表,所述实验版本子节点记录实验版本标识信息和各个实验版本所对应的用户流量分桶区间信息。
6.如权利要求5所述的方法,其中,所述分层结构还包括流量分桶区间子节点,所述用户流量分桶区间信息被记录到所述流量分桶区间子节点,以及所述实验版本子节点记录各个实验版本所对应的用户流量分桶区间的区间标识信息。
7.如权利要求1所述的方法,还包括:
利用当前哈希链来确定所述当前可分配用户流量。
8.如权利要求1所述的方法,其中,所述当前用户流量分配请求包括:实验增加请求、实验版本增加请求和实验版本流量增加请求中的一种。
9.如权利要求4所述的方法,还包括:
响应于获取到用户流量减少请求,从当前哈希链中确定出与所述用户流量减少请求对应的用户流量减少量匹配的用户流量减少信息;以及
将所述用户流量减少信息对应的用户流量释放。
10.如权利要求9所述的方法,其中,每个流量分配信息还包括:用于指示该流量分配信息对应的用户流量是否释放的第一流量使能信息,以及用于指向该流量分配信息对应的用户流量被释放成为可分配用户流量时的释放位置的指针,
将所述用户流量减少信息对应的用户流量释放包括:
将所述用户流量减少信息包括的各个流量分配信息中的第一流量使能信息设置为释放;以及
将所述各个流量分配信息中的指针设置为指向所述当前哈希链中的指定释放位置。
11.如权利要求10所述的方法,其中,每个哈希链节点还记录用于指示该哈希链节点中的所有流量分配信息对应的用户流量是否释放的第二流量使能信息,
所述方法还包括:
当哈希链节点中所有流量分配信息中的第一流量使能信息被设置为释放时,将该哈希链节点的第二流量使能信息设置为释放。
12.如权利要求11所述的方法,还包括:
按照所述当前哈希链从后向前的顺序依次遍历各个哈希链节点,将遍历到的第二流量使能信息设置为释放的哈希链节点从当前哈希链中移除,直至遍历到被设置为未释放的哈希链节点时停止遍历;以及
将经过移除处理的哈希链中指针指向的哈希链长度大于所述经过移除处理的哈希链长度的指针更新为指向所述移除处理的哈希链的长度。
13.如权利要求9所述的方法,其中,所述用户流量减少请求包括实验删除请求、实验版本删除请求和实验版本流量减少请求中的一种。
14.如权利要求9所述的方法,还包括:
响应于接收到针对AB实验的用户流量调整请求,利用当前哈希链与已运行实验进行全量比较,以确定该用户流量调整请求包括的请求类型。
15.如权利要求14所述的方法,其中,所确定出的用户流量调整请求按照以下顺序依次进行处理:
实验删除请求,实验版本删除请求,实验版本流量减少请求,用户流量分配请求。
16.如权利要求1所述的方法,还包括:
将当前哈希链提供给用户流量分配平台,以供所述用户流量分配平台来根据该当前哈希链进行用户流量分配。
17.一种用于实现AB实验中的用户流量分配的方法,包括:
获取AB实验平台提供的哈希链,所述哈希链由多个哈希链节点依照用户流量分配顺序链接构成,每个哈希链节点与一次用户流量分配请求中的一个目标实验对应,并且记录在该次用户流量分配请求时针对该目标实验的实验版本的用户流量分配信息;
针对每个用户流量,按照所述哈希链的哈希链节点链接顺序,依次使用各个哈希链节点来确定该用户流量是否与该哈希链节点中的流量分配信息匹配;以及
在用户流量与流量分配信息匹配时,将该用户流量分配给该流量分配信息对应的实验版本,
其中,每个哈希链节点记录节点哈希因子和流量分配列表,所述节点哈希因子是该哈希链节点所对应的用户流量分配请求所使用的哈希因子,所述流量分配列表包括响应于该哈希链节点所对应的用户流量分配请求而分配给该目标实验的所有流量分配信息,每个流量分配信息对应一个实验版本,每个流量分配信息包括对应实验版本的实验版本标识和用户流量分桶区间。
18.如权利要求17所述的方法,其中,针对每个用户流量,按照所述哈希链的哈希链节点链接先后顺序,依次使用各个哈希链节点来确定该用户流量是否与该哈希链节点中的用户流量分配信息匹配包括:
针对每个用户流量,按照所述哈希链的哈希链节点链接先后顺序,依次使用各个哈希链节点按照以下方式来确定该用户流量是否与该哈希链节点中的用户流量分配信息匹配:
根据用户流量的标识和哈希链节点中的节点哈希因子得到该用户流量对应的散列值;
对所述散列值进行取模计算;以及
将取模计算的结果与该哈希链节点中的各个用户流量分桶区间进行匹配,
若所述结果在用户流量分桶区间内,则与该用户流量分桶区间匹配成功;若所述结果不在用户流量分桶区间内,则与该用户流量分桶区间不匹配。
19.一种用于确定AB实验中的用户流量分配方案的装置,包括:
流量打散单元,响应于获取到针对AB实验的当前用户流量分配请求,使用第一哈希因子将当前可分配用户流量打散分配至预定数目个流量分桶,所述当前用户流量分配请求包括当前用户流量分配的目标实验的目标实验版本以及各个目标实验版本的用户流量比例;
流量分桶单元,根据各个目标实验版本的用户流量比例,确定各个目标实验版本的对应用户流量分桶区间;
流量分配方案生成单元,根据所确定出的各个目标实验版本的对应用户流量分桶区间,生成当前用户流量分配请求的当前用户流量分配方案,其中,所述第一哈希因子与先前用户流量分配请求所对应的哈希因子不同;
新增节点确定单元,根据所述当前用户流量分配方案确定哈希链的新增哈希链节点,所述哈希链由多个哈希链节点依照用户流量分配顺序链接构成,每个哈希链节点与一次用户流量分配请求中的一个目标实验对应,并且记录在该次用户流量分配请求时针对该目标实验的用户流量分配信息;以及
新增节点链接单元,将所确定出的新增哈希链节点依照用户流量分配顺序链接到当前哈希链的链尾。
20.如权利要求19所述的装置,其中,各个目标实验版本的用户流量比例是绝对用户流量比例,
所述流量分桶单元:
基于各个目标实验版本的绝对用户流量比例和所述当前可分配用户流量,确定各个目标实验版本相对于所述当前可分配用户流量的相对用户流量比例;以及
根据各个目标实验版本的相对用户流量比例,确定各个目标实验版本的对应流量分桶区间。
21.如权利要求19所述的装置,其中,每个哈希链节点记录节点哈希因子、实验信息MD5值和流量分配列表,所述节点哈希因子是该哈希链节点所对应的用户流量分配请求所使用的哈希因子,所述实验信息MD5值是针对该哈希链节点所对应的实验信息的MD5值,所述流量分配列表包括响应于该哈希链节点所对应的用户流量分配请求而分配给该目标实验的所有流量分配信息,每个流量分配信息对应一个实验版本,每个流量分配信息包括对应实验版本的实验版本标识和用户流量分桶区间。
22.如权利要求21所述的装置,其中,每个哈希链节点采用分层结构来记录所述节点哈希因子、实验信息MD5值和流量分配列表,所述分层结构包括哈希链根节点和实验版本子节点,
所述哈希链根节点记录所述节点哈希因子,实验信息MD5值以及该次用户流量分配请求所分配的实验版本信息列表,所述实验版本子节点记录实验版本标识信息和各个实验版本所对应的用户流量分桶区间信息。
23.如权利要求22所述的装置,其中,所述分层结构还包括流量分桶区间子节点,所述用户流量分桶区间信息被记录到所述流量分桶区间子节点,以及所述实验版本子节点记录各个实验版本所对应的用户流量分桶区间的区间标识信息。
24.如权利要求21所述的装置,还包括:
流量减少信息确定单元,响应于获取到用户流量减少请求,从当前哈希链中确定出与所述用户流量减少请求对应的用户流量减少量匹配的用户流量减少信息;以及
流量释放单元,将所述用户流量减少信息对应的用户流量释放。
25.如权利要求24所述的装置,其中,每个流量分配信息还包括:用于指示该流量分配信息对应的用户流量是否释放的第一流量使能信息,以及用于指向该流量分配信息对应的用户流量被释放成为可分配用户流量时的释放位置的指针,
所述流量释放单元:
将所述用户流量减少信息包括的各个流量分配信息中的第一流量使能信息设置为释放;以及
将所述各个流量分配信息中的指针设置为指向所述当前哈希链中的指定释放位置。
26.如权利要求25所述的装置,其中,每个哈希链节点还记录用于指示该哈希链节点中的所有流量分配信息对应的用户流量是否释放的第二流量使能信息,
所述流量释放单元:
当哈希链节点中所有流量分配信息中的第一流量使能信息被设置为释放时,将该哈希链节点的第二流量使能信息设置为释放。
27.如权利要求26所述的装置,还包括:
节点移除单元,按照所述当前哈希链从后向前的顺序依次遍历各个哈希链节点,将遍历到的第二流量使能信息设置为释放的哈希链节点从当前哈希链中移除,直至遍历到被设置为未释放的哈希链节点时停止遍历;以及
指针设置单元,将经过移除处理的哈希链中指针指向的哈希链长度大于所述经过移除处理的哈希链长度的指针更新为指向所述移除处理的哈希链的长度。
28.如权利要求24所述的装置,还包括:
全量比较单元,响应于接收到针对AB实验的用户流量调整请求,利用当前哈希链与已运行实验进行全量比较,以确定该用户流量调整请求包括的请求类型。
29.如权利要求19所述的装置,还包括:
哈希链提供单元,将当前哈希链提供给用户流量分配平台,以供所述用户流量分配平台来根据该当前哈希链进行用户流量分配。
30.一种用于实现AB实验中的用户流量分配的装置,包括:
哈希链获取单元,获取AB实验平台提供的哈希链,所述哈希链由多个哈希链节点依照用户流量分配顺序链接构成,每个哈希链节点与一次用户流量分配请求中的一个目标实验对应,并且记录在该次用户流量分配请求时针对该目标实验的实验版本的用户流量分配信息;
流量匹配单元,针对每个用户流量,按照所述哈希链的哈希链节点链接顺序,依次使用各个哈希链节点来确定该用户流量是否与该哈希链节点中的流量分配信息匹配;以及
流量分配单元,在用户流量与流量分配信息匹配时,将该用户流量分配给该流量分配信息对应的实验版本,
其中,每个哈希链节点记录节点哈希因子和流量分配列表,所述节点哈希因子是该哈希链节点所对应的用户流量分配请求所使用的哈希因子,所述流量分配列表包括响应于该哈希链节点所对应的用户流量分配请求而分配给该目标实验的所有流量分配信息,每个流量分配信息对应一个实验版本,每个流量分配信息包括对应实验版本的实验版本标识和用户流量分桶区间。
31.如权利要求30所述的装置,其中,所述流量匹配单元:
针对每个用户流量,按照所述哈希链的哈希链节点链接先后顺序,依次使用各个哈希链节点按照以下方式来确定该用户流量是否与该哈希链节点中的用户流量分配信息匹配:
根据用户流量的标识和哈希链节点中的节点哈希因子得到该用户流量对应的散列值;
对所述散列值进行取模计算;以及
将取模计算的结果与该哈希链节点中的各个用户流量分桶区间进行匹配,
若所述结果在用户流量分桶区间内,则与该用户流量分桶区间匹配成功;若所述结果不在用户流量分桶区间内,则与该用户流量分桶区间不匹配。
32.一种用于实现AB实验中的用户流量分配的系统,所述系统包括AB实验平台和用户流量分配平台,
所述AB实验平台包括权利要求19到29中任一所述的装置;以及
所述用户流量分配平台包括权利要求30到31中任一所述的装置。
33.一种电子设备,包括:
至少一个处理器,以及
与所述至少一个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1到16中任一所述的方法。
34.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求1到16中任一所述的方法。
35.一种电子设备,包括:
至少一个处理器,以及
与所述至少一个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求17或18所述的方法。
36.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求17或18所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010775645.8A CN111884949B (zh) | 2020-08-05 | 2020-08-05 | Ab实验的分流方案确定、分流实现方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010775645.8A CN111884949B (zh) | 2020-08-05 | 2020-08-05 | Ab实验的分流方案确定、分流实现方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111884949A CN111884949A (zh) | 2020-11-03 |
CN111884949B true CN111884949B (zh) | 2022-05-17 |
Family
ID=73211738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010775645.8A Active CN111884949B (zh) | 2020-08-05 | 2020-08-05 | Ab实验的分流方案确定、分流实现方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111884949B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113114471A (zh) * | 2021-03-01 | 2021-07-13 | 北京信息科技大学 | 一种报文哈希链的构建方法及装置 |
CN113590346B (zh) * | 2021-06-30 | 2022-06-21 | 荣耀终端有限公司 | 处理业务请求的方法和电子设备 |
CN115361340B (zh) * | 2022-08-24 | 2024-02-27 | 深圳依时货拉拉科技有限公司 | Ab实验分流方法、装置、计算机设备和存储介质 |
CN117118874B (zh) * | 2023-10-23 | 2024-01-05 | 腾讯科技(深圳)有限公司 | 流量调整方法、装置、计算机设备及计算机可读存储介质 |
CN117493422A (zh) * | 2023-12-29 | 2024-02-02 | 智者四海(北京)技术有限公司 | 抽样方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171227B1 (en) * | 2009-03-11 | 2012-05-01 | Netapp, Inc. | System and method for managing a flow based reply cache |
CN104281611A (zh) * | 2013-07-08 | 2015-01-14 | 阿里巴巴集团控股有限公司 | 网站测试系统中的用户流量分配方法及装置 |
CN105610654A (zh) * | 2016-03-02 | 2016-05-25 | 合一网络技术(北京)有限公司 | 一种服务器、策略在线测试的方法及系统 |
CN107451020A (zh) * | 2017-06-28 | 2017-12-08 | 北京五八信息技术有限公司 | 一种ab测试系统及测试方法 |
CN108810130A (zh) * | 2018-06-01 | 2018-11-13 | 北京京东尚科信息技术有限公司 | 一种分配请求规划的方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130343181A1 (en) * | 2012-06-21 | 2013-12-26 | Jonathan Stroud | Systems and methods of data processing using an fpga-implemented hash function |
CN109039800A (zh) * | 2018-06-28 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 在流量实验中进行流量分配的方法、装置和计算机设备 |
CN110750436B (zh) * | 2018-07-23 | 2022-05-13 | 腾讯科技(深圳)有限公司 | 分层测试方法、装置、计算机可读介质及电子设备 |
CN110413533A (zh) * | 2019-09-03 | 2019-11-05 | 江苏满运软件科技有限公司 | Ab测试方法、系统、设备及存储介质 |
CN110830234B (zh) * | 2019-11-06 | 2021-10-15 | 腾讯科技(深圳)有限公司 | 一种用户流量分配方法及装置 |
-
2020
- 2020-08-05 CN CN202010775645.8A patent/CN111884949B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171227B1 (en) * | 2009-03-11 | 2012-05-01 | Netapp, Inc. | System and method for managing a flow based reply cache |
CN104281611A (zh) * | 2013-07-08 | 2015-01-14 | 阿里巴巴集团控股有限公司 | 网站测试系统中的用户流量分配方法及装置 |
CN105610654A (zh) * | 2016-03-02 | 2016-05-25 | 合一网络技术(北京)有限公司 | 一种服务器、策略在线测试的方法及系统 |
CN107451020A (zh) * | 2017-06-28 | 2017-12-08 | 北京五八信息技术有限公司 | 一种ab测试系统及测试方法 |
CN108810130A (zh) * | 2018-06-01 | 2018-11-13 | 北京京东尚科信息技术有限公司 | 一种分配请求规划的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111884949A (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111884949B (zh) | Ab实验的分流方案确定、分流实现方法、装置及系统 | |
CN109034809B (zh) | 区块链的生成方法、装置、区块链节点及存储介质 | |
US8656378B2 (en) | Memoization configuration file consumed at compile time | |
US8752034B2 (en) | Memoization configuration file consumed at runtime | |
US20200310686A1 (en) | Concurrently performing normal system operations and garbage collection | |
US11409652B2 (en) | Estimating worker nodes needed for performing garbage collection operations | |
CN111262726B (zh) | 一种配置信息更新方法、装置及计算机可读存储介质 | |
CN109726202A (zh) | 一种区块链数据存储方法及计算机存储介质 | |
CN104090806A (zh) | 升级包、升级请求的处理方法及装置 | |
CN110602227B (zh) | 一种智能合约管理的方法以及相关装置 | |
CN111158674A (zh) | 组件管理方法、系统、设备及存储介质 | |
CN104834557A (zh) | 一种基于Hadoop的数据分析方法 | |
CN106685894B (zh) | 一种风险识别方法、装置及系统 | |
CN104636286A (zh) | 用于数据访问的方法和设备 | |
CN112579692A (zh) | 一种数据同步方法、装置、系统、设备及存储介质 | |
CN110764839A (zh) | 一种业务处理流程配置方法、业务请求处理方法及装置 | |
CN108959359A (zh) | 一种统一资源定位符语义去重方法、装置、设备和介质 | |
CN112905339A (zh) | 任务调度执行方法、装置及系统 | |
KR101975272B1 (ko) | 협업 의존성 기반 컴포넌트 재사용 추천 시스템 및 방법 | |
CN113553378A (zh) | 一种区块链数据的删除方法和装置 | |
CN107256167B (zh) | 应用于应用系统迁移的升级控制方法及升级控制设备 | |
CN109753767B (zh) | 基于区块链的软件分发及更新方法和装置、服务器、客户端 | |
CN104834734A (zh) | 一种高效数据分析处理方法 | |
CN109726252A (zh) | 一种分布式数据集的数据管理方法及相关装置 | |
CN104834733A (zh) | 一种大数据挖掘分析方法 |
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 |