处理实时分布式系统的延迟

时间:2011-06-28 21:43:32

标签: real-time distributed latency distributed-system

我正在尝试实现一个扑克服务器。 http服务器将数据包转发到后端服务器,后端服务器处理所有扑克牌手的状态。在任何给定的手中,玩家可以采取行动10秒(下注,弃牌,跟注,加注等)。如果在10秒内没有响应,服务器会自动折叠它们。要检查10秒是否已经过,必须保留必须接收操作的事件列表。它是按时间排序的优先级队列,当前正在播放的每个扑克牌在优先级队列中都有一个条目。

考虑以下情况,因为上一个操作在下一个操作到达http服务器之前经过9.99秒。当操作转发到后端服务器时,额外的时间过去了所以现在总共已经过了10.1秒。后端服务器将声明手动折叠,但我希望处理动作,因为技术上它在9.99秒后到达http服务器。现在一个解决方案是让后端等待一些额外的时间,然后再声明一只手折叠,以查看时间戳为9.99秒的动作是否到来。但是当手中的下一个人开始行动时,这会导致延迟。

我想要的目标是

  1. 处理以9.99秒到达http服务器的操作,而不是折叠他们的手。
  2. 积极地减少由于必须空闲等待“解决”第1点中提到的问题而导致的延迟。
  3. 有哪些解决方案?对于分布式系统的专家来说,已知有关于各种解决方案的权衡取舍的文献。我想知道分布式系统文献认为可接受的各种解决方案。不仅仅是各种临时解决方案。

1 个答案:

答案 0 :(得分:0)

也许在服务器端,当客户端请求到达时,您可以采取时间戳? 那么你会采用“开始”和“停止”时间戳来准确测量9.9秒?