GemFire 增量传播线程安全
GemFire delta propagation thread-safety
GemFire 允许通过实现 Delta
接口(hasDelta
、toDelta
和 fromDelta
)发送增量而不是完全成熟的对象来减少更新期间的网络负载。
是否可以假设如果从不同的更新程序接收到针对同一密钥的多个更新,上述方法不是 运行 并发的?
GemFire(现在是 Apache Geode(孵化))预先计算传入 Delta
更新的 "delta" 位。因此 hasDelta
和 toDelta
在新值上被调用,甚至在它被 "actually" 放入 Region
之前,并且 不是 同步。 application/implementation 需要处理它。另请注意,toDelta
仅在更新发起的第一个成员处调用。
另一方面,在 "actually" 将新值放入时,fromDelta
在锁定密钥条目后调用现有值(在接收成员的缓存中) Region
。不同键的增量更新同时发生,就像正常更新一样。
Region
属性 cloning-enabled
或 Cache
属性 copy-on-read
决定增量位是就地应用于现有值还是应用于其副本。
How/where 增量事件的分布与 GemFire 中的正常事件分布非常相似。
如果您还没有这样做,请访问this page此页面了解更多详情。
GemFire 允许通过实现 Delta
接口(hasDelta
、toDelta
和 fromDelta
)发送增量而不是完全成熟的对象来减少更新期间的网络负载。
是否可以假设如果从不同的更新程序接收到针对同一密钥的多个更新,上述方法不是 运行 并发的?
GemFire(现在是 Apache Geode(孵化))预先计算传入 Delta
更新的 "delta" 位。因此 hasDelta
和 toDelta
在新值上被调用,甚至在它被 "actually" 放入 Region
之前,并且 不是 同步。 application/implementation 需要处理它。另请注意,toDelta
仅在更新发起的第一个成员处调用。
另一方面,在 "actually" 将新值放入时,fromDelta
在锁定密钥条目后调用现有值(在接收成员的缓存中) Region
。不同键的增量更新同时发生,就像正常更新一样。
Region
属性 cloning-enabled
或 Cache
属性 copy-on-read
决定增量位是就地应用于现有值还是应用于其副本。
How/where 增量事件的分布与 GemFire 中的正常事件分布非常相似。
如果您还没有这样做,请访问this page此页面了解更多详情。