我们得到了设备过载"程序在生产中成功运行几个月后出错。我们发现一些地图'尺寸非常大,可能大于1,000。
在我检查了源代码之后,我发现了" devcie重载的原因"是写入队列超出限制,写入队列的长度与处理的效率有关。
所以我检查了" particle_map"文件,我怀疑即使我们只想在地图中插入一对KV,整个地图也会被重写。
但我对此不太确定。有什么建议吗?
答案 0 :(得分:2)
所以我检查了" particle_map"文件,我怀疑即使我们只想在地图中插入一对KV,整个地图也会被重写。
你是对的。使用持久性时,Aerospike不会就地更新记录。每个更新/插入都被缓冲到内存中的写入块中,当写入块满时,将其排队等待写入磁盘。此队列允许超过磁盘最大IO的短突发,但如果突发持续时间过长,服务器将开始失败写入设备过载'你提到的错误。允许磁盘落后多远由max-write-cache命名空间存储引擎参数控制。
您可以在https://www.aerospike.com/docs/architecture/index.html找到有关我们存储层的更多信息。