如何同时删除和添加数据到数据存储?
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.
我正在创建一个简单的网络模型。网络包含节点。每个节点都有一个数据存储。节点将数据从它们的数据存储发送到其他节点。
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.