
Sergey
18.01.2017
16:25:49
в upgrade notes всё написано: как лучше апгрейдить репликасет/кластер

Igor
18.01.2017
16:26:10
ок, изучу матчасть

Sergey
18.01.2017
16:27:02
там довольно подробно написано в какой последовательности и что обновлять, какие команды выполнять для поднятия метаданных до новой версии и пр

yopp
18.01.2017
16:27:37
3.4 вообще первый раз когда что-то прямо сильно обратно-несовместимое сделали

Google

Sergey
18.01.2017
16:27:56
3.2 до 3.0, емнип, тоже не откатывается

yopp
18.01.2017
16:28:03
откатывается
точнее, что ты называешь «откатывается»
Для меня откатывается, это когда я могу поднять ноду с нужной мне версией (если я не могу прямо бинарник заменить и всё заработает) и оно без всякой магии спокойно среплицируется

Sergey
18.01.2017
16:30:01
https://docs.mongodb.com/manual/release-notes/3.2-downgrade/
магия всё же нужна
Remove or downgrade version 3 text indexes before downgrading MongoDB 3.2 to 3.0.
Remove or downgrade version 3 2dsphere indexes before downgrading MongoDB 3.2 to 3.0.
после апдейта до 3.2 апается версия индексов же

yopp
18.01.2017
16:32:30
Ммм. Да, ты прав.
Печалька!
ничо, бывает

Evegniy
19.01.2017
15:45:21
Всем привет!
Скажите, а при создании индекса, {"background" : true} что он делает? И может подскажите где можно про принцип работы индексов почитать развернуто?

Sergey
19.01.2017
15:52:56

Google

Evegniy
19.01.2017
15:54:46
Нет, мне другое. {"background" : true} то индекс создается во время внутренних процессов, поэтому если я быстро попробую обратится, то возможно индекс еще не будет создан?
А если не будет этого ключа, то он сразу после вставки его создает, и индекс будет уже сразу?

Sergey
19.01.2017
15:55:54
background=true - вещь достаточно бесполезная, имхо.
да, она позволяет не лочить мастер при создании индекса, но оно намного медленнее (из-за двух (минимум?) проходов по данным) и все-равно лочит слейвы

Evegniy
19.01.2017
15:55:59
Опять же, если я ставлю экеспир по времени, то в какое время происходит удаление? и каким способом? Помечается как удаленная, или сразу удалятеся? В какоий момент тримится? МОжет ли создавать какие нибудь всплески io?
А где про это можно почитать более развернуто, а то не могу найти (

Sergey
19.01.2017
15:57:05
в исходниках

Evegniy
19.01.2017
15:57:47
А в доке может быть есть где инфа?

Sergey
19.01.2017
15:57:56
https://docs.mongodb.com/manual/core/index-creation/#background-construction
а, хотя вроде пишут, что слейвы научились тоже в фоне индексы генерить

Evegniy
19.01.2017
16:03:24
Спасибо, буду читать

tinium
22.01.2017
08:13:52
видимо совсем новичковый вопрос, но я не смог разобраться, хотя сделал как в доках
http://pastebin.com/XwiD7cZB
этот пример не выводит ничего
в пимонго не получается запустить перегрузку языка
если default_languge русский то не ищутся английские слова, и наоборот, если убрать установку дефолтного языка то находятся английские слова, но не русские

Pavel
22.01.2017
09:09:05
del

Mikhail
22.01.2017
17:01:17
Всем привет, есть вопрос. Работаю с монгой через node.js. У объектов в БД есть поле date, где я храню дату в таком виде: 2017-01-23T15:25:45.573Z. Как мне выбрать все объекты, у которых в поле date указана дата 2017-01-23, независимо от записанного туда времени?

Mars
22.01.2017
17:03:53

Sergey
22.01.2017
17:04:17
Или хранить дату отдельным полем
Хотя тут могут быть проблемы с таймзонами

Mikhail
22.01.2017
17:09:16
спасибо за ответы, буду пробовать

yopp
22.01.2017
17:12:32

Mikhail
22.01.2017
17:12:50

Sergey
22.01.2017
17:14:10

Google

yopp
22.01.2017
18:14:10
Afaik

Sergey
22.01.2017
18:14:42
Регуляркой)
Хотя должна сортироваться

Mars
22.01.2017
18:24:45

Sergey
22.01.2017
18:26:55
Речь была про то, что дата может как строка храниться
А не как дата

Mars
22.01.2017
18:56:22

Mikhail
22.01.2017
18:57:40

Mars
22.01.2017
19:00:23
Если в запросе передается Date, то драйвер в node.js сохраняет как тип ISODate

Mikhail
22.01.2017
19:12:00

Sergey
22.01.2017
19:12:49
Лучше справа lt использовать, наверное

Mars
22.01.2017
20:43:38

Alexey (boblin)
22.01.2017
21:59:11
котики, вопрос по монге.
есть монго-база вида
[
{t: nnn, e:[{a:xxx, b:yyy, c:zzz}, {}, {}]},
{},
{}
]
к ней делается много запросов вида
count({
e: {
$elemMatch: {
a: { $gte: 100},
b : 0,
c : 99,
}
},
t: 10
})
в каждом е порядка 400 элементов, записей таких около 30к (and growing). Каждый такой count выполняется где-то четверть секунды, что непозволительно долго.
можно ли как-то облегчить ей участь? ну там, проставить индексы для вот этих элементов в e?


Mars
23.01.2017
03:49:32
котики, вопрос по монге.
есть монго-база вида
[
{t: nnn, e:[{a:xxx, b:yyy, c:zzz}, {}, {}]},
{},
{}
]
к ней делается много запросов вида
count({
e: {
$elemMatch: {
a: { $gte: 100},
b : 0,
c : 99,
}
},
t: 10
})
в каждом е порядка 400 элементов, записей таких около 30к (and growing). Каждый такой count выполняется где-то четверть секунды, что непозволительно долго.
можно ли как-то облегчить ей участь? ну там, проставить индексы для вот этих элементов в e?
Видимо, сейчас нет индекса на е. Сделайте и посмотрите. А дальше уже explain и оптимизация запроса/индекса

Serg
24.01.2017
13:44:14
https://www.mongodb.com/webinar/back-to-basics-webinar-series?utm_medium=email&utm_source=Eloqua&utm_campaign=Int_WB_Back%20to%20Basics%20Series%20%28English%29_01_17_EMEA%20-%20Announcement%203&utm_content=Webinar%201

yopp
24.01.2017
15:01:11
https://blog.discordapp.com/how-discord-stores-billions-of-messages-7fa6ec7ee4c7#.jdr694jpk
ещё одни в монгу не смогли
> The messages were stored in a MongoDB collection with a single compound index on channel_id and created_at. Around November 2015, we reached 100 million stored messages and at this time we started to see the expected issues appearing: the data and the index could no longer fit in RAM and latencies started to become unpredictable. It was time to migrate to a database more suited to the task.
?

Google

yopp
24.01.2017
15:06:26
> We don’t have dedicated DevOps engineers yet (only 4 backend engineers), so having a system we don’t have to worry about has been great.
Пиздец конечно.
Just returning 50 messages to a user can result in many random seeks on disk causing disk cache evictions.
embeded docs для слабаков
Отличная иллюстрация: «Мы не читали доку, по этому как только у нас начались проблемы, мы сменили СУБД»

Pavel
24.01.2017
16:09:36
недавно же статья была, как 22000 серверов взломали с монгой
из-за дефолтных настроек
"в инструкцию смотрят только лохи"

yopp
24.01.2017
16:11:04
ладно когда ещё люди в файрвол не могут, это ещё объяснимо
более того, нормальная аутентификация и авторизация в монге появилась не так давно

Roman
24.01.2017
16:15:08

yopp
24.01.2017
16:15:48
{channel_id: xxx, time_slice: yyy, messages: [{user_id: zzz, message: fff, created_at: ddd}]}
time_slice: можно заменить на bucket_size
и делать бакеты, например, по сто сообщений
Это уменьшает в разы, если не на порядки, размеры индексов. Тебе теперь вместо того чтоб указывать например на 1000 страниц на каждое значение channel_id, надо указывать на 10
индексы по датам тоже самое

Roman
24.01.2017
16:19:28

yopp
24.01.2017
16:19:42
Потом если у тебя данные в память не влазят, ну шарди ты
они могли ничего не меняя хуйнуть почти любой шард-ключ, даже hashed по _id и в ус не дуть
Можно конечно их похвалить за то, что они смогли субд за неделю сменить. Это клёво. Но кассандра, без людей которые её умеют варить, они себе заложили очень большую свинью :(
Особенно с таким отношением

Google

ptchol
25.01.2017
09:54:18
source: ***.me:27017
syncedTo: Wed Jan 25 2017 12:53:42 GMT+0300 (MSK)
-2 secs (0 hrs) behind the primary

yopp
25.01.2017
10:26:15
ваши часы — говно :)

Constantine
25.01.2017
10:30:48
я так понимаю, что мерять лаги по таким данным, это все равно что в лесу по муравейнику сторону света определять

ptchol
25.01.2017
10:35:16

yopp
25.01.2017
10:35:57