如何同时删除和添加数据到数据存储?

How to simultaneously remove and add data to a data store?

我正在创建一个简单的网络模型。网络包含节点。每个节点都有一个数据存储。节点将数据从它们的数据存储发送到其他节点。

sig Node { 
    data: Data -> Time,
    send: Data -> Node -> Time 
}

假设节点n在t - t'时间段内向节点n'发送数据d:

n.send.t' = n.send.t + d -> n'

节点 n' 的数据存储更新为 d:

n'.data.t' = n'.data.t + d

由于节点 n 已处理数据(即发送数据),n 从其数据存储中删除 d:

n.data.t' = n.data.t - d

假设,在同一时间段内,另一个节点N向节点n发送了相同的数据d。这导致 adding d 到 n 的数据存储:

n.data.t' = n.data.t + d

哎呀!有矛盾:

n.data.t' = n.data.t - d
n.data.t' = n.data.t + d

没有满意的例子。该怎么办?我如何处理从其数据存储中删除 d 的同时将 d 添加到其数据存储的节点?[​​=16=]

只需根据 n.data.t 和 n'.send.t 为所有其他节点 n' 定义 n.data.t',包括 n.