2009-12-16 30 views
4

我正在考虑设计基于CouchDB的事件日志记录系统。使用CouchDB后端设计日志记录系统

什么是存储每个事件的好方法?

与事件“附件”每
  • 一个文档事件
  • 每一个事件类型的文档,事件作为附件
  • 其他

    1. 一个文件?

    回答

    4

    我会为事件设置一个文档。如果是事件记录系统,事件是主要实体,对吗?所以恕我直言,它应该是文件,而不仅仅是一些附件。该解决方案为您提供搜索/过滤事件时的灵活性。

    +0

    我知道这是旧的,但我已经成功地使用这种确切的方法做了一个couchdb日志记录系统。我有超过200台机器进行报告,并且效果很好。 –

    2

    我肯定会去每个事件一个文件。除了amorfis的回答之外,使用附件很可能会在更新期间导致文档争用,除非您非常仔细地将更新序列化。只需将事件放入couchdb中作为文档,并使用视图来分割事件并进行分析。

    +0

    嗯...在couchDB争用?我认为这是基于“修订”系统而不锁定的。请解释一下? – jldupont

    +0

    如果您有当前版本的修订版本,则只能更新文档(包括添加附件)。每次存储文档时都会分配一个新的版本。所以,如果有很多事情想要更新文档,例如一些记录员,那么他们最终可能会在文件上“打架”。失败者重新加载文件并重试。 –