首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用clojureql或STM +异步写入?

使用clojureql或STM +异步写入?
EN

Stack Overflow用户
提问于 2010-12-30 19:16:17
回答 1查看 228关注 0票数 3

我正在用clojure编写一个应用程序,它需要持久化它的数据,但是如果一些数据丢失了,那也不是灾难性的。我想知道是应该在每次访问数据时都使用ClojureQL,还是应该使用STM + ClojureQL并在更新/写入时异步地持久化数据。有没有人知道每种方法的优缺点。有人尝试过异步持久化方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-30 23:30:50

这是一种改进写入延迟的经典方法,通常称为写入延迟。将更新批处理在一起并在单独的异步线程中执行它们有几个好处:

  • 从更新路径中删除(假设速度较慢)对永久存储区的写入
  • 如果您可以批量更新,效率会更高
  • 可能允许合并更新(如果您在同一批处理中对同一键进行了多次写入,则可以删除除最后一个之外的所有写入操作,并且根本不写入中间值)

Write- also也有很大的缺点:

如果数据仅存储在内存中,则

  • 写入可能会丢失
  • 让后台异步线程正确参与事务系统的其余部分有时很有挑战性
  • 后台线程可能会得到备份,因为它们正在处理操作的“慢”部分;write- backed在用于加快偶尔的峰值时工作得最好,并且可以在内存-写入和存储之间的写入读取期间恢复-写入将看到旧值,除非您还检查内存中的状态-这可能会令人困惑,或者读取成本可能很高。因此,write- cache通常与直读缓存结合使用,在直读缓存中所有读取都通过缓存进行。

当然,所有这些都与ClojureQL或扫描隧道显微镜没有任何关系。:)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4562122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档