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或硬盘驱动器数据时仍是一个未解决的问题。但是,您可以将更大的数据存储在内存命名空间中。