Google Datastore/Firestore - 世代时间戳

问题描述 投票:0回答:1

是否可以扩展以对每天只增加一次价值的实体建立每日时间戳索引?本质上,类似于最佳实践文档中解释的生成字段here(尽管该文档链接专注于删除,但我专注于写入)。第一天该字段的值为

1
,第二天为
2
,依此类推。然后您可以对该生成字段进行排序以获取按天排序的实体。

这样的模型有没有热点问题?因为从技术上讲,它是一个单调递增的字段,但该值每天只增加一次。

编辑:

考虑一个如下所示的实体:

Task
 tag: String
 generation: Integer

应用程序中的其他位置是一个静态全局整数,其值设置为

1

static int GLOBAL_VARIABLE = 1;

这个全局计数器的值每天在特定时间都会增加

1
,这可能是通过部署更新了硬编码值的新应用程序来实现的。

编写

Task
实体时,
generation
字段将设置为该全局整数。

现在您可以查询具有给定

Task
tag
的所有
generation
实体。您还可以按
generation
排序,从今天开始,
Tasks
位于列表顶部,随后的日子位于列表底部。

这样的东西可以扩展吗?或者这会遇到问题吗?假设您写入非常频繁,每秒超过 500 次。

google-cloud-platform google-cloud-firestore google-cloud-datastore
1个回答
0
投票

以社区维基的身份回答这个问题。正如道格·史蒂文森在评论中提到的那样

您有一个生成字段而不是时间戳,其中性能是一个问题 在您的场景中,生成字段每天增加一次,并且每秒写入超过 500 次,给定日期的所有记录都具有相同的生成值。因此,在突发期间写入相同的值根本不会导致索引分区范围必须增长。

© www.soinside.com 2019 - 2024. All rights reserved.