Владимир
yopp
А. Это да.
Владимир
Кстати я попробывал монгу в качестве хранилища и она у меня разрослась на 28гб за неделю
Владимир
и мне показалось, что она сервак роняла, но это не точно
Дмитрий
Что ты там хранил?
Владимир
2 колекции jobs и tasks в tasks 13 полей 6 из которых текстовые, 2 хранили сериализованный json 2 ObjectId и 1 лист
Владимир
причем всего документов 250к
yopp
yopp
Какой средний размер документа?
Владимир
Какой средний размер документа?
"avgObjSize" : 123018,
"numExtents" : 35,
"storageSize" : 30770204496.0,
"lastExtentSize" : 2146426864.0,
Владимир
не получилось быстро стартануть
Владимир
данные не удалялись
Владимир
просто сервак не отвечал
Владимир
это стата с коллекции которая раздувается
yopp
123кб на документ умножить на 250 тысяч документов — 30 гигабайт
Владимир
да это вот разраслось буквально за неделю
Владимир
хотя без типов данных всего на 350мб
Владимир
и понятно что индексы сжирают
yopp
Из вашего потока данных совершенно не понятна суть претензий
yopp
Если документы реально по 100кб, то математика корректная
Владимир
Притензий нет ) Просто решил поделится наболевшим. Из-за типизации полей просто объем возрастает колосально
yopp
Какой типизации полей?
Владимир
хотя дамп json весит 350 метров
Владимир
такого же кол-ва документов
yopp
😳
Владимир
в монго же используется bson
yopp
Так он даже более компактный чем json
Владимир
который типизирует поля longint
Владимир
и так далее
yopp
Эм
Владимир
я могу ошибаться(
yopp
Для того чтоб записать bigdecimal в двоичном виде в bson надо 128 бит или 16 байт
yopp
С маркером типа и разделителем это 18 байт
yopp
В json в 18 байт влезет 18 десятичных знаков. log2(999999999999999999) = 59 бит
yopp
Т.е. Bigdecimal примерно в джва раза компактнее
yopp
Если у вас в итоге в монге данные занимают на два порядка больше, то есть вопрос что вы сними делаете.
Владимир
Поиск по документам, обновление и создание)
Владимир
просто хранить данные в самописном хранилище получилось дешевле(по месту), чем использовать монгу
Владимир
и понятно, что это имеет огромные минусы свои
yopp
Обожаю такое
yopp
Интересно даже посмотреть на оригинальный json и документ в монге
Nick
и случаем дамп не зипованный?
yopp
Ну не может настолько snappy проигрывать zlib
yopp
Ладно там в половину, но не на два порядка
Nick
надо смотреть что там до и после получается) прям дико интересно
yopp
Я думаю там ODM с трансформацией во что-то страшное получается. Или нам что-то недоговаривают.
Владимир
Я к сожалению дамп не могу показать( но использовал стандартный mongoexport
Владимир
А монга практически с дефолтной настройкой, за исключением портов и файла логов
yopp
Так не к монге вопросы, а к данным в монге. Покажи один документ в оригинальном json и один из монги в json-нотации bson. Можешь значения попортить, хочется увидеть схему документа
Владимир
Ок чуть позже, до ноута доберусь
Владимир
вот структура документа в mongo
yopp
А какой средний размер массива domains?
Владимир
20
Владимир
элементов где-то
yopp
Тогда очень странно откуда средний размер документа в 120кб
Владимир
я еще сейчас подготовлю, этот документ в ожидании
yopp
Сделай агрегацию и посчитай максимальный, средний и общий размер
Владимир
после обработки он раздувается
Владимир
из-за сериализованного результата в json
yopp
А. Ну если вы туда по 100кб json в виде стоки вставляете тогда не удивительно :)
Владимир
мне просто нужно хранить было вложенный json в ключе у которого есть точка
Владимир
я просто сегодня вот увидел вашу реализацию, но боюсь она мне не сильно поможет
yopp
А попробуйте. Правда если документ не плоский, то будет сложно.
yopp
Можете ещё заменить точку на другой utf символ
yopp
Похожий
Владимир
yopp
Я могу только предложить засунуть ответы в отдельную коллекцию
Владимир
мне просто постобработкой придется заниматься если на другой utf символ
yopp
И ключи эскейпить своим алгоритмом защитив от $ и .
Владимир
ну размер все равно будет большим достаточно
Владимир
?
Владимир
если в коллекцию отдельную засунуть
yopp
Будет, но по крайней мере если сырые ответы часто не нужны это будет контролирируемо
yopp
Можно ещё конечно в gzip и в виде binary хранить
yopp
Один фиг толку от хранения в виде строки нет
Владимир
я думал об этом, просто специфика такая, что будет оверхэд на расжатии gzip
yopp
Ой, не смешите
yopp
Даже миллисекунды не будет скорее всего
Владимир
а так на либе, которая на сях написано быстро достаточно