Oleg
Ребят привет. есть монга 3.2 РС. надо удалить 13 миллионов записей. через bulk лучше делать ? коллекция не capped
Nick
если по одному то хоть как делай долго будет
Oleg
что по одному ?
Nick
удалять
Oleg
хочу просто по условию {lt: timestamp}
Oleg
все данные
Oleg
но как то долго все равно висит и в итоге сессия ssh дропается :)
Nick
так просто отправляете задание и оно там крутится
Nick
если глянуть в db.currentOp() после переподключения, наверняка она там все еще выполняется
Oleg
да, действительно
Oleg
но все же, никак быстрее это не сделать ?
Oleg
суммарно получается уже 40 мин удаляется
Oleg
и осталось еще там 12129949
Oleg
документов
Nick
если грубо то 13кк доков - 13кк операций записей, я верю в монгу и оно сгруппирует скажем процентов 80%, это гдето 2кк реальных операций записи, обычный хдд с его 150-200 расчетными IOPs будет делать это около 10к секунд - это минимум 3 часа
Oleg
хм
Nick
и это если ест ьиндекс
Nick
без индекса добавляй полную вычитку данных
Nick
на каждый док + операция чтения
Oleg
по коллекции этой есть индекс
Oleg
понял сейчас, Спасибо за объяснение
Nick
вообще советую глянуть не запущено ли несколько операций удаления и кильнуть лишние
Nick
а лучше все и запустить еще раз
Oleg
а как можно кильнуть ? по opid ?
Nick
db.killOp()
Nick
и туда opid
Dmitry
всем привет, меня зовут Дима, и у меня разрешает создавать объекты в базе с одинм и тем же значением поля, у которого стоит unique: true
SvPupok
Эм... а по русски?
Dmitry
стоит unique: true в схеме у поля phone, я создаю объекты с одинаковыми телефонами, не ругается
Nick
а как вы создаете объекты?
Yurii
стоит unique: true в схеме у поля phone, я создаю объекты с одинаковыми телефонами, не ругается
проверь индексы. unique: true в модели вызывает команду на установку соответствующего индекса в монге. + укажи версию mongoose/mongodb (если там монгус)
Dmitry
понял проблему, а вот такой вопрос, абстрактный
Dmitry
целесообразно ли создавать под такие даты модель, если у них может быть порядок сортировки?
Nick
а что эти даты значат?
Nick
если вам эти даты нужны как отдельные сущности, тогда храните
Dmitry
по крайней мере будет порядок сортировки, а значит нужны id, и может будет какой-то текст к ним
Ivan
Подскажите, в коллекции 2 миллиона записей, фильтр по полю с индексом - 400к записей. Экспорт этого дела на сервере - 50 Мб и по времени 35 секунд. Куда смотреть в ускорении этого дела?
Nick
а всего 2млн данных сколько места занимают?
Nick
а смотреть всегда на системные ресурсы - диски цпу память сеть
Ivan
mongoexport, напрямую, про язык пока даже не говорю
yopp
Локально или по сети?
yopp
Ищите во что уперлось
Ivan
Локально, по сети таймаут уже))
Nick
интересует правилньо ли понимаю что всеравно сведется к рендом доступу по диску?
yopp
Все правильно сказал, нужно искать бутылочное горлышко
yopp
Например при включённом TLS и нехватки энтропии хендшейки могут быть по минуте
yopp
Может быть низко качество сетевого подключения и большие потери
yopp
Может быть просто полоса узкая или очень большие задержки
Max
Например при включённом TLS и нехватки энтропии хендшейки могут быть по минуте
Ого какой ужас . Реально было такое? Я тут как раз готовлюсь на него переходить и там куча коннектов будет
Max
Надо будет тест продумать. Спасибо.
yopp
Лучшее решение — сразу на всех хостах деполоить haveged
yopp
Клиентам не обязательно, а вот на любых серверах, особенно mongos — обязательно
yopp
И на всяких сборочных машинах
yopp
В нашем стартапчике я потратил однажды два дня, пытаясь разобраться почему билды в некоторых случаях вместо пары минут, могут занимать по полчаса. Выяснилось что внутри рельсы при инициализации Sprokets генерировался 16 байтовый случайный идентификатор, а так как на сборочной машине много всего крутилось, в том числе с TLS, когда энтропия заканчивалась рельса утыкалась в пустой пул и ждала пока он не наполнится. А это небыстрый процесс, собрать хорошего качества хаоса :д
yopp
С монгой такое случается когда возникает большое число клиентов с коротким циклом жизни. Например lua драйвера, которые можно использовать в nginx, не умеют в connection pool. Как сделствие если вы делаете какой-то эндпоинт на lua который ходит в монгу, он будет на каждый запрос эндпоинта открывать/закрывать соединение. Поток из пары сотен таких открытий/закрытый в секунду может легко выжирать энтропию и начать жутчайше тормозить. Нормальные же драйвера обычно используют пул, и если никаких суровых сетевых проблем приводящих к обрыву нет, то такого эффекта не наблюдается
yopp
Плюс я не вникал в детали, но уже даже в самом tls есть какие-то фичи для устранения подобных проблем. Но как обычно, кто вовремя обновляет и openssl и ещё поддержку новых фич выпиливает. От SSL то буквально в прошлом году, можно сказать избавились
Max
Так есть же псевдоэнтропии
Max
Рандом юрандом
Max
Затыкаться на полчаса это как-то совсем грустно
Ilja
Есть кто может ответить на небольшой вопрос?
Ilya
Есть кто может ответить на небольшой вопрос?
ну задать вопрос то никто не запрещает)
Sm•ok
Всем привет
Sm•ok
Пытаюсь установить mongodb по видео-гайду на ютубе
Sm•ok
Sm•ok
Но чет не получается.
Hopf
Если вам поиграться - используйте лучше докер
Tim
ну пишет же что незнает команды rest
Sm•ok
Так на видосе срабатывает
Tim
почитай в справке, может у тебя версия монги старая
Tim
или наоборот новая
Sm•ok
Я ее вчера скачал
Sm•ok
Скорее новая
SvPupok
я вобщем против windows ничего не имею, но попытка развернуть на ней монгу - это какой то новый вид извращения
Sm•ok
Мне попрактиковать его.
Sm•ok
Потом залью на хост