0

我的行键的初始开始部分看起来像“YYYYMMDDhhmmss”,其中“ss”始终为 00。示例:20170603162100,对应于 2017 年 6 月 6 日的 16:21(不要问我为什么,但时间戳必须在钥匙的开始!)

这显然是每一分钟(显然每一分钟都是唯一的)数据。

这受到区域热点的影响。区域服务器上的行键将如下所示:

我的阅读模式:获取特定分钟的数据(不是一小时、一天、一个月、一年)

假设我有 10 个区域服务器。

这是我正在考虑的一个解决方案,它看起来像一种盐(但它是确定性的,而不是随机的):

我看到了 mm Part - minute 并根据它分配了一个盐。00 分钟:A 到行键的前缀 01 分钟:B 到行键的前缀 .. 09 分钟:J 到行键的前缀 10 分钟:A 到行键的前缀

这样,所有“A”密钥都应该分发到第一个区域服务器,依此类推。优点可能是:对同一区域服务器的所有单分钟请求,这对我来说是可以忍受的。下一分钟,所有请求都发送到其他区域服务器。

此外,在检索时,我不必进行并行读取,因为我实际上知道盐。

有人可以解释我在哪里错了吗?

4

1 回答 1

1

好吧,你只有 27 分钟覆盖英文字母,可能我会建议使用两个字母的盐,它仍然应该正确分配。(你有多少个节点?)。

或者,您可以尝试从行键中删除秒数并将其反转。

于 2017-06-03T11:56:22.603 回答