
Max
27.08.2017
10:03:43

Alexey
27.08.2017
10:04:01

yopp
27.08.2017
10:05:22
А, она на этой части лога так и висела?

Max
27.08.2017
10:05:31

Google

yopp
27.08.2017
10:05:49
А покажи что в итоге в логе?
Монга какой версии?

Alexey
27.08.2017
10:10:07
Во время восстановления я этот процесс завершил по SIGTERM, чтобы включить verbose 5 логах. Но это никак не дало ничего. Сообщение было такое же. Только потом когда поднялась, посыпался дебаг.
Монга версии 3.2.9
Лог позже покажу если там что-то будет.

yopp
27.08.2017
10:15:47
3.2.9 это очень старая версия. Но багу с журналом поправили где-то немного раньшеь

Alexey
27.08.2017
10:28:00

Max
27.08.2017
10:35:40

Alexey
27.08.2017
10:42:26

Max
27.08.2017
10:43:21
логи бы.
если оно диском не крутит и проц не юзает - то чего-то же ждёт
чудес не бывает.

yopp
27.08.2017
10:55:46
Можешь в исходниках wt логстринги погрепать и посмотреть что оно делает

Max
27.08.2017
10:57:58
Оно жевало журналы
Я тоже так думаю.но автор вопроса утверждает, что диски не были нагружены. Это удивляет :)

yopp
27.08.2017
10:57:59
Почему долго жевало — ¯\_(ツ)_/¯

Google

Max
27.08.2017
10:58:16
Медленные диски:)

yopp
27.08.2017
10:58:25
Не
Видно было бы по iowait
Вообще в 3.2 всё что угодно может быть.

Max
27.08.2017
11:00:00
Да? Иовейт при нескольких килобитах? Точно диски отстой :)

yopp
27.08.2017
11:01:17
Я бы поставил на какой-нибудь рейскондишен за локи

Max
27.08.2017
11:02:01
Тогда бы проц вставлен был

yopp
27.08.2017
11:02:06
Не-а
Не обязательно вообще

Max
27.08.2017
11:02:57
Откуда тогда рейсу взяться? Диск не крутится . Кто ж еще гонку обеспечит?

yopp
27.08.2017
11:03:20
Два процесса бьются за мьютекс и когда тот заряжен выбирают рандомный увеличивающийся интервал для повтора попытки.

Max
27.08.2017
11:03:57
6 часов?

yopp
27.08.2017
11:04:09
А легко вообще.

Max
27.08.2017
11:04:25
Бага в генерации времени для последующей проверки? :)

yopp
27.08.2017
11:04:34
Да
Всё что угодно

Max
27.08.2017
11:05:11
Логи бы. И стрейс. С открытыми дескрипторами.

yopp
27.08.2017
11:05:22
WT — очень молодой. Там чего только не случается
Тебе то зачем?

Max
27.08.2017
11:06:44
Я вообще отталкивался от того, что 6 часов это овердофига. И надо посмотреть повторяется ли.
Если да то смотреть чем оно занято. Если нет - думать что елиноращовый глюк

Google

yopp
27.08.2017
11:07:06
На 3.2.9 вообще смысла что-то изучать нет. Поднять до последней версии и попробовать повторить.

Max
27.08.2017
11:07:20
Там в логе еще конфмг был и кеш в 150 гиг смущает

yopp
27.08.2017
11:09:25
Чем смущает?
Если что и должно смущать, так это версия годичной давности.

Max
27.08.2017
11:10:34
Это же тот кеш который советуют не трогать, если монга не в контейнере?
Или путаю?

yopp
27.08.2017
11:10:36
Которая вышла до 3.4 и в которой скорее всего нет кучи бекпортов

Max
27.08.2017
11:10:56
Если видимая память не соответствует доступной

yopp
27.08.2017
11:11:18
Я не очень вижу как кэш может влиять на проигрывание журанала.
Точнее его размер
По сути это просто верхний лимит количества страниц в памяти. Конкретное значение особой разницы играть не будет.

Max
27.08.2017
11:15:03
А 6 часов рейс кондишн не удивляет?
Если я правильно помню тот кусок лога, то значит кто т полез и накрутил конфиг. Возможно не оптимально. Поэтому монга и была убита.
А что там еще... поли догадывайся.
Мод она в фореграунде была запущена и потом спала в ctrl-z, пока не перезапустили

yopp
27.08.2017
11:15:41

Max
27.08.2017
11:15:49
Я бы повторил, в общем

yopp
27.08.2017
11:15:55
Я бы обновил.

Max
27.08.2017
11:16:08

yopp
27.08.2017
11:16:22
Тратить время на поиск проблемы в устаревшей версии монги — пустая трата времени

Max
27.08.2017
11:16:43
Эт правда.

yopp
27.08.2017
11:17:02
Русский чот совсем забывается. :(

Max
27.08.2017
11:17:20
И результат будет бесполезен

Google

yopp
27.08.2017
11:18:04
Важно понимать что 3.2.9 вышла до 3.4, а там дальше тупо может и не быть кучи всяких фиксов. Я не следил много ли из 3.3 в 3.2 бекпортировпли.
Могли и не портировать.

Alexey
27.08.2017
11:19:30

yopp
27.08.2017
11:20:29
Желательно уже до 3.4. Там скоро 3.6 выйдет

Viktor
27.08.2017
11:21:55
Стоит на 3.6 обновляться сразу после релиза? Или лучше багфиксов подождать (3.6.1 например)

Alexey
27.08.2017
11:21:57

yopp
27.08.2017
11:22:10
И на 3.6.1 не стоит :)

Viktor
27.08.2017
11:22:28
Мы когда-то с 2.6 сразу на 3.4 переехали резко

yopp
27.08.2017
11:22:36
Лучше дождаться пока опытные пионеры всё разведают и потом уже переезжать.
Если не будет проблем с обратной совместимостью как в 3.4 можно пару нод поднять и посмотреть.

Viktor
27.08.2017
11:24:14
А 3.4.7 как? Нормальная уже?

yopp
27.08.2017
11:24:35
Что считать нормальным?

Viktor
27.08.2017
11:24:51
Не крашится рандомно
По-моему ты рассказывал недавно, что в какой-то 3.4.х крашнулось

yopp
27.08.2017
11:25:24
Когда монга крашится это в какой-то степени даже хорошо
А вот когда она начинает на каких-то кейсах неприличности вытворять, вот это очень обидно.

Google

yopp
27.08.2017
11:26:26
Там какая-то засада с монгосами была недавно
В .6 кажется

Viktor
27.08.2017
11:27:05
Кстати, кто-нибудь пользуется views из 3.4?
Интересно насколько оно юзабельно в реальных кейсах

yopp
27.08.2017
11:28:12
Если у тебя легкая агрегация — то сойдёт. Но там нет кеширования, так что я смысла вообще не вижу в ней

Viktor
27.08.2017
11:28:23
А, тогда нафиг
Оно, наверное, еще и в индексы не умеет толком

yopp
27.08.2017
11:29:39
Не знаю. Они судя по всему куда-то с этим идут, но по текущему состоянию это какие-то адовые зачатки.
Можно было назвать это хранимыми агрегациями и не морочить голову.

Viktor
27.08.2017
11:30:25
Я сейчас вижу эту фичу как "сохраненный запрос aggregate"
А такое мне больше в коде нравится видеть

yopp
27.08.2017
11:31:23
Да. Не понимаю зачем тащить бизнес-логику в субд

Dmitry
27.08.2017
11:33:33

Леха
27.08.2017
13:22:30
Всем привет. Как гуру хранят в Монге список лайкнувших пост?
Подозреваю что как-то так:
// mongoose model fields
likes: [ { type: Schema.ObjectId, ref: 'User' }],
// mongoose model fields

yopp
27.08.2017
13:29:09

Леха
27.08.2017
13:29:57

yopp
27.08.2017
13:32:58
Показывать цифру: поле в посте. Получать список: если лайков тысячи, то в отдельной коллекции, по несколько сотен в одном документе; если меньше прямо в посте. Показывать лайкнул пользователь или нет: либо по индексу в коллекции с лайками, либо ещё одна коллекция инвертированная в сторону пользователя.
Поле в посте — счётчик в смысле.

Леха
27.08.2017
13:41:09
А как быть с комментариями? Есть две модели - Post и Answer. Комментировать можно и пост, и ответ на пост.
То есть при создании комментария я передаю ID поста или ответа и какой-то флаг, указывающий на то к какой модели коммент?
Типа target_type: 'Post' // Answer

yopp
27.08.2017
13:44:12
Materialized Path