问题背景 本问题来源于实际问题,社交平台设计上为了保证回复帖的并发一致性,需要在回复帖前获取楼层的分布式锁,获取分布式锁的可以有资格修改存在Redis中的楼层数。目前逻辑是,如果竞争分布式锁失败,那么会直接报错,用户感知发帖失败。现在怀疑该设计会使得错误率随着QPS的提升有显著提升。本文从该问题出发,使用泊松分布与指数分布作为基本模型,探讨系统性能随容量变化的趋势。 问题描述与模型建立 问题描述如下。现有一社交平台,用户会有以下操作: 1. 发主题帖 2. 回复主题帖 存在如下碰撞可能,某一主题帖如果没有任何回复内容,在时间\( t_q\)内被至少一个用户回复,会发生碰撞。现已知每日主题帖的数量为\( Pst\),每日回复主题帖的数量为\( Rpst\),求每日发生碰撞次数的分布,并且探讨随着平台的使用量增大,碰撞概率发生变化的趋势。 用户在社交平台上针对某一主题帖进行回帖,可以看作服从泊松分布。有关泊松分布,可以参考本站先前的博客统计模拟(二)——泊松分布与二项分布模拟与统计模拟(六)——保险模型有关泊松分布的叙述。 用通俗的语言解释泊松分布,如现在已知每家海底捞在高峰时段平均每小时招待150名客人,求高峰时期招待用户数量的分布。 \[ P(X(t)=k)=e^{-\lambda t}\dfrac{(\lambda t)^i}{k!} \] 其中 \( \lambda\) 为单位时间内的事件发生概率,为了求2.5小时内招待350-400名客人的概率,可以将代入参数: \[ \sum_{k=350}^{400} P(X(k)) =\sum_{k=400}^{500} \dfrac{(150 \times 2.5)^k e^{(-150 \times 2.5)}}{k!} \approx 0.8122 \] 泊松分布与指数分布有着密不可分的关系,从当前时刻开始计算,时间 t 内事件发生的概率服从指数分布。(等价于时间 t 内事件发生次数不为0) \[ P(X < t) = 1 – e^{-\lambda t} \] 在本问题中,每个主题帖每秒钟平均的回复数为\( \lambda = Rpst/86400/Pst\)。假设当前存在一个主题帖,在24h内无人回复会沉帖。那么该主题帖的状态的转移状态为: … Continue reading “再谈泊松分布与指数分布”
再谈泊松分布与指数分布
No Comments so far