Я пытаюсь сохранить некоторые необработанные двоичные данные в Apache Ignite с помощью тонкого клиента Python, и процесс идет очень медленно (на самом деле похоже, что это зависит от размера данных).
Для моего простого тестового примера я начал локально Ignite с одного узла (версия 2.7.0 без какой-либо конкретной конфигурации):
$ bin/ignite.sh
Кроме того, у меня есть бинарный файл с содержимым, которое я хочу сохранить в Ignite. Размер, если около 6 МБ.
Вот мой исходный код:
with open("/var/bin_text.bin", mode='rb') as file:
file_content = file.read()
client = Client()
client.connect('127.0.0.1', 10800)
my_cache = client.get_or_create_cache('my cache')
my_cache.put("key_bin", file_content)
После my_cache.put процесс просто зависает. Мне даже не удалось дождаться конца (я прекратил его через 2 минуты).
Однако передача содержимого файла, преобразованного в строку, работает очень быстро.
my_cache.put("key_str", str(file_content))
Что мне не хватает?
Обновление
Я поиграл с размером данных, которые я хочу поместить в Ignite, используя подход, предложенный @ jock-tanner. Вот что у меня есть:
size: 1024, elapsed time: 0.0045130252838134766 secs
size: 2048, elapsed time: 0.007149457931518555 secs
size: 4096, elapsed time: 0.004557132720947266 secs
size: 8192, elapsed time: 0.010631561279296875 secs
size: 16384, elapsed time: 0.025577783584594727 secs
size: 32768, elapsed time: 0.07686495780944824 secs
size: 65536, elapsed time: 0.2685544490814209 secs
size: 131072, elapsed time: 0.8761806488037109 secs
size: 262144, elapsed time: 3.121284246444702 secs
size: 524288, elapsed time: 12.343520879745483 secs
size: 1048576, elapsed time: 53.10914897918701 secs
size: 2097152, elapsed time: 205.68292760849 secs
Требуется более 3 минут, чтобы поместить 2 МБ данных в локально установленный Ignite. Может ли это быть моей проблемой конфигурации Ignite?