Nick
Вопрос про шардинг по отсвтсвующему значению конечно вкликолепен))
yopp
ОТРЕЗАТЬ НОГИ (w: 1, j: t)
yopp
И РУКИ (w: 1, j: f)
yopp
А МОЖНО И ГОЛОВУ (w: 0, j: f)
AstraSerg
ну такое
что ж ты такой не polite :)
yopp
прост потом «говно эта ваша монга, данные теряет»
yopp
потом afair нет никакой экономии на fsync с j: f. журнал скидывается на диск независимо от желания клиента. прост в случае с j: t клиенту акнут только когда журнал с операцией слился
yopp
а, нет, действительно, форсит синк
• If the write operation includes a write concern of j: true, WiredTiger forces a sync of the WiredTiger journal files.
yopp
ладно!
AstraSerg
воооо :)
yopp
но всё равно совет так себе
yopp
если нет write capacity надо собиратсья с духом и шардировать, а не пытаться на дюрабилити выйграть
yopp
потому что write capacity от этого больше не станет
AstraSerg
а неужели fsync на каждую запись в файл будет форсится? это ж удар по производительности дисковой подсистемы огромный
yopp
по этому хороший совет у монги в документации
Nick
yopp
не могу найти где было про «shard all the things»
нашёл только вот это, там тоже про журнал есть, но там вместо отрезать ноги предлагают костылей
yopp
https://docs.mongodb.com/manual/core/write-performance/
Denis
Такой вопрос, нужен неизменяемый уникальный айдишник для идентификации элементов. Ну типа userId
Есть «системное» поле _id, которое можно для этого использовать
Или можно добавить свое поле userId со строкой сгенерированной uuid
Какой вариант лучше?
Будет ли разница в производительности?
yopp
yopp
Если вам надо связь установить между документами, то используйте _id документов, который тоже ObjectId
Denis
Спасибо)
Vlad
Всем привет, в aggregate можно сгенерить date range, знает кто-то?
Для каждого документа по двум датам в нем (формат дат строка "Y-m-d").
Лучшее к чему я пришел это
date_range:{$range:[{$toLong:{$dateFromString:{dateString:"$fromDate"}}},{$toLong:{$dateFromString:{dateString:"$toDate"}}},3600*24], но $range не принимает на вход Long. Видимо, придется через mapReduce делать, но вдруг кто-то знает
S
всем привет, пожете подсказать, мне нужно написать програмку в которой будут уитываться тмц, но нужно написать ее с использованием базы данных монгос цего начать? (уровень знаний вообще минимальный)
Vlad
S
товарно материальные ценности, В программу можно вносить какой либо товар и
S
он будет там храниться
Vlad
вообще для начала достаточно загуглить "ваш язык+mongodb"
S
удаление, редактирование, добавление
S
ну информации я просто не нашел или может не там искал, поэтому обратился к вам
Vlad
S
С#
Vlad
С#
по запросу "C# mongodb" видает кучу разных ссылок для начала работы, берите любую, что нравится, лучше англ, если знаете
S
плохо
Vlad
плохо
тогда по-русски лучше гуглить, да. тоже много ссылок можно найти, хотя бы это https://habr.com/ru/post/127290/
S
спасибо
Kozimjon
Всем добра)) по-моему я пишу туда куда нужно - практикую nodejs (ts) + mongo + mongoose + express ну и + swagger - промис должен вернуть тип ITodo, в котором есть поле desc - но ошибка по-моему ясна - что можете посоветовать? в доках монго ничего путного не могу найти - может плохо ищу? заранее спасибо
Kozimjon
Nick
Nick
Уберите авайт перед файнд
Kozimjon
таким вот привидением решили вопрос))
Kozimjon
а это не костыль? но работает))
Kozimjon
Kozimjon
Vlad
а правда, что для такого запроса
{fromDate:{$lte:'2019-01-01'},toDate:{$gte:'2015-06-01'}}
лучше будет работать такой индекс?
{fromDate:1, toDate: -1}
что-то не могу найти инфу по этому поводу, но выглядит вроде бы логично
Александр
Что-то напрягает..
1) Ищу объект по значению Nested Array
2) Обновляю объект в базе
Время уходит 0:08:29.519951 на 36 тыс. запрос+апдейт
Александр
Локальная монго
Александр
8 мин..
Александр
изза $elemMatch ?
{ 'email_list': { '\$elemMatch': { 'email': email } } }
Александр
Сделал индекс сейчас и вывод в консоль убрал
0:02:01.852662
2 мин теперь
Nick
Александр
это нормально 2 минуты? на 72 тыс транзакций =0
Vlad
Александр
ssd диск, но монго у меня запущен не как сервис помоему..
в окошке терминала чето показывает
Александр
Nick
Тогда смотрите приложение, запросы синхронно отправляются? В одном потоке?
Nick
И каков размер одного документа?
Александр
У меня теперь вопрос, я не убью свой SSD на ноуте? =0
Прям шипит ноут с 4 минуты..
Запросы почти синхроно, я использую пакет для dart - помоему там что идет асинхронно
Но я в цикле запускаю функцию, где делаю селект и апдейт, с ожиданием ее завершения и потом программа идет дальше.
Размер документа:
Александр
Александр
350B
Nick
Vlad
а можно получить значение storage.wiredTiger.engineConfig.cacheSizeGB
как-то? не вижу его getParameter
Vlad
Anonymous
Не дайте соврать, но preference/concern - это почти целиком про топологию, а не про атомарность.
Если я правильно понял, что вы хотите - то это findoneandupdate
Vlad
findAndModify?
Ilya
Ребят, подскажите пожалуйста, как сейчас обстоят дела с размером oplog-а в монге? Насколько я знаю, он фиксированного размера и перезаписаваемый. То есть если, допустим, у меня оплог на 5 гб, и в своем кластере у меня одна из реплик отвалиться на пару деньков, а за эту пару деньков oplog заполнится на все 5 гб и начнет перезаписываться уже новыми операциями, целостность данных считай потеряна, и реплику надо было своими руками восстанавливать.
yopp
Ребят, подскажите пожалуйста, как сейчас обстоят дела с размером oplog-а в монге? Насколько я знаю, он фиксированного размера и перезаписаваемый. То есть если, допустим, у меня оплог на 5 гб, и в своем кластере у меня одна из реплик отвалиться на пару деньков, а за эту пару деньков oplog заполнится на все 5 гб и начнет перезаписываться уже новыми операциями, целостность данных считай потеряна, и реплику надо было своими руками восстанавливать.
Ничего не изменилось, разве что с 4.0 появилась возможность на ходу менять размер capped коллекций, включая rs.oplog. Это не постгрес чтоб руками восстанавливать отставшую реплику. Если нода выпала за оплог, она сама сделает initial sync
yopp
Если у вас ноды постоянно выпадают за оплог ищите причину
Ivan
Ilya
Ivan
yopp
yopp
Тогда как постгрес))
yopp
https://docs.mongodb.com/manual/tutorial/resync-replica-set-member/
Ilya
Около часа и ~80Гб
Любопытно, у меня кластер работал медленней (на отставшую реплику выкачал около 2,7 гб за 7 минут примерно), хотя наверное это потому, что я все делал на моем полумертвом компуктере))
Ivan