yopp
а какая версия монги?
Vyacheslav
3.4.5
yopp
попробуй mongoshell сессию перезапустить?
yopp
помогло?
Vyacheslav
нет, все также вопрос в том, что я вчера переносил данные из одной коллекции в другую с помощью скрипта на Perl и initialize_ordered_bulk_op для бысрого переноса (и взял буфер 10000), и execute по заполнению этого буфера и где-то в середине выдало ошибку MongoDB::Network Error: Unexpected end of stream
yopp
соединение отвалилось
yopp
бывает.
Vyacheslav
и после этого вот так
yopp
интересно. попробуй через aggregation framework сделать count
yopp
ну самый простой вариант: сделать дамп и восстановить из дампа
yopp
если ты переносил из другой коллекции, то сделать дамп той коллекции и его восстановить в другуб коллекцию (`-c` в mongorestore кажется)
Artur
А нет у нее никакого repair?
yopp
можно и repair, это всё примерно одно
Artur
Еще можно попробовать индекс пересоздать.
yopp
какой индекс ты собрался пересоздавать?
yopp
и зачем главное?
Vyacheslav
дамп есть, думаю проще перезалить
Vyacheslav
да, индекса на это поле нет, т.к. это массив
Artur
На поле, если по нему идет поиск. Но нет, так нет.
yopp
дамп есть, думаю проще перезалить
ради интересна действительно попробуй compact
Vyacheslav
я просто думаю, что индекс на массив будет большим
Vyacheslav
хотя могу ошибаться
yopp
прямо пропорицонально количеству элементов в массиве
Vyacheslav
а если в массиве лежит хэш (коллекция)
yopp
агхр
yopp
кто вообще это придумал называть вложенные документы «коллекцией»?
Vyacheslav
> db.col1.aggregate([{$count : "x"}]) { "x" : 2280000 }
yopp
s
yopp
хеш == документ == объект
Igor
в perl это хэш
да много где это "хеш"
yopp
а вот массив документов != коллекция
Igor
почему коллекция-то​
Igor
вот!
Vyacheslav
ок, понял ))
yopp
вобщем-то если оно отвалилось посредине, то вероятнее всего что у тебя там только половина данных. почему count и $count показывают разное — скорее всего поломался _id
yopp
afair именно по нему стата ведётся
yopp
в смысле count оттуда считается
Vyacheslav
т.е. получается лучше перезалить
yopp
но так как ты делаешь $count по неиндексированному полю, оно перебирает все документы и из-за этого разница в тысячу документов
yopp
да, я бы перезалил.
yopp
а если в массиве лежит хэш (коллекция)
начал писать и отвлекся: индекс по самому объекту обычно плохая идея (это работает при точном поиске, когда объект в массиве побитово идентичен объекту в условии, а это значит и порядок ключей играет роль)
yopp
можно делать индекс по полю во вложенном документе
yopp
и тут могут всплыть как хорошие, так и плохие вещи
Nick
а можно пример дока из базы?
yopp
зависит от кейса
Vyacheslav
еще такой вопрос - коллекция 5 ГБ, сколько нужно выделять памяти (cacheSizeGB), оперативки, чтобы нормально работало
yopp
нужно не трогать cacheSizeGB
Vyacheslav
т.е. как по-умолчанию - 50% ram - 1 GB?
Vyacheslav
50% of RAM minus 1 GB, or 256 MB.
yopp
если нет задачи ограничить жадность монги, то да, оставить как есть
Vyacheslav
ок, понял
yopp
руками значение устанавливать не надо, я к этому
yopp
давать 100% память под кеш — тоже
Vyacheslav
ага, понял
Vyacheslav
а оперативы сколько лучше для такого объема?
Vyacheslav
я так понимаю, чтобы хватало на индексы
yopp
я вообще не сторонник кручения ручек у монги, пока нет реального эксплутационного опыта
yopp
ответ на вопрос: сколько не жалко
yopp
объём памяти зависит от реального паттерна использования данных. минимально, да, именно так: в память должны влазить как минимум индексы. идеально если туда ещё влазят самые горячие документы. этим документами даже не обязательно влазить в кеш монги, они спокойно могут жить в дисковом кеше (это даже лучше, там они уже будут сжатыми, а в кеше монги они as is)
Vyacheslav
спасибо, буду анализировать
Cap
проведи нагрузочное тестирование своего сайта. И смасштабируй средствами штатных баз данных
yopp
кажется у нас появился штатный капитан «чоб сказать»
CC-BY-SA-4.0/Docker-ce30.0
реши проблему
CC-BY-SA-4.0/Docker-ce30.0
для этого используй методы решения проблем
Cap
Я к тому что нужно нагрузить сайт до уровня ожидаемой аудитории и понять во что упёрлось, в память в диск , во время отклика, и тогда станет ясно как действовать... А не искать как перейти на MongoDB )
yopp
Latest: 3.4.5 (June 14, 2017), Stable: 3.2.13 (May 1, 2017) 3.4.5: https://docs.mongodb.com/manual/release-notes/3.4/#jun-14-2017 3.2.13: https://docs.mongodb.com/manual/release-notes/3.2/#may-1-2017 Пришло время обновляться до 3.4.1+: https://aphyr.com/posts/338-jepsen-mongodb-3-4-0-rc3
tenni
пост в блоге отличный
yopp
к своему стыду не подписан на блог, о релизах узнаю из документации :(
yopp
пост в блоге отличный
а дай ссылку? я что-то в блоге про релиз вообще ничего не вижу
tenni
ты ее запинил же
tenni
там запись в блоге про репликацию и протокол v1
yopp
а, ты про асфира
yopp
я щас ещё обнаружил что у монги ещё и инженерный блог есть
yopp
https://engineering.mongodb.com/
tenni
круто, спасибо, на досуге почитаю
Aleksey
чото там из контента только два последних интересно
Cap
а ты попробуй опиши модель нагрузки, хоть как-то напоминающую реальность. ещё один свидетель абстрактных бенчмарков в вакууме
Поскольку сайт уже работает, уже имеются основные кейсы поведения пользователя. Да и вручную набросать их не сложно
tenni
синтетика такая синтетика