如果我需要拥有数十亿个对象的数据库,并且我需要随时立即(或几乎立即)访问数据库中的任何项目,那么最佳解决方案是什么。
将以每秒约1000个请求查询此数据库。数据库中的行几乎不相关,因此不需要是关系的。
如果你很好奇为什么,那就是模拟移动元素。
我在想像Cassandra的几个负载平衡集群,可以通过负载均衡的Web服务器集群进行访问。
金钱是一个因素,所以越便越好。对软件或工具没有限制,但必须是开源的。
只是寻找一个能够很好地处理大量用户的大量数据(根本不需要关系)的数据库解决方案。
处理冗余和故障至关重要。
让我走向正确方向的高层次想法会很棒。
答案 0 :(得分:1)
要考虑的一个选项是将3D坐标映射到space-filling curve,有效地将点表示为单个值。然后你可以运行Cassandra的范围查询来获得一个区域中的点。
我之前在2D空间中看到过这种情况,我相信它也可以在3D中使用。
答案 1 :(得分:0)
因为您需要能够有效地获取3D间隔内的所有对象(X_min< = X_obj< = X_max& Y_min< = Y_obj< = Y_max& Z_min< = Z_obj< = Z_max),我不确定像Cassandra这样的键值商店能否适合你。看看MongoDB可能是值得的,因为我相信这允许您根据间隔索引多个字段和查询。