Membase阻止关键驱逐?

时间:2010-11-03 21:12:51

标签: sqlite blocking membase

我们一直在使用Memcached,最近开始在AWS中测试Membase。我们正在使用5GB RAM,750GB磁盘(Linux FC8)的大型EC2实例上测试Membase 1.6.0的单个实例。

我们注意到,当expiryPagerSleeptime醒来时,SQLite似乎每小时都会阻止驱逐清除。虽然这是预期的(因为SQLite使用数据库级锁定),但我们没想到Membase也会阻塞。

在这种情况下,似乎在SQLite删除旧密钥时,Membase“每秒操作数”会在几分钟内降至零或接近零。驱逐过程完成后,Membase服务器可以快速恢复。我原本预计,当SQLite被锁定时,来自Membase RAM的读取仍然会继续,但事实并非如此。一切都停止了;间谍客户端会在等待永不到达的数据超时时抛出异常流。

我对文档的印象是,Membase是异步的,并且会继续提供从RAM读取的内容。我希望任何帮助或建议,以防止Membase阻止关键驱逐。这对我们来说是一个严重的问题,因为这个驱逐过程似乎需要大约4分钟才能完成,并且要清除磁盘队列中的积压。这意味着每小时,Membase有效离线4分钟。

我还应该提到,一旦数据大于RAM(并且它在磁盘上的大小增加)就会发生这种情况。当数据只在RAM中时,我们没有注意到关键驱逐的任何问题(可能是因为RAM中的关键驱逐发生得太快而不可察觉。)

1 个答案:

答案 0 :(得分:1)

由于不重复信息的愿望,这个问题正在这里得到解答和解释:http://www.couchbase.com/forums/thread/membase-blocking-key-eviction

佩里