【问题标题】:Aerospike: Device Overload Error when size of map is too bigAerospike:地图尺寸过大时出现设备过载错误
【发布时间】:2018-05-25 19:24:46
【问题描述】:

程序在生产环境中成功运行几个月后,出现“设备过载”错误。而且我们发现有些地图的尺寸​​非常大,可能大于1000。

查看源码后发现“设备过载”的原因是写队列超出限制,而写队列的长度与处理效率有关。

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

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

【问题讨论】:

标签: aerospike aerospike-loader aerospike-ce


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 2017-04-12
    • 2021-01-03
    • 1970-01-01
    相关资源
    最近更新 更多