gpt4 book ai didi

couchdb - 分布式数据库,轻负载节点多

转载 作者:行者123 更新时间:2023-12-02 14:17:02 26 4
gpt4 key购买 nike

我正在从事一个涉及 CPU 密集型计算的业余爱好项目。这个问题是令人尴尬的并行。此计算需要在大量节点(例如 1000-10000)上进行。每个节点几乎可以完全独立于其他节点来完成其工作。然而,整个系统将需要回答来自系统外部的查询。每秒大约需要回答 100000 个此类查询。为了回答查询,系统需要一些有时在两个节点之间共享的状态。节点最多需要 128MB RAM 来进行计算。

显然,我可能不会负担得起以上述规模实际构建这个系统的费用,但我仍然对它的工程挑战感兴趣,并且认为我应该设置少量节点作为概念验证。

我正在考虑使用 Cassandra 和 CouchDB 之类的东西在所有节点上拥有可扩展的持久状态。如果我在每个节点上运行分布式数据库服务器,它的负载会非常轻,但从操作的角度来看,让所有节点都相同会非常好。

现在回答我的问题:

任何人都可以建议一种分布式数据库实现,该实现非常适合包含大量节点且每个节点的 RAM 很少的集群吗?

Cassandra 似乎做了我想做的事,但是 http://wiki.apache.org/cassandra/CassandraHardware讨论建议每个节点至少使用 4G RAM。

我还没有找到 CouchDB 内存需求的数字,但考虑到它是在 Erlang 中实现的,我想也许它并没有那么糟糕?

无论如何,欢迎推荐、提示、建议、意见!

最佳答案

您应该能够使用 cassandra 来完成此操作,但根据您的可靠性要求,像 redis 这样的内存数据库可能更合适。

由于数据集非常小(100 MB 数据),因此每个节点应该能够使用少于 4GB 的 RAM 来运行。添加 cassandra 开销,您可能需要 200MB 的内存用于内存表,另外 200MB 的内存用于行缓存(为了缓存整个数据集,关闭键缓存),另外还需要 500MB 的内存用于 java,这意味着每台机器配备 2 GB 内存就可以了。

使用 3 的复制因子,您可能只需要一个大约 10 个节点的集群来满足您所需的读/写数量(特别是因为您的数据集非常小,并且所有读操作都可以从行缓存)。如果您需要 1000 个节点的计算能力,请让它们与存储您数据的 10 个 cassandra 节点通信,而不是尝试拆分 cassandra 以在 1000 个节点上运行。

关于couchdb - 分布式数据库,轻负载节点多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8090314/

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