关于内存管理的couchbase ep-engine并最终持久

时间:2013-11-28 03:06:47

标签: storage distributed couchbase

我需要以下ep引擎问题的帮助:

  1. 看起来没有垃圾收集,因为所有分配和释放都是新的/删除项,我们如何处理内存碎片。

  2. ep意味着最终引擎,但名称卡住了,写入asyn到磁盘,当服务器关闭时,那些尚未写入磁盘的memcache中设置的数据会丢失,对吗?

1 个答案:

答案 0 :(得分:1)

对于#1,确实没有垃圾收集,但是ep-engine确实使用了共享指针,所以指向的项目在完全取消引用时会调用它们的析构函数。我不太清楚你所指的是什么内存碎片问题,但是在大多数部署中,ep-engine使用TCMalloc,而Couchbase团队已经在那里使用了项目,甚至在测试之后为它做出了贡献以确保它满足他们的需求。

对于#2,确实存在而且没有持久存在的项目有丢失的风险,但是......首先,知道项目被安排立即保留,所以持续的时间只受限制底层存储可以多快地接收它。其次,要知道所有Couchbase官方客户端都实现了持久性要求(如javadoc, for example中所述),这些要求允许您在项目持久化之前拥有应用程序块。