由於我们可藉由产生带重叠范围的配对请求,而这些配对请求将并发(Concurrently)的触发 MMF,就算是 Evaluation 已经针对这些 overlapping 选举出最合适的结果,这会在其余并发中的 MMF 选举过程,产生一个短暂的冲突时间点,为了解决这样的困扰,我们需要使用一个外力来中断这些 MMF,这便是 Synchronizer 的同步作用。
简单说起来这些状态,便是为了完成 singleton 所设计出来的过程,分别为:
Idle State
: 闲置状态,没有正在处理的 MMFRegistration
: 注册状态,Open Match backend 在呼叫 MMF 之前会先向 Synchronizer 注册,但这编其实有一个小限制,这些被记录的注册时间是有限制的,称之为 Registration window,这个 window size 可透过设定档调整,所有在同一个 Registration window 的配对请求将被一并评估ProposalCollection
: 配对搜集阶段,当注册阶段完毕後,在 Registration window 的请求将触发 MMF,并且产生一个 ProposalCollection window,将所有 MMF 回传的结果搜集起来Evaluation
: 选举阶段,这阶段发生在所有 MMF,都向 Evaluator 提出选举评估时,会触发 Synchronizer 控制以下两种行为:
Synchronizer 可以透过调整以下设定值,来改变 Registration
and ProposalCollection
状态的搜集时间。
registrationIntervalMs: millisecond
proposalCollectionIntervalMs: millisecond
~ kubectl describe -n open-match configmaps open-match-configmap-override
Name: open-match-configmap-override
Namespace: open-match
Labels: app=open-match
component=config
release=open-match
Annotations: chart: open-match-1.2.0
heritage: Helm
Data
====
matchmaker_config_override.yaml:
----
# Length of time between first fetch matches call, and when no further fetch
# matches calls will join the current evaluation/synchronization cycle,
# instead waiting for the next cycle.
registrationInterval: 250ms
# Length of time after match function as started before it will be canceled,
# and evaluator call input is EOF.
proposalCollectionInterval: 20s
# Time after a ticket has been returned from fetch matches (marked as pending)
# before it automatically becomes active again and will be returned by query
# calls.
pendingReleaseTimeout: 1m
# Time after a ticket has been assigned before it is automatically delted.
assignedDeleteTimeout: 10m
# Maximum number of tickets to return on a single QueryTicketsResponse.
queryPageSize: 10000
backfillLockTimeout: 1m
api:
evaluator:
hostname: "open-match-evaluator"
grpcport: "50508"
httpport: "51508"
Events: <none>
>>: 初学者跪着学JavaScript Day5 : 资料型别:Primitive values 和 Non-primitive values
刷题的正确姿势 在前一天的 LeetCode 解题的思考策略与解题地图 中提到程序题目的两种考法,...
因应国际化的需求,专案决定也要符合 international 的规格,Navbar 右上角的「选择...
终於完赛了,很感谢iT邦帮忙铁人赛这个活动,让我在30天内因为要发文而不断的学习,原本是一个下了班...
-802.1X 角色 .请求者不直接向 RADIUS 服务器进行身份验证。它向身份验证者进行身份验...
大家中秋节快乐 有没有烧肉吃饱饱,剥柚子,带柚子帽呢? 今天正15,月亮超级圆好漂亮喔 今天是我们来...