Недостатки хранения двоичных данных в Riak? - PullRequest
17 голосов
/ 24 мая 2011

Какие проблемы, если таковые имеются, при хранении двоичных данных в Riak?

Влияет ли это на удобство обслуживания и производительность кластеризации?

Какими будут различия в производительности между использованием Riakдля этого, а не для распределенной файловой системы?

Ответы [ 5 ]

12 голосов
/ 24 мая 2011

В дополнение к превосходному ответу @ Oscar-Godson вы, вероятно, столкнетесь с проблемами со значениями, намного превышающими 50 МБ.Bitcask лучше всего подходит для значений до нескольких килобайт.Если вы храните большие значения, вы можете рассмотреть альтернативные бэкэнды хранилища, такие как innostore .

У меня нет опыта хранения двоичных значений, но у нас есть средаразмерный кластер в производстве (5 узлов, порядка 100M значений, 10 ТБ), и мы наблюдаем частые ошибки, связанные со вставкой и получением значений размером 100 КБ.Производительность в этом случае противоречива - иногда это работает, а другие нет - поэтому, если вы собираетесь тестировать, тестируйте в масштабе.

Мы также видим проблемы с большими значениями при запуске map-уменьшить количество запросов - они просто перестают работатьОднако это может быть менее актуально для двоичных значений ... (как упоминал @ Matt-Ranney).

Также см. Ответ @ Stephen-C здесь

6 голосов
/ 24 мая 2011

Единственная проблема, о которой я могу подумать, - это хранение двоичных данных размером более 50 МБ, против которых они советуются. Все дело в Риаке:

Еще одна причина, по которой можно выбрать Риака, это для гибкости в моделировании ваших данных. Riak будет хранить любые данные, которые вы скажете к контентно-независимому способу - это делает не применять таблицы, столбцы или ссылочная целостность. Это значит, что ты может хранить двоичные файлы прямо рядом более прозрачные для программистов форматы как JSON или XML.

Источник: Дизайн схемы в Риаке - Введение

4 голосов
/ 16 ноября 2013

Для Riak рекомендуемый максимум составляет 2 МБ на объект.Кроме того, рекомендуется использовать либо Riak CS, который был протестирован с объектами объемом до 5 ТБ (хранится в Riak как объекты размером 1 МБ), либо естественным образом разбить ваш большой объект на блоки по 2 МБ и связать их ключом и суффиксом.

3 голосов
/ 24 мая 2011

Лично я не заметил никаких проблем с хранением таких данных, как изображения и документы (как DOC, так и PDF), в Riak.У меня нет номеров производительности, но я могу собрать некоторые из них, если я запомню.

Что-то заметное: с Riak вы можете использовать Luwak , который предоставляет API для хранения больших файлов.Это было очень полезно.

1 голос
/ 24 мая 2011

Одной из проблем может быть то, что трудно, если не невозможно, использовать карту JavaScript / уменьшить для ваших двоичных данных. Вам, вероятно, понадобится Эрланг для этого.

...