3

如果我需要一个包含十亿多个对象的数据库并且我需要随时立即(或几乎立即)访问数据库中的任何项目,那么最好的解决方案是什么。

该数据库的查询速度约为每秒 1000 个请求。数据库中的行几乎不相关,因此不需要是关系的。

如果你好奇为什么,那是为了模拟移动元素。

我在想像 Cassandra 的几个负载平衡集群,它们通过 Web 服务器的负载平衡集群访问。

钱是一个因素,所以越便宜越好。对软件或工具没有限制,但它必须是开源的。

只是寻找一种数据库解决方案,它可以很好地处理大量用户的大量数据(根本不需要关系)。

它必须处理冗余和故障。

只是一个让我朝着正确方向前进的高级想法就很好了。

4

2 回答 2

1

要考虑的一种选择是将您的 3D 坐标映射到空间填充曲线上,有效地将点表示为单个值。然后您可以运行 Cassandra 的范围查询来获取某个区域的点。

我之前已经在 2D 空间中看到过这种情况,我相信在 3D 中也是可能的。

于 2012-03-29T08:45:44.467 回答
0

由于您需要能够有效地获取 3D 间隔内的所有对象(X_min <= X_obj <= X_max & Y_min <= Y_obj <= Y_max & Z_min <= Z_obj <= Z_max),我不确定一个键有多好像 Cassandra 这样的超值商店会适合您。看看MongoDB可能也是值得的,因为我相信这允许您索引多个字段并根据间隔进行查询。

于 2010-07-22T13:33:35.683 回答