gpt4 book ai didi

algorithm - 为多个节点生成有限范围内的唯一数字

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:20:31 26 4
gpt4 key购买 nike

我什至不确定以下是否可行,但问问总不会有坏处:

我有两个节点运行同一个应用程序。每台机器都需要一个序列生成器,该生成器会为其提供一个介于 0 和 1e6 之间的数字。如果一个节点已经使用了一个号码,则另一个节点不得使用它。发电机应在每晚午夜重置。任何号码都不应在同一天使用两次,即使机器重新启动也是如此。我们希望避免任何涉及数据库、分布式缓存或文件系统的解决方案。假设我们每天永远不需要超过 1e6 个数字。数字不必按顺序使用。

到目前为止,我们已经想到了以下内容:

1)机器A使用奇数,机器B使用偶数。

优点:没有共享状态。

缺点:机器可能会用完数字,但还有很多剩余。如果机器重新启动,它将重新使用以前使用过的号码。

2)机器A从0到1e6,机器B从1e6到0。

优点:没有共享状态。保证在遇到问题之前消耗所有可用数字。

缺点:不能扩展到超过两台机器。机器重启时出现同样的问题。

你怎么看?有没有一种神奇的算法可以满足我们的要求而不需要向磁盘写入任何内容?

最佳答案

No number should be used twice in the same day, even if a machine restarts.

由于您不想使用任何持久状态,这对我来说表明数字必须以某种方式取决于时间。这是算法可以区分两个不同初创公司的唯一方法。您不能只使用组合 (node, timestamp) 来获得足够精细的时间戳,而不是您的数字吗?

关于algorithm - 为多个节点生成有限范围内的唯一数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1487380/

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