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

问题描述:

将数据存储到aerospike(client.put)时出现以下错误。我在驱动器上有足够的空间。Aerospike:无法存储记录。错误:(13L,'AEROSPIKE_ERR_RECORD_TOO_BIG','src/main/client/put.c',106)

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

这是我塞式服务器的命名空间配置

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. 
     } 
} 

默认命名空间有1 MIB一个write-block-size。这也是最大可配置大小,并会限制应用程序能够写入Aerospike的最大对象大小。

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

是的,但不幸的是,Aerospike已弃用LDT (https://www.aerospike.com/blog/aerospike-ldt/)。他们现在推荐使用Lists或地图,但在他们的帖子中指出:

"the new implementation does not solve the problem of the 1MB Aerospike database row size limit. A future key feature of the product will be an enhanced implementation that transcends the 1MB limit for a number of types"

在其他方面,它存储在SSD或硬盘驱动器数据时仍是一个未解决的问题。但是,您可以将更大的数据存储在内存命名空间中。