性能:数据存储区写入与请求日志写入

时间:2009-06-14 16:52:52

标签: performance google-app-engine

我们希望通过我们的应用收集使用情况统计信息。 因此,我们希望在服务器端的某个位置跟踪用户操作。

哪种选择更适合性能:

  1. 跟踪App Engine请求日志中的用户操作。即为每个用户操作写一个日志条目。
  2. 跟踪数据存储区中表中的用户操作。为每个用户操作写一个条目。
  3. 我想请求日志写入比数据存储写入要快得多。它是否正确? 您有什么经验和建议?

    感谢: 海宁

2 个答案:

答案 0 :(得分:4)

我可以确认(通过我自己的经验观察,只是:我没有在官方文档中看到这一点)写入日志条目比写入存储条目更快。考虑一下,这是有道理的:日志条目总是附加,没有索引,没有特定的事务问题(超出每个日志条目写入的原子性)等等;如此严格限制,它们可以更加优化。

然而,我曾经(非常早在一年前的前测试日期间)发现了一个案例,我认为应该是我写过的日志条目但是找不到它;我无法重现观察,它可能是我的代码中的一个小故障或GAE中的一个自修复的错误,但它让我对数据完整性有点怀疑 - 日志的完整性有多保证?直到并且除非我在文档中明确地看到它的内容,否则我不会觉得我可以依靠日志100%的完整性 - 如果不小心丢失一百万的记录将是一个绝对的悲剧,可能会去商店的更高保证值得对性能产生影响。

答案 1 :(得分:2)

请求日志非常快 - 每个日志记录语句都不需要往返;在用户请求结束后,可以累积和推送日志。但是,据我所知,对请求日志没有编程访问权限 - 因此,如果您需要,则需要使用数据存储区。

如果你想要两全其美,请留意任务队列API,很快就会发布。 :)