Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 您能否拥有大量分片计数器,即大量实体类型?_Performance_Google App Engine_Scalability - Fatal编程技术网

Performance 您能否拥有大量分片计数器,即大量实体类型?

Performance 您能否拥有大量分片计数器,即大量实体类型?,performance,google-app-engine,scalability,Performance,Google App Engine,Scalability,我的问题是关于碎片计数器,以及你是否可以有太多请注意,下面只是一个虚构的例子。 假设您希望保持站点上不同页面的点击率。因此,为了防止数据存储争用,您决定对每个页面的命中计数器进行切分。现在页面的数量增加了,因此分片计数器的数量也增加了 假设您遵循典型的分片示例,每个分片计数器都有自己的种类,允许构建一个查询来检索属于某一种类的所有条目,即属于该特定分片计数器的所有实体 我的问题是: 将有大量计数器(不是每个计数器的碎片) )会影响性能,因为会有这么多实体类型 这是最好的做法吗?我的意思是,在数据

我的问题是关于碎片计数器,以及你是否可以有太多请注意,下面只是一个虚构的例子。

假设您希望保持站点上不同页面的点击率。因此,为了防止数据存储争用,您决定对每个页面的命中计数器进行切分。现在页面的数量增加了,因此分片计数器的数量也增加了

假设您遵循典型的分片示例,每个分片计数器都有自己的种类,允许构建一个查询来检索属于某一种类的所有条目,即属于该特定分片计数器的所有实体

我的问题是:

  • 将有大量计数器(不是每个计数器的碎片) )会影响性能,因为会有这么多实体类型

  • 这是最好的做法吗?我的意思是,在数据存储查看器中,当您加载实体类型时,它看起来很难看,因为每种类型都是站点上某个页面的切分计数器

  • 如果上述情况不好,有什么更好的解决方案


  • 如果您遵循您所谓的“典型碎片计数器”示例,您可以看到只有一种计数器类型,但是您可以创建不同的字符串键来计算不同的东西

    这样,您的数据库中只有一种ShardCounter类型,但许多实例具有不同的字符串键

    我们有一个类似于你所描述的系统。仅使用一种计数器,我们就可以计算出100多种事件类型,每天的点击总数约为百万次。因此,可以安全地假设它是可伸缩的;)

    编辑添加了谷歌文档中的计数器代码示例:
    在上一个示例中,您将看到一个计数器,该计数器在代码顶部有一个
    SHARD\u KEY\u模板
    变量。最后一个示例允许具有相同碎片类的不同计数器。

    等等,我可能需要你的帮助,我记得读过/实现过,要计算“事件”的点击数,你需要创建一个计数器类型的名称(例如“事件碎片”)。然后,要检索“event_a”的所有碎片,您需要执行一个查询,以获取所有类型为“event_a_碎片”的实体。好吧,我想还有另一种计数器类型,只是为了跟踪每个计数器的碎片数。你不是这样做的吗?如果是这样的话,那么你仍然需要有一个每种计数器。编辑答案,看看链接中的例子谢谢你的提示-这很好。我从来没有注意到它,因为我只检查过Java示例。