next up previous
: Object Placement : Object Store Consistency : Discovery Latency

Replica Set Inconsistency

図 11: (a) The fraction of replicas missing averaged across all time instances as we scale the number of servers in the peer-to-peer scenario. (b) The cumulative distribution of the absolute number of missing replicas (in the 150-node peer-to-peer scenario). Only time instances where at least 1 replica is required are included.
(a) (b)

To examine the impact that object discovery latency has on object store consistency, we examine how often replicas that a node should have (i.e., because they are within the bounding box(es) subscribed to by that node) are not present in the node's object store. Since items do not move, they are much more likely to be globally consistent than mobile objects, so we only examine mobile objects like players and missiles in our evaluation.

We compute the fraction of replicas missing at a given time instance as the ratio of the number of missing replicas and the total number of replicas required (counting only time instances where the node requires at least 1 replica). Figure 11(a) shows the fraction of replicas missing as we scale the number of nodes in the peer-to-peer scenario. For example, with 60 nodes, on average about 6% of the objects we require are missing at any given time and with 150 nodes, a little more than 8% are missing. The middle (bottom) line shows the fraction missing if we allow 100ms (400ms) to elapse after the percise time we required them. (In Quake II, this corresponds to 1 (4) frames.) Nearly 1/2 of the replicas a node is missing at any given time instance arrives within 100ms and less than 1% take longer than 400ms to arrive.

Moreover, the average number of replicas required at any given time instance in the 150 node scenario is approximately 2. So almost always, we are missing less than one replica. Figure 11(b) shows the cumulative distribution of the number of missing objects for the 150 node scenario. About 85% of the time, a node is missing no replicas; this improves to about 93% of the time if we wait 100ms for a replica to arrive and over 98% of the time if we wait 400ms for a replica to arrive. We are missing more than 1 replica in less than 3% of time; 1.2% of the time if we wait 100ms and 0.3% of the time if we wait 400ms.

Although there are a small number of time instances when a node has to wait longer than 400ms for a replica to arrive or when a are missing a large number of replicas, we believe these cases arise primarily due to when our logging code flushes in-memory buffers to disk, which severely degrades performance for 1-2 seconds, once every minute.

While different games will have different latency and consistency requirements, we believe that our results are promising for medium sized groups in the wide area and games that can tolerate object store inconsistency on the order of several 100 milliseconds, in the worst case. When inconsistency at the ``periphery'' of required regions of space is tolerable, Colyseus may be even more usable.


next up previous
: Object Placement : Object Store Consistency : Discovery Latency
Ashwin Bharambe 平成17年3月2日