Каковы проблемы с хранением бинарных данных в Riak?
Влияет ли это на ремонтопригодность и производительность кластеризации?
Какова будет разница в производительности между использованием Riak для этого, а не распределенной файловой системой?
Каковы проблемы с хранением бинарных данных в Riak?
Влияет ли это на ремонтопригодность и производительность кластеризации?
Какова будет разница в производительности между использованием Riak для этого, а не распределенной файловой системой?
В дополнение к отличному ответу @Oscar-Godson вы, вероятно, столкнетесь с проблемами со значениями, намного превышающими 50 МБ. Bitcask лучше всего подходит для значений до нескольких КБ. Если вы храните большие значения, вы можете рассмотреть альтернативные механизмы хранения, такие как innostore а>.
У меня нет опыта хранения двоичных значений, но у нас есть кластер среднего размера в производстве (5 узлов, порядка 100 миллионов значений, 10 ТБ), и мы наблюдаем частые ошибки, связанные с вставкой и извлечением значений. которые имеют размер 100 КБ. Производительность в этом случае непостоянна — в одних случаях она работает, в других — нет, поэтому, если вы собираетесь тестировать, тестируйте в масштабе.
Мы также наблюдаем проблемы с большими значениями при выполнении запросов на уменьшение карты — они просто истекают по тайм-ауту. Однако это может быть менее актуально для двоичных значений... (как упоминал @Matt-Ranney).
Также см. ответ @Stephen-C здесь
Единственная проблема, о которой я могу думать, - это хранение двоичных данных размером более 50 МБ, против чего они не рекомендуют. Весь смысл Riak именно в этом:
Еще одна причина, по которой можно выбрать Riak, заключается в гибкости моделирования ваших данных. Riak будет хранить любые данные, которые вы ему укажете, независимо от содержимого — он не обеспечивает соблюдение таблиц, столбцов или ссылочной целостности. Это означает, что вы можете хранить двоичные файлы вместе с более прозрачными для программиста форматами, такими как JSON или XML.
Источник: Дизайн схемы в Riak — Введение
В Riak рекомендуемый максимум составляет 2 МБ на объект. Кроме того, рекомендуется использовать либо Riak CS, который был протестирован с объектами размером до 5 ТБ (хранятся в Riak как объекты размером 1 МБ), либо путем естественного разбиения вашего большого объекта на фрагменты по 2 МБ и связывания по ключу и суффиксу.
Я лично не заметил никаких проблем с хранением данных, таких как изображения и документы (как DOC, так и PDF), в Riak. У меня нет показателей производительности, но, возможно, я смогу их собрать, если вспомню.
Следует отметить, что с Riak вы можете использовать Luwak, который предоставляет API для хранения больших файлов. Это было очень полезно.
Одна из проблем может заключаться в том, что сложно, если вообще возможно, использовать JavaScript map/reduce для ваших двоичных данных. Для этого вам, вероятно, понадобится Erlang.