0

有没有办法将 memcached 直接绑定到它下面的本地存储?将举例说明。可以说 hbase 用作分布式的后端。一层memcached用作缓存层,它可以被认为是它下面的hbase的精确副本(在某种意义上)。假设系统中有 4 个节点,其中 3 个用于 hbase,并在其顶部有一个 memcached 层,1 个用于计算。通常的规范是查找 memcached 是否有一些键。如果有,获取它并将其用于计算。如果没有,则从 hbase 加载数据并将其加载到位于 hbase 具有数据的同一节点上的 memcached 服务器。即使我们在这里尝试利用数据局部性,如果缓存未命中,数据也会从 hbase 传输到计算节点,然后到达 memcached(因此数据局部性是徒劳的)。那么,有没有办法定义一个函数并将其委托给 memcached,它应该在缓存未命中时调用。在上述上下文中,它应该从本地 hbase 加载数据,而不是我们将数据加载到计算节点并将其发送到 memcached。简单来说,get() 应该接受一个自定义方法,如果该条目在远程 memcached 中不可用,则会调用该方法。

4

1 回答 1

1

这不是 memcached 的工作,它是为了干净快速而构建的。如果您担心数据的“旅行”,请在 memcached 中没有数据时在那些被要求提供数据的节点上创建一个服务/守护程序,并将其交付给请求者和本地 memcached 守护程序。因此,从 memcached 开始,故障转移到在 hbase/memcached 节点上运行服务。

于 2013-08-12T22:38:37.223 回答