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

Performance 性能:数据存储写入与请求日志写入,performance,google-app-engine,Performance,Google App Engine,我们希望通过我们的应用程序收集使用情况统计信息。 因此,我们希望跟踪服务器端某处的用户操作 从性能角度看,哪个选项更合适: 在应用程序引擎请求日志中跟踪用户操作。i、 e.为每个用户操作编写日志条目 跟踪数据存储中表中的用户操作。为每个用户操作编写一个条目 我猜请求日志写入比数据存储写入快得多。这是正确的吗? 你的经验和建议是什么 谢谢: Henning我可以证实(通过我自己的经验观察,只是:我在官方文件中没有看到这一点),写日志条目比写存储条目快。仔细想想,这是有道理的:日志条目总是附加的,没

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

从性能角度看,哪个选项更合适:

  • 在应用程序引擎请求日志中跟踪用户操作。i、 e.为每个用户操作编写日志条目
  • 跟踪数据存储中表中的用户操作。为每个用户操作编写一个条目
  • 我猜请求日志写入比数据存储写入快得多。这是正确的吗? 你的经验和建议是什么

    谢谢: Henning

    我可以证实(通过我自己的经验观察,只是:我在官方文件中没有看到这一点),写日志条目比写存储条目快。仔细想想,这是有道理的:日志条目总是附加的,没有索引,没有特定的事务性问题(除了每个日志条目编写的原子性),等等;由于受到如此严格的限制,可以对其进行更优化


    然而,我曾经(在一年前的测试前非常早的时候)观察到一个案例,我认为应该有一个我写的日志条目,但就是找不到它;我无法重现观察结果,这可能是我的代码中的一个小故障,也可能是GAE中的一个自修复错误,但这让我对数据完整性产生了一点疑问——日志的完整性有多大保证?除非我在文档中明确地看到它,否则我不会觉得我可以依靠日志来保证100%的完整性——如果意外地丢失百万分之一的记录将是一个绝对的悲剧,也许追求商店更高的保证值的性能影响。

    请求日志的速度要快得多-不需要对每个日志语句进行往返;可以在用户请求结束后累积和推送日志。然而,据我所知,没有对请求日志的编程访问——因此,如果需要,您需要使用数据存储


    如果您想两全其美,请留意即将发布的任务队列API。:)

    谢谢。实际上,有一种方法可以访问请求日志,您可以使用appcfg.py脚本下载它们。随着旧日志被删除,我将不得不定期下载它们。我同意。对于主要簿记来说,这些日志是否足够可靠尚不确定。但对于基本的统计数据,我会使用它们来避免数据存储配额和可能的索引。对我来说,主要的问题是让应用程序引擎注销日志。由于日志位于环形缓冲区中,因此数据丢失的可能性很大。