稳定分流增加:MurmurHash算法
稳定分流增加:MurmurHash算法
我们采用的MurmurHash算法,参与该算法的Hash因子包括设备id、策略id和流量层id。
MurmurHash是行业内常用的ABTest算法,可应用于Redis、Memcached、Cassandra、HBase等多个开源项目。MurmurHash有两个明显的特点:
快,比安全散列算法快几十倍。
变化足够激烈。对于类似的字符串,如abc和abd,可以均匀分布在哈希环上,主要用于实现正交和互斥实验的分流。
下面简单解释一下正交和互斥:
·互斥。指两个实验流量独立,用户只能进入其中一个实验。一般来说,对于同量层的实验,如图形混排列表实验和纯图形列表实验,同一用户只能同时看到一个实验,所以互斥。
实验流量层中的hash因子包括设备id和流量层id。当请求流经一个流量层时,只会命中一个实验,即同一用户的同一请求较多只会命中一个实验。先对hash因子进行hash操作,采用murmurhash2算法,可以增加hash因子的微小变化,但结果的值变化很大,然后对100求余+1,较后得到1-100之间的值。
分流实验内版本:
实验hash因子包括设备id、策略id和流量层id。用同样的策略来匹配版本。
我们采用的MurmurHash算法,参与该算法的Hash因子包括设备id、策略id和流量层id。
MurmurHash是行业内常用的ABTest算法,可应用于Redis、Memcached、Cassandra、HBase等多个开源项目。MurmurHash有两个明显的特点:
快,比安全散列算法快几十倍。
变化足够激烈。对于类似的字符串,如abc和abd,可以均匀分布在哈希环上,主要用于实现正交和互斥实验的分流。
下面简单解释一下正交和互斥:
·互斥。指两个实验流量独立,用户只能进入其中一个实验。一般来说,对于同量层的实验,如图形混排列表实验和纯图形列表实验,同一用户只能同时看到一个实验,所以互斥。
·正交。正交是指用户进入所有实验之间没有必然关系。例如,进入实验1中a版本的用户在进行其他实验时也是均匀分布的,而不是集中在某个区间。
实验流量层中的hash因子包括设备id和流量层id。当请求流经一个流量层时,只会命中一个实验,即同一用户的同一请求较多只会命中一个实验。先对hash因子进行hash操作,采用murmurhash2算法,可以增加hash因子的微小变化,但结果的值变化很大,然后对100求余+1,较后得到1-100之间的值。
分流实验内版本:
实验hash因子包括设备id、策略id和流量层id。用同样的策略来匹配版本。
延伸阅读:
- CAD培训班学费要多少[图]
- 电商美工培训班多少钱[图]
- 室内设计培训班学什么内容[图]
- 重庆天琥教育地址在哪里[图]
- 重庆天琥教育培训靠谱吗[图]
- 包装设计分类有哪些-包装设计有哪些种类[图]
- 平面设计要求-平面设计师需要具备什么条件[图]
- 装修怎么找设计师-如何找好的装修设计师[图]
- 室内设计专业怎么学-室内设计专业需要学什么[图]
- 报班学广告设计要多久-报班学设计一般多少钱[图]