Aerospike:设备过载当地图尺寸太大时出错

时间:2018-05-25 19:24:47

标签: aerospike aerospike-loader aerospike-ce

我们得到了设备过载"程序在生产中成功运行几个月后出错。我们发现一些地图'尺寸非常大,可能大于1,000。

在我检查了源代码之后,我发现了" devcie重载的原因"是写入队列超出限制,写入队列的长度与处理的效率有关。

所以我检查了" particle_map"文件,我怀疑即使我们只想在地图中插入一对KV,整个地图也会被重写。

但我对此不太确定。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

  

所以我检查了" particle_map"文件,我怀疑即使我们只想在地图中插入一对KV,整个地图也会被重写。

你是对的。使用持久性时,Aerospike不会就地更新记录。每个更新/插入都被缓冲到内存中的写入块中,当写入块满时,将其排队等待写入磁盘。此队列允许超过磁盘最大IO的短突发,但如果突发持续时间过长,服务器将开始失败写入设备过载'你提到的错误。允许磁盘落后多远由max-write-cache命名空间存储引擎参数控制。

您可以在https://www.aerospike.com/docs/architecture/index.html找到有关我们存储层的更多信息。