2016-07-29 92 views
2

我们正在考虑将Couchbase用作持久缓存层。由于Couchbase首先将缓存项写入内存并异步同步到磁盘,因此我们担心的一个问题是崩溃一致性。如果某些缓存项目在内存中更新并且Couchbase在将它们提交到磁盘之前崩溃,那么当Couchbase重新启动时,这些项目将失效。Couchbase:是否有可能存在过时的低温缓存?

我的问题是:

  • 将Couchbase检测和报告这些项目是否陈旧?如果是这样,我们可以放弃这些项目,因为它们是缓存。
  • 是否有任何其他Couchbase特定的方式来处理陈旧的缓存问题?

回答

2

我不认为会有办法检测文档是否过时,因为(在您的情况下)它们在崩溃前未写入磁盘。

但是,您可以在创建文档时指定durability requirements。默认情况下,写入被认为是成功的,如果它将其写入内存。您可以添加其他约束,如“PersistTo”(在写入被认为成功之前,文档必须被保存到N个节点)。