当运行到connect Node时,无法读取remoteMeta
Closed this issue · 4 comments
当我尝试利用https://github.com/ruihong123/Sherman 这个版本的开源代码复现Sherman的时候(因为缺少相应网卡硬件条件),运行./benchmark的时候,
(1) 首先会在serverEnter()处遇到问题,这个问题是SERVER_NUM_KEY并没有在memcached服务器中出现,当我尝试手动为memcached服务器利用memcached_set添加这个key的时候,才解决问题
(2) 后续会在connectNode处遇到问题,这个问题是DSMKeeper.cpp里第44行ExchangeMeta *remoteMeta = (ExchangeMeta *)memGet(getK.c_str(), getK.size()); 这里memGet执行的时候,无法通过memcached_get获取相应结果,即rc==MEMCACHED_SUCCESS始终无法满足,并最终陷入while(true)的死循环里。请问您能协助我解决这个问题吗?
我也没用过这个版本的,是否执行了bash ./restartMemc.sh?见readme
执行了bash ./restartMemc.sh,但是仍然有问题,目前我已经联系了那个仓库的作者,并积极寻求帮助。感谢您的帮助
在这里我想问您一个额外的问题,这个问题是关于您开源的Sherman-main里的代码结构,就是在DSMKeeper.cpp里第44行,ExchangeMeta *remoteMeta = (ExchangeMeta *)memGet(getK.c_str(), getK.size()); 这里是根据 "remoteID-myNodeID : remoteMeta"的键值对读出remoteMeta信息的,然后我想知道,这里的remoteMeta信息是在哪里被写入memcached服务器的呢?因为在DSMKeeper.cpp的第41行,依靠memset()写入了 "myNodeID-remote : localMeta"。我一直没有找到remoteID-myNodeID对应的meta元数据写入memcached服务器的执行代码。期待并感谢您的帮助。
这是remoteID这台服务器写的