Гена
ок Спасибо
Гена
тогда такой вопрос
Гена
почму запрос в 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
Обновление в любом случае это две операции: read и write
Запись всегда полностью считывается?
inqfen
Господа
inqfen
Никто не встречал пакет с монгошеллом для альпайна?
inqfen
чтобы не ставить весь пакет mongodb, мне только шелл нужен
yopp
Запись всегда полностью считывается?
Конечно. Как ещё можно обновить документ не прочитав его? :)
а
Со всякими мульти апдейтами та же история ?? О май гад
а
То что вам не возвращают результат write на хранилище не влияет
yopp
Со всякими мульти апдейтами та же история ?? О май гад
Причём в абсолютно любом хранилище, которое поддерживает частичное обновление
а
😳
а
Разве что в приложении по памяти можно выиграть значит .. мне стыдно теперь.
yopp
Единственное исключение это всякие хранилища поддерживающие merge on read. Но там есть другие ограничения
madspectator
Конечно. Как ещё можно обновить документ не прочитав его? :)
Ну, например, считав только часть данных, если знать координаты этих данных внутри записи.
yopp
И как вы узнаете координаты, не прочитав документ? ;)
madspectator
Это да, никак. А postgresql так умеет?
yopp
Нет
а
Сорри. Это касается реляционных баз тоже? С колонками итд? Или речь идёт о JSON и в случае постгри - jsonb итд? А есть пруф какой-нибудь?)
yopp
Да. Это касается всех хранилищ которые поддерживают частичное обновление данных.
yopp
Не понимаю какие пруфы вам нужны. У вас есть запись 1|Foo|Bar. Вы хотите обновить Bar на JollyGoodFriend. Попробуйте придумать алгоритм который вам это позволит сделать не зная оригинальной строки ;)
madspectator
Если это БД со схемой и у первых двух полей фиксированная длинна данных, то можно узнать коордианты третьего поля.
yopp
Вам как минимум надо совпадение найти. В лучшем случае это будет поиск по индексу, но не факт что индекс поддерживает терминаторы
yopp
Так что вам придётся прочитать значение даже если у вас 3НФ и каждое значение поля хранится отдельно.
madspectator
Я наверное, ваш вопрос не оч. понял.
yopp
Не говоря уже о том что юнит записи это почти всегда страница
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
4.0.5
Агрегация с импользованием $out в новую временную коллекцию. Потом старую удалить и переименовать временную
Nick
В общем случае нормально работает при наличии индексов
Мечтатель
Это везде плохо
Да вот хочу соскочить с постгреса на монгу.
Мечтатель
так как связей не так уж много между таблицами
Nick
Да вот хочу соскочить с постгреса на монгу.
Перестройте данные под ваши потребнлсти и постарайтесь уйти от плоских реляционных данных, тогда може и джойны не нужны будут
Мечтатель
Мечтатель
вот и подумал менять БД