@MongoDBRussian

Страница 55 из 342
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} что он делает? И может подскажите где можно про принцип работы индексов почитать развернуто?

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, независимо от записанного туда времени?

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

Sergey
22.01.2017
17:14:10
Если это строка, то это одна история. Если дата то $gte/$lte
Если дата в iso (а она в iso, судя по примеру), то строки точно так же можно сортировать по gte + lt

Google
Sergey
22.01.2017
18:14:42
Регуляркой)

Хотя должна сортироваться

Mars
22.01.2017
18:24:45
Сортировать то да. А вот фильтровать нет
Mongo имеет внутренее представление даты/времени, это как раз ISO. Этот тип индексируется, так что фильтровать можно.

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

А не как дата

Mars
22.01.2017
18:56:22
А не как дата
@mak_tu явно строкой храните?

Mikhail
22.01.2017
18:57:40
@mak_tu явно строкой храните?
я простою выполняю new Date() и сразу записываю

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
спасибо за инфу) $gte и $lte отлично работают
Главное индексы не забыть создать, а то отлично работать будет не долго

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?

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
embeded docs для слабаков
а чем им это помогло бы?

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

индексы по датам тоже самое

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
а он разве не на время в оплоге смотрит ?
ну, с primary приехал op с датой, у тебя часы на слейве отстают на 2с, вот и результат

Страница 55 из 342