【问题标题】:High throughput NoSQL Databases高吞吐量 NoSQL 数据库
【发布时间】:2016-12-10 20:58:15
【问题描述】:

我正在为应该能够处理每分钟 100.000 次写入的系统寻找合适的数据库。还有来自用户的随机读取。 每次写入的数据应约为 100 字节。 现在我检查了一些 NoSQL 数据库的基准。其中一位来自Datastax

它在许多情况下显示了读取、写入和混合操作的不同性能测试。适用于 HBase、Cassandra、Couchbase 和 MongoDB。

在大多数情况下,我需要 12 个节点来每秒执行 100.000+ 次操作。

如果我每分钟有 100.000 次操作,我是否需要能够每秒处理所有请求?最终可能会在一秒钟内发送所有请求?如果我每秒有 100.000 次写入。这是否意味着每次从 Web 应用程序读取都需要超过 1 秒。 我有点困惑。

编辑: 我不想让你为我选择一个数据库。如果我每分钟真的有 100.000 次写入,我的数据库应该能够在一秒钟内处理我的请求吗?这是否意味着我需要超过 12 个节点才能获得良好的性能?

【问题讨论】:

  • 建议超出了 Stack Overflow 的范围。但是,每秒 100,000 次写入并不是什么大负载;低于 2,000/秒。
  • 一个分布式数据库有多少个节点?
  • 根据这个比较 (sqlite.org/speed.html),在过时的单处理器硬件上的古老软件的插入速度为 2,000 次/秒。

标签: database performance throughput bigdata nosql


【解决方案1】:

我真的建议你,如果你需要 100.000 Ops/Sec 根据 Cassandra 文档,这是一个很好的数据库,只有你可以处理两个节点才能做到这一点,见下图:

如果你有 12 个节点,如果你有正确的分区、正确的复制因子和其他东西,你可以做更多的事情。

但这可以轻松解决您的问题。

但是,如果您遇到每分钟 100.000 次的问题……请使用 MySQL 或 Postgres。这将解决您的问题。

【讨论】:

  • 请不要回答此类离题的产品推荐问题。您可以将大约 any 数据库命名为答案,它同样有效(或无效)。然后跟进一些 SQL 建议?这甚至没有意义,而且没有办法知道它们中的任何一个都会解决操作的问题。