2015-07-13 1 views
2

Я получаю следующую ошибку при сохранении данных в аэросистеме (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). 

Вот мой 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. 
     } 
} 

ответ

3

По умолчанию пространств имен имеют write-block-size от 1 MiB. Это также максимальный настраиваемый размер и ограничивает максимальный размер объекта, который приложение может записать в Aerospike.

Если вам нужно выйти за пределы 1 MiB, см. Large Data Types в качестве возможного решения.

1

Да, но, к сожалению, 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 или HDD. Однако вы можете хранить большие данные в пространствах имен памяти.