Гена
ок
Спасибо
Гена
тогда такой вопрос
Гена
почму запрос в 5сек не попал ни в один шард?
Гена
@dd_bb
yopp
Миллион причин, нет смысла из-за одного запроса разбираться :)
Гена
yopp
Сеть, суммарный лаг всех шардов, приоритизация монгоса
yopp
Рекомендую смотреть на top 99% и отдельно на top 1% и top 0.1%
Гена
это что такое?
yopp
Это размер выборки запросов
yopp
По latency
yopp
Отсортированные по latency запросы, поделённые на три когорты по количеству попавших запросов. И смотреть mean/avg/stddev
yopp
И min/max
Гена
а где всё это можно глянуть, вы просто так круто говорите а я не пойму где это))
yopp
Это даст сжатую картину происходящего, чтоб на шум внимание не обращать
yopp
Руками в вашей системе анализа производительности
Гена
ааа
понял
Спасибо огромное) буду думать)
Leonid
самому интересно)
yopp
Сомневаюсь
yopp
Обновление в любом случае это две операции: read и write
yopp
То что вам не возвращают результат write на хранилище не влияет
madspectator
inqfen
Господа
inqfen
Никто не встречал пакет с монгошеллом для альпайна?
inqfen
чтобы не ставить весь пакет mongodb, мне только шелл нужен
а
Со всякими мульти апдейтами та же история ?? О май гад
а
То что вам не возвращают результат write на хранилище не влияет
а
😳
а
Разве что в приложении по памяти можно выиграть значит .. мне стыдно теперь.
yopp
Единственное исключение это всякие хранилища поддерживающие merge on read. Но там есть другие ограничения
yopp
И как вы узнаете координаты, не прочитав документ? ;)
madspectator
Это да, никак. А postgresql так умеет?
yopp
Нет
а
Сорри. Это касается реляционных баз тоже? С колонками итд? Или речь идёт о JSON и в случае постгри - jsonb итд?
А есть пруф какой-нибудь?)
yopp
Да. Это касается всех хранилищ которые поддерживают частичное обновление данных.
yopp
Не понимаю какие пруфы вам нужны. У вас есть запись 1|Foo|Bar. Вы хотите обновить Bar на JollyGoodFriend. Попробуйте придумать алгоритм который вам это позволит сделать не зная оригинальной строки ;)
madspectator
Если это БД со схемой и у первых двух полей фиксированная длинна данных, то можно узнать коордианты третьего поля.
yopp
yopp
Вам как минимум надо совпадение найти. В лучшем случае это будет поиск по индексу, но не факт что индекс поддерживает терминаторы
yopp
Так что вам придётся прочитать значение даже если у вас 3НФ и каждое значение поля хранится отдельно.
madspectator
Я наверное, ваш вопрос не оч. понял.
yopp
Не говоря уже о том что юнит записи это почти всегда страница
madspectator
yopp
Да без разницы
а
Да я чтот тупанул кста. Спс что терпите нас. )
madspectator
Да без разницы
Почему, например, надо сделать `UPDATE col SET 3rd_field = 'JollyGoodFriend' WHERE id = 1`
По индексу id находим адрес данных нужной записи, далее мы знаем длину данных для 1st_field и 2nd_field, поэтому можно вычислить адрес 3rd_field и записать туда данные.
yopp
Нельзя
yopp
Запись большего размера
madspectator
А поле 3rd_field тоже fixed size :) Не знаю, правда, как там postgres конец строки определяет, может, 0 втыкает в конец.
yopp
Я вам очень советую почитать про внутренне устройство постгреса
yopp
Более того, на странице с записью по-моему хранятся контрольные суммы
yopp
И за одно почитайте о том, как из памяти данные читаются.
yopp
И как из блочных устройств :)
yopp
Единственный реальный способ это append only log и жутко дорогой merge on read
yopp
Так например умеет rocksdb, но в любом случае это будет чтение страницы и запись ее обратно :)
yopp
И потом сброс блока из дискового кеша на блочное устройство
Ruslan
Какой лучше модуль истанавливать mongod или mongodb?
Leonid
Это две разные вещи. Не?
Leonid
Монгод - сервер. Монгодб - клиент
Ruslan
Для того, чтобы обращаться с ноды к серверу монгодб. Устанавливать mongod?
Dmitriy
устанавливать драйвер https://docs.mongodb.com/ecosystem/drivers/node/
Murena
всем привет - подскажите хочу накатить миграцию в монге - нужно во всей базе это около 1000000 записей заменить поле string - на [string] - то есть поместить существующую запись в массив - какой самый менее ресурсо затратный способ это сделать ?
Murena
точнее самый еффектиный
Murena
или в любом случае прийдется выкачивать каждый документ с select на определенное поле документа - и просто пересохранять ?
Nick
Murena
Мечтатель
Подскажите, на практике, юзали тяжелые "джоины" монговские? Как они себя показывают по времени исполнения?
Nick
Nick
4.0.5
Агрегация с импользованием $out в новую временную коллекцию. Потом старую удалить и переименовать временную
Nick
Nick
В общем случае нормально работает при наличии индексов
Мечтатель
так как связей не так уж много между таблицами
Мечтатель
Мечтатель
вот и подумал менять БД