在执行Logging语句时Google会将日志存储在何处?记录语句似乎非常快,因此它们似乎不会存储在数据存储区中.
原木的可靠性如何?如果我做一个日志语句并且它成功了,它几乎可以保证它会显示在日志中吗?
记录过去的历史记录多少?
我对此感兴趣的原因是因为我正在建立一个问答网站,我想跟踪每个唯一登录用户对每个问题的查看,并在问题页面上显示查看计数.因此,如果10个不同的用户访问问题页面100次,它仍然只计为10个唯一视图.
我有一台异地计算机,可以为我的应用程序进行后台处理.我计划让这台非现场计算机每30分钟下载一次日志,并根据日志计算每个问题的查看次数.通过这样做,我不必为每个用户查看的每个不同问题创建数据存储区实体.
你们有什么感想?有没有人看到这个问题?
编辑:我想我主要担心的是日志的可靠性.
这不是你问题的答案 - 相反,它是对你试图解决的问题的回应.
如果您熟悉Bloom Filters并使用Memcached的incr(或分片数据存储计数器),您可以创建一个"足够好"的解决方案.您可以使用布隆过滤器来测试值是否在集合中(在本例中为用户ID),如果不是,则递增计数器并将值添加到过滤器.Bloom Filters的一个属性是向要检查包含的集合添加值是一个恒定时间操作.Spacewise,它需要一些空间来存储每个潜在的过滤器,但这似乎比编写代码定期grep uniques时要简单一个数量级.这是一个Python实现.
然而,没有什么是免费的 - 我说"足够好"很重要.使用Bloom Filters,总会出现误报的可能性.也就是说,根据每个问题的散列大小,您很可能会检查用户ID是否已被计数,并且当用户第一次查看该问题时获得"是的" .您可以计算出合理误报所需的大小,但这样做有一个空间权衡.