Алексей
minio как вариант
🦠
minio тот же aws s3)
Алексей
Только локальный :-)
Grigory
🦠
ваще хранение блобов в БД это самый жесткий антипаттерн
🦠
после превращения бд в процессор очередей или процессинга кроном гигабайтных выборок)
Grigory
зависит от бд; скажем в хбейзе хранить блобы это норм
Grigory
или в почти любой "большой таблице"
🦠
ну удачи с индексатором)))
🦠
или обычной выборкой через *
🦠
кто захлебнется раньше - disk io или network io
Grigory
Etki
Anonymous
Etki
потому что файлы и данные - это разные сущности
Etki
реплицировать это всё тоже то еще веселье
SmilingPanda
#whois Большой проект в банковской сфере. Фронт, девопс немного бэк. Спрашивайте. Изучаю кубер. Дефолтсити. Гугл.
Всем привет.
SmilingPanda
Вопрос селдующий - только начинаю разбираться с сабжом. Задача такая - есть сервера, около 100, надо на каждый развернуть какие-то докер контейнеры, но у каждого под каждый сервер - свои настройки (из гита, либо дефолтные общие). Подходит ли кубер для этого?
G72K
обычное ключ-значение, где ключ это путь до файла
Etki
Grigory
господа а hdfs бд или не?
Grigory
Grigory
а вот есть accumulo, поврех хдфс
Grigory
селл секурити все дела
Grigory
размер ячейки экзобайт
G72K
не блобами внутри бд
судя по гарантиям консистентности S3 там все точно так же как в Cassandra.
Grigory
типа бд ну и там видать экзобайт и блобы вообще нельзя?
Etki
это не значит, что там кто-то хранит данные внутри бд
Etki
давайте сначала в кассандру завезем error code correction
G72K
Вообще что от хранилища надо? придти к координатору, сказать хочу файл, координатор посчитает хэш, пошлет на ноду хранения (или сам пойдет), нода хранения спросит "тебе чего?" ответ "хэш такойто", "ну держи". чем не cassandra
Etki
а гарантии консистентности там тупо LWW + когда доедет, тогда доедет
Etki
тем, что кассандра будет еще по всем SST собирать запись
G72K
Etki
и я посмотрю как у вас блоб с десятком версий будет собираться
Etki
не будет
какие ваши доказательства?
G72K
какие ваши доказательства?
тем что ключ это partition key, т.е просто ключ в sst. из множества локальных sst кассанда быстро выберет те, что с блобом, т.к. блум фильтры есть на всех sst
Etki
так блоб-то не один
Etki
ты один раз записал, потом перезаписал
G72K
Etki
если версия меняет партишен кей, то как я потом эту запись достану, не зная наперед версии?
Gleb
Etki
то что один раз записалось - будет жить до компакта
Etki
и компакт с большими записями тоже будет всех радовать
Grigory
у них своя схема разбиения
Grigory
можно посомтреть в java sdk - TransferManager - там оптимизированый аплоад и даунлоад в файлы
Etki
какая разница можно или нельзя? SST пишется один раз, если я записал новую версию данных, старая никуда не делась
Etki
почему нет обновлений записей?
Grigory
и по моим перформанс тестам - картиночки хранятся в S3 - пробелма возникает в IO именно с маенькими файлами
Grigory
т.е. S3 приятнее все же с файлами побольше чем по 250кб работать
G72K
почему нет обновлений записей?
потому что новая версия новый ключ (это если версионирование видимое клиенту включено). если отключено, то да будут мерджи, но никто от хранилища блобов не ожидает сотен перезаписей в секунду)
Etki
никто от хранилища блобов не ожидает хранения старых записей при отключенном версионировании
Etki
и снова к тому же вопросу - если новая версия подразумевает новый партишен кей, то как можно получить последнюю версию, не зная ее порядковый номер?
G72K
Etki
тут цефовики лучше ответят
Etki
но если на документ в среднем приходится десять обновлений, то вот этот вариант будет жрать размер документов * фактор репликации * 5
Etki
that's great
Etki
таким образом надо уже минимум две записи проскакать, чтобы начать что-либо читать
Etki
я уж молчу про то, что версионирование в eventual consistency вообще не впишется и без LWT будет очень сложно
G72K
Etki
понятия не имею что цеф дает
Etki
знаю только что он все-таки куда ближе по описываемому функционалу
Etki
и что кейс "ну давайте уже запихнем в кассандру" притягивается просто потому что в кассандру запихнуть интересно (и с этим я конечно спорить не могу)
G72K
у всех этих кассандр фундаментальная проблема: нельзя терять больше чем N/2 нод. т.е. файктор репликации N == 5, то 3 ноды терять нельзя. при больших размерах как с этим справиться? Если надежность оборудования (не научные термин) 2%, то из 100 нод кластера 2 будут в отключке и того всё будет висеть не волоске :) при 200 нодах уже гарантировано все будет развалено постоянно. кто-то наверняка уже более умное что-то придумал
Etki
там не будет кассандры, потому что мерджить не надо вообще ничего
Etki
это не данные, это блобы, они заменяются целиком
Oleksandr
Etki
кассандра может быть отрезанной от любого количества нод, пока координатор может достучаться хотя бы до одного владельца vnode, он произведет запись
Etki
когда кластер соберется, произойдет LWW-мердж