0

在 Gemfire 中,我的记录应该在最后一次读取记录后 n 秒过期。
entry-idle-time 似乎符合该描述,但我无法让它工作。

我试过 gfe:entry-tti action="DESTROY" timeout="120"

当我只有一台服务器时,这很好用,但是当我有 2 台服务器且冗余副本 = 1 时,即使我的测试程序每隔几秒钟查询一次,我的条目也会被删除。

我尝试了 action="LOCAL_DESTROY",但是服务器根本没有启动。

只要有人在查询它们,我如何才能使条目保持活力。

谢谢

4

1 回答 1

0

我认为问题在于最后修改时间仅在查询进入的任何副本中更新。然后,另一个副本在条目到期时将其删除。如果你以冗余 0 运行,我认为你会得到你期望的过期行为。

gemfire 文档有一个关于不使用 PRs 的 entry-idle-time 的注释,我想可能是因为这个原因:

“对于分区区域,为确保可靠的读取行为,请使用 time-to-live 属性,而不是 idle-time 属性。此外,您不能在分区区域中使用 local-destroy 或 local-invalidate 过期操作。”

http://gemfire.docs.pivotal.io/latest/userguide/index.html#developing/expiration/configuring_data_expiration.html

于 2014-10-28T18:19:49.440 回答