gpt4 book ai didi

database - 为共享计数器对数据库进行分区

转载 作者:可可西里 更新时间:2023-11-01 11:38:14 25 4
gpt4 key购买 nike

在数据存储的设计过程中,我们正在寻找一种对条目进行分区的方法。主要瓶颈是在对共享计数器进行分区时。比方说,我们要提供 n 张票(典型的火车预订,IRCTC 等)。我们如何对数据存储进行分区,以便客户端看到它们之间的实时一致性(根据预订百分比,即 currentvalue/x)。

每次读取的聚合成本太高,任何其他指针都会有用。

同时假设写入操作是并发的(因此不会将读取卸载到从属),并且对于最终一致性来说是没问题的。但是有没有办法可以最小化分片之间的不一致性差异。例如,100 张票的部分在 4 个分片中完成,如 25、25、25、25。在任何给定的时间点,数据库的 View 应该像 x% 一样满,以及如何最小化分片之间的不一致(简单的操作,如循环法、哈希等)。

最佳答案

如果您的用例是您想要分发共享计数器以更好地处理读取操作的负载,您可以将共享计数器保留在它自己的实例中(根据@ItamarHaber 的建议)并建立 N 个从属实例从主实例复制。然后可以在 N 个从属设备之间对共享计数器的读取操作进行负载平衡。有一些关于通过配置文件操纵主从设置的讨论 here ,还有关于使用 SLAVEOF 动态操作从站设置的文档命令。

这里需要注意的是,您必须能够仅针对 master 进行直接写操作(INCRDECR 等),也许是通过队列-基于实现。这种方法将允许分配读取操作,但我不知道有什么方法可以避免对公共(public)资源进行序列化写入,除非您愿意允许最终一致性。

关于database - 为共享计数器对数据库进行分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28210736/

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