我建立了一个社交Android应用程序,用户可以通过GPS定位看到周围的其他用户。刚开始的时候,我的用户数量很低,但现在我的用户数量越来越多(每天大约有1500 +100个用户),这就暴露了我设计中的一个主要问题。
在我的中,我有一个静态的HashMap,它保存了所有的用户配置文件对象,目前是1500个,随着更多的用户注册,这个数目还会增加。
每个向他周围的用户提出请求的用户都会将他的GPS与其他用户进行比较,并检查他们是否在他的10公里半径内。这种情况平均每五分钟发生一次。因此,我不能每次都从db获取用户,因为GAE读写操作配额将使我分崩离析。
随着用户数量的增加,Hashmap每4-6小时就会变成null,我认为这一次越来越短,但我不确定。每次我检测到数据库变为null时,我都会通过重新加载数据库中的用户来修复这个问题,但是这会导致DOS对我的用户造成30秒的影响,所以我正在寻找更好的解决方案。
我猜这是因为hashmap的大小。我说的对吗?
有人建议我使用空间数据库,但这意味着我不能再使用GAE了,这意味着我需要重新构建我的大型服务器,并丢失我现有的DB。
我能用现有的工具做些什么吗?
谢谢。
发布于 2012-10-24 19:33:06
有几件事,我可能会建议,但不知道更多的细节,你的情况。在许多方面,正如所述的问题类似于一个常见的碰撞检测问题。
https://softwareengineering.stackexchange.com/questions/166811
复制相似问题