gpt4 book ai didi

google-app-engine - 如何实现 "Sharding Counters"以在 Cloud Datastore 中创建或更新每秒超过 5 次写入的单个实体?

转载 作者:太空宇宙 更新时间:2023-11-03 15:37:44 25 4
gpt4 key购买 nike

我需要通过增加 Google Cloud Datastore 中的写入吞吐量来提高服务器的性能。

要求:

当服务器同时收到超过 5 个创建用户数据的请求时,服务器需要创建或更新这些实体。

但是,我遇到了一个写入争用的问题。

我知道一个可能的解决方案是使用后写式缓存机制,将可能导致争用 Memcache 和任务队列的写入操作转移到会降低 Cloud Datastore 命中率的位置。

但我想并行进行,没有任何延迟时间。

1.是否可以应用“分片计数器”来创建或更新 ndb 的用户模型?

2.你能提供一些示例代码吗?

最佳答案

我做了一些研究,想分享如下 https://weishihhsun.blogspot.com/search/label/Google%20App%20Engine

关键是我们可以使用随机唯一 ID 对我们的实体组进行分片,如下所示。

NUM_SHARDS = 1000

shard_string_index = str(random.randint(0, NUM_SHARDS - 1))

FriendShip(id=shard_string_index,
user_key='user Id',
friend_key='frind Id')

要同时并行写入一千个Friendship实体,我们只需要将NUM_SHARDS的数量设置为1000。

关于google-app-engine - 如何实现 "Sharding Counters"以在 Cloud Datastore 中创建或更新每秒超过 5 次写入的单个实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43605922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com