带有大对象的分布式缓存~1-2GB

时间:2014-06-14 03:38:48

标签: caching memcached distributed

我需要流式传输一个大约1-2GB的庞大数据集,但只有在探索数据时才需要。例如,如果他们不浏览部分数据,我就不想将其发送出去。

所以现在,我有一个解决方案,只为他们需要的东西有效地返回JSON。由于这些1-2GB对象实际上是从磁盘上的一个或多个文件构建在内存中所以需要缓存,因此如果您必须读取文件以返回此数据,则延迟时间约为30秒。

如何管理这样的缓存?基本上我认为解决方案就像ZooKeeper或者其中我存储了保存缓存的物理机器名,然后将我的休息请求转发给它。

你们还认为这是正确的型号吗?我想知道我必须做什么样的检查,如果有缓存的节点出现故障,我仍然可以在没有错误的情况下满足请求,但延迟时间更长。

有没有人开发过这样的系统?所有解决方案都是针对看似很小的行或对象。

1 个答案:

答案 0 :(得分:0)

https://github.com/golang/groupcache用于更大的事情,但虽然它被http://dl.google.com使用,但我不确定它如何处理Multi-gigabyte对象。

另一方面,HTTP可以进行部分传输,并且非常有效。看看它是Varnish,还是Nginx。