Day9 重叠条件配对池 Overlapping MatchProfiles

在一些比较普通的应用场景,我们产生一个 matches 的流程会像是,由 Director 轮询呼叫 Open-Match Backend 取得一组 MatchProfile,而过程中会触发 MMF 的执行,并且依照 MatchProfile filter 的条件获得对应的 tickets,最後 MMF 依照设定的逻辑匹配这些 tickets,返回 matches

而在一般场景会将这些 Tickets Pool 完美的分配划分,使得条件设定是不会重叠的,透过设定 MatchProfiles filter 的内容可以达成我们期望的目标,指定好特定区间或固定的条件,让 MMF 捞出来 tickets 执行的时候不会有 overlap 的可能性。但事实上我们在做分配时,还是有可能利用部分重叠的条件范围,来使得配对时间缩短,提升配对品质体验。

Overlapping 范例情境

无重叠条件的 MatchProfiles

Director 发出含有以下条件 ticketsMatchProfiles

  • Profile1: ping 0~49
  • Profile2: ping 50~99
  • Profile3: ping 100~300
p := []*pb.MatchProfile{
		{
			Name: "Profile1",
			Pools: []*pb.Pool{
				{
					Name: "ping",
					DoubleRangeFilters: []*pb.DoubleRangeFilter{
						{
							DoubleArg: "ping",
							Min:       0,
							Max:       49,
						},
					},
				},
			},
		},
		{
			Name: "Profile2",
			Pools: []*pb.Pool{
				{
					Name: "ping",
					DoubleRangeFilters: []*pb.DoubleRangeFilter{
						{
							DoubleArg: "ping",
							Min:       50,
							Max:       99,
						},
					},
				},
			},
		},
		{
			Name: "Profile3",
			Pools: []*pb.Pool{
				{
					Name: "ping",
					DoubleRangeFilters: []*pb.DoubleRangeFilter{
						{
							DoubleArg: "ping",
							Min:       100,
							Max:       300,
						},
					},
				},
			},
		},
	}

有重叠条件的 MatchProfiles

Director 发出含有以下条件 ticketsMatchProfiles

  • Profile1: ping 0~49
  • Profile2: ping 39~99
  • Profile3: ping 79~300
p := []*pb.MatchProfile{
		{
			Name: "Profile1",
			Pools: []*pb.Pool{
				{
					Name: "ping",
					DoubleRangeFilters: []*pb.DoubleRangeFilter{
						{
							DoubleArg: "ping",
							Min:       0,
							Max:       49,
						},
					},
				},
			},
		},
		{
			Name: "Profile2",
			Pools: []*pb.Pool{
				{
					Name: "ping",
					DoubleRangeFilters: []*pb.DoubleRangeFilter{
						{
							DoubleArg: "ping",
							Min:       39,
							Max:       99,
						},
					},
				},
			},
		},
		{
			Name: "Profile3",
			Pools: []*pb.Pool{
				{
					Name: "ping",
					DoubleRangeFilters: []*pb.DoubleRangeFilter{
						{
							DoubleArg: "ping",
							Min:       79,
							Max:       300,
						},
					},
				},
			},
		},
	}

我们需要注意的是,在给定含有重叠的 MatchProfiles 时,会产生组合的碰撞,而如何让这些带有重叠的 tickets 配对池,可以得到最合适的配对结果?需要仰赖 Open-Match 核心 Evaluator 的参与 ,透过我们在 MatchProfiles 给予 overlapping 与 MMF 计算配对品质指数,Evaluator 可以协助我们找出最合适的配对组合,这部分我们留至 Evaluator 范例说明。


<<:  2021-Day12. ~Take a break~复习。

>>:  什麽是AutoML

[Day9]-字典(dict)

基本字典 字典的元素是以”key:value”的方式储存的,可以利用key去找到对应的value,...

Day05 - Gem-paranoia 软删除介绍与应用

前言 对 ActiveReord 进行软删除 (Soft Deletion) 时,可透过自行实作 (...

DAY26 深度学习-卷积神经网路-Yolo V1

接续昨天的文章,今天介绍一下Yolo v1的Loss Function,由於在训练的时候我们当然希...

nginx 反向代理到路径时自动添加路径下的 index.html

在设置反向代理静态网站时,当网页在路径目录下 nginx 不会自索引 index.html (例:h...

第6车厢-恩~人家被勾到了拉:checked应用篇

本篇介绍伪类中的状态选取器:checked应用篇:做一个开关按钮 :checked介绍 :chec...