Stas
точно поле id а не _id ?
id это я для примера написал. Я передаю свои поля
Nick
search.id='sdfasd'
Nick
это хотя бы читаемо
Stas
search.id='sdfasd'
Это не то. Мне надо в search добавить поле, которое я передал в функцию в виде строки. Именно для этого я использую search[field] = value
Stas
Проблема не в этом, на выходе объект правильный создается
Nick
значит данных нет
RA-TA-TATA
Ребята, здравствуйте, подскажите, открывают monogod.exe и сразу же закрывается
RA-TA-TATA
что делать?
RA-TA-TATA
из-за этого не получается в Compass'e подключиться
Nick
монга запускатся в винде через службы
RA-TA-TATA
то есть?
Nick
т.е. гугли как работать со службами в винде
Руслан
Добрый день, коллеги Где-то можно проследить прогресс выполнения команды mongorestore dumpname.bson --archive ? В /var/log/mongodb/mongod.log его нет
RA-TA-TATA
Уже разобрался
RA-TA-TATA
с дисками были проблемы
Вячеслав
Коллеги, приветствую. Пришел оом, завершил монгу. после этого возникла проблема, что некоторые коллекции оказались повреждены. реплика в этот момент была отключена => на ней данных нет. Есть ли возможность точно проверить какие коллекци повреждены и верно ли я понимаю, что восстановить их состояние невозможно?
Вячеслав
Какая версия монги? Какое хранилище? Как вы выяснили что они повреждены? После аварийного завершения монга должна была из журнала промотать операции , которые потенциально не были закомичены в хранилище.
v3.6.0 Вопрос про хранилище несовсем ясен. Зависали запросы при обращении к некоторым коллекциям, перенаправили их на иные, вновь созданные проблема перестала фиксироваться
Artem
Кто то тестил Mongodb на insert, или сколько максимум удавалось добиться insert/sec в колекцию +- с некоторыми индексами
Вячеслав
Возможно важно, монго шардированная
yopp
Вопрос некорректно поставлен
Вячеслав
Хранилище WiredTiger, MMAPv1
mmapv1. Журнал включен. логи фиксирующие момент прихода ООМ удалены
Вячеслав
Касаемо ошибок фиксировали подобные: 2019-04-09T15:36:33.061+0700 I COMMAND [conn1276] command dress.sessions command: find { find: "sessions", filter: { session_id: "5cac58a3d4edc6-87077955" }, limit: 1, shardVersion: [ Timestamp(122, 75), Object Id('55e9a8367058b509c9e2e57b') ], $clusterTime: { clusterTime: Timestamp(1554798755, 128), signature: { hash: BinData(0, 6AAF1DB554B1A5C61907FDFE57BAB06D9F53918D), keyId: 6649356921855803533 } }, $configServerSt ate: { opTime: { ts: Timestamp(1554798740, 54), t: 26 } }, $db: "dress" } exception: [dress.sessions] shard version not ok: version epoch mismatch detected for dress.sessions, the collection may have been droppe d and recreated ( ns : dress.sessions, received : 122|75||55e9a8367058b509c9e2e57b, wanted : 0|0||000000000000000000000000 ) code:StaleConfig numYields:0 reslen:692 locks:{ Global: { acquireCount: { r: 4 } }, MM APV1Journal: { acquireCount: { r: 2 } }, Database: { acquireCount: { r: 2 } }, Collection: { acquireCount: { R: 2 } } } protocol:op_msg 237189ms
yopp
> exception: [dress.sessions] shard version not ok: version epoch mismatch detected for dress.sessions, the collection may have been dropped and recreated вы что-то с коллекцией делали?
Вячеслав
> exception: [dress.sessions] shard version not ok: version epoch mismatch detected for dress.sessions, the collection may have been dropped and recreated вы что-то с коллекцией делали?
Насколько мне известно никаких действий не совершалось, за исключением тех что исходят из кода проекта.
yopp
есть основания полагать что данные у вас повреждены. степень повреждения и возможоность восстановления, увы, оценить не возможно. рекомендую сделать дампы используя прямое подключение к шардам, после чего перезалить эти дампы в новый шард. проверка целостности данных будет полностью на вас и зависеть от вашей бизнес логики
yopp
грустный пример почему не стоит монгу с другими сервисами на одном хосте использовать
yopp
и почему oom и базы данных это вообще очень плохая идея
Вячеслав
Вячеслав
На сервере только монго
Вячеслав
И 60гб было занято ей, но сервер не мониторился 🙈 потребление памяти росло постепенно в течении 4 дней.
yopp
версия 3.6.0 это очень старая версия
yopp
и что самое опасное это .0
yopp
там много чего было
yopp
4.0.8 (Mar 29) ◦ 3.6.12 (Apr 8) • Плейграунд для запросов: https://play.db-ai.co • Docs: https://docs.mongodb.com/manual/ • Learn MongoDB: https://university.mongodb.com Stable: 4.0.8 (https://docs.mongodb.com/manual/release-notes/4.0/#mar-29-2019) Bugfix: 3.6.12 (https://docs.mongodb.com/manual/release-notes/3.6/#april-8-2019) Legacy: 3.4.20 (https://docs.mongodb.com/manual/release-notes/3.4/#mar-13-2019, EOL June ’19) End of life: 3.2.21 (Sep ’18), 3.0.15 (Feb ’18)
Вячеслав
И 60гб было занято ей, но сервер не мониторился 🙈 потребление памяти росло постепенно в течении 4 дней.
Точнее тригера не были настроены. А это известная для монго проблема что она съедает всю память?
yopp
Вашей версии монго полтора года, плюс она ещё «нулевая» версия
Вячеслав
Ещё раз большое спасибо. Буду изучать продукт, выглядит интересным)
Вячеслав
$text поиск используете?
Тут не подскажу. нужно посмотреть запросы, я администратор, не разработчик, да и монго вижу в 3й раз только
Gor
проверить легко
Gor
глянь индексы на коллекции
yopp
$text поиск используете?
у человека другие проблемы есть)
Gor
если есть индекс fts то да как минимум точно планировали
yopp
ты в жиру написал?
Gor
у человека другие проблемы есть)
тут связано. этот нехороший индекс при выборке память дерет и всю коллекцию в память. при нехватке RAM - oom вполне возможен
yopp
в 3.6.0 чего только не было
Gor
так что если индекс не compounded то вполне реальный источник проблемы
yopp
особенно в sharded environment
Gor
ты в жиру написал?
это мне? про fts?
yopp
да
Gor
нет, пока что сделал выписку всех связанных issues и добиваю scored поиск
Gor
вчера вот прототип для scored добил. 0.12мс выборка против 4с при сортировке по score и лимит top 20
Gor
на сложносоставном запросе, где выборка на 400к документов
Вячеслав
тут связано. этот нехороший индекс при выборке память дерет и всю коллекцию в память. при нехватке RAM - oom вполне возможен
Тут смущает что память пропадала стабильно в течении 4 дней, но посмотрю спасибо. Кстати может ли это быть также связано что примерно в это же время реплика этого шареда приказала долго жить из-за нехватки места?
Gor
@dd_bb у меня еще мысль есть переделать индекс сам, чтоб можно было больше 1го на коллекцию добавлять
Gor
и сделать вообще 2 варианта индекса - 1 заточенный под score а второй под findAll
Gor
но что радует, прототип, после выведения математической модели, таки дает 0.12мс сравнимые с sphinxsearch
Gor
для sort by score
yopp
мне кажется что отдельные типы индексов это более логично, плюс это можно параллельно тестировать
Gor
под score нужен индекс с desc score сортировкой. под findAll нужен с сортировкой по RecordId
Gor
тогда можно merge score по term(stemm) для конкретного RecordID делать быстрее и выкидывать их в advanced вверх по pipeline планировшика
Gor
+ уже сейчас видно что по памяти минимум на 1 гиг разницы на 400к документов
Gor
вообщем прогресс идет помаленьку. дня 3 убил на вывод формулы
yopp
формулы чего?
Gor
для advance (вкурсе что это или обьяснить) recordId по планировщику вверх при подсчете score по terms
Gor
если на пальцах, то оригинальный код делал выборку всех индексов, потом всех документов, потом применял на них match для запроса. я переделал на паралельное чтение индексов по по stemm запроса. при паралельном чтении индексов которые отсортированы по score high -> low есть точка во времени когда какие бы данные с индекса еще не пришли, оно не повлияет на order документов с high score и их уже можно отдавать без ожидания дальнейшего чтения. соответственно в LIMIT plane stage данные быстрее попадут еще до конца чтения всех индексов и запрос будет завершен
Gor
вот формулу вычисления когда нужно отдавать и делал
Саша
ВСем привет, подскажите плиз, в чем может быть проблема, я ставлю монго и чтото оно зависло на етом моменте...
Anonymous
Вопрос по mongoose Есть такой объект в бд: { name: 'test', amount: 2 } Я делаю updateOne: updateOne({name: 'test'}, {size: 5}) В объект добавляется новое свойство (оно прописано в схеме объекта). Вопрос в том, как мне после этого удалить это свойство size когда мне это необходимо?
Anonymous
Или еще лучше: как сделать типа замену объекта, допустим я делаю так updateOne({name: 'test'}, {name: 'test', amount: 2, size: 5}) и объект становится таким как второй параметр, а если потом сделаю так: updateOne({name: 'test'}, {name: 'test', amount: 2}), то объект будет уже без свойства size