我们有一个具有以下规格的数据库:
- 30k 条记录,大小为 7mb
- 每秒 20 次插入
- 每秒 1000 次更新
- 每秒 1000 次范围选择,按二级索引,每条约 10 行
- 至少需要一个二级索引
- 如果密钥在 75 秒内未更新,则需要某种机制来使密钥过期(可以通过编程垃圾收集器完成,但需要额外的“last_update”索引并会增加一些负载)
- 无需一致性
- 无需耐用性
- db应该存储在内存中
目前我们使用 Redis,但它没有二级索引,而且速度keys index:foo:*
太慢。Membase 也没有二级索引(据我所知)。MongoDB 和 MySQL 内存引擎都有表级锁。哪种引擎适合我们的用例?
答案1
参与 Cassandra(全面披露:-),以下是一些将 Cassandra 与各种替代方案进行比较的链接:
- https://stackoverflow.com/questions/7237271/large-scale-data-processing-hbase-vs-cassandra/7238818#7238818
- https://stackoverflow.com/questions/2252163/how-does-voldemort-compare-to-cassandra/2273578#2273578
- https://stackoverflow.com/questions/2123507/cassandra-vs-riak/2128487#2128487
- https://stackoverflow.com/questions/4643846/membase-vs-cassandra/4651731#4651731
我希望你发现这些有用...
斯文
答案2
您可以尝试使用 PlayOrm,它在 Cassandra 之上具有可扩展 SQL,看看效果如何。您可能想尝试 10 个节点,甚至 20 个节点,因为查询中并行化的磁盘越多,速度就越快。
答案3
看看 VoltDB 怎么样?它位于内存中,速度很快。
Riak 也将实现这些目标。
//基督教