Aerospike:无法存储记录。错误:(13L,'AEROSPIKE_ERR_RECORD_TOO_BIG','src / main / client / put.c',106)

时间:2015-07-13 06:34:23

标签: aerospike

将数据存储到aerospike(client.put)时出现以下错误。我的驱动器上有足够的空间。

Aerospike: Failed to store record. Error: (13L, 'AEROSPIKE_ERR_RECORD_TOO_BIG', 'src/main/client/put.c', 106).

这是我的Aerospike服务器名称空间配置

namespace test {
       replication-factor 1
       memory-size 1G
       default-ttl 30d # 30 days, use 0 to never expire/evict.


       storage-engine device {
               file /opt/aerospike/data/test.dat
               filesize 2G
               data-in-memory true # Store data in memory in addition to file.
       }
}

2 个答案:

答案 0 :(得分:3)

默认情况下,名称空间的write-block-size为1 MiB。这也是最大可配置大小,并将限制应用程序能够写入Aerospike的最大对象大小。

如果您需要超过1 MiB,请参阅Large Data Types作为可能的解决方案。

答案 1 :(得分:1)

是的,但不幸的是,Aerospike已弃用LDT (https://www.aerospike.com/blog/aerospike-ldt/)。他们现在建议使用Lists或地图,但如其帖子中所述:

  

"新实现无法解决1MB Aerospike数据库行大小限制的问题。该产品未来的关键特性将是一个增强的实现,超越了许多类型的1MB限制"

换句话说,将数据存储在SSD或HDD上仍然是一个未解决的问题。但是,您可以在内存命名空间中存储更大的数据。