Ilya
=)
yopp
yopp
Покажи пайплайн
yopp
Очень желательно в gist.github.com
Yurii
Ilya
Покажи пайплайн
так, похоже по size индекса небыло сейчас еще потестирую)
yopp
db.getCollection('scores').aggregate([
{$match: {"grades.score": {$gte: 10}}},
{$skip: 21000},
{$limit: 10},
{
$project: {
grades: {
$filter: {
input: "$grades",
as: "item",
cond: { $gte: [ "$$item.score", 10 ] }
}
}
}
}
])
yopp
"executionTimeMillis" : 39,
yopp
без индексов
yopp
это датасет с оценками ресторанов
yopp
scores.count()
25360
Ilya
во первых спасибо
Fantasy
Это пахнет началом цикла статей где-нибудь)
Ilya
во вторых очень здорово про addFields я чет не догадался
Ilya
с индексами да это я накосячил
Ilya
вроде сейчас все работает как надо)
yopp
Тьфу,.
yopp
Короче, я тям уже три раза ошибся
yopp
Короче, если не делать условия по borough, то в этом случае монга для skip/limit будет делать FETCH всех документов которые попали в условие
yopp
Хм. Хотя оно и так делает FETCH, даже если и сортировка есть и в условии нет вложенных документов
yopp
Пойду ещё кофеином закинусь
yopp
https://docs.mongodb.com/manual/reference/method/cursor.skip/#pagination-example
yopp
Но вообще такие оптимизации нужны если будет очень больно на очень больших объёмах
yopp
yopp
Там аккурат MDBLocal в мюнхене, где Ася Камски (из монги, ведёт http://www.kamsky.org/stupid-tricks-with-mongodb и http://www.askasya.com) сейчас рассказывает про AF. Жаль трансляции нет :(
yopp
В недрах mongodb.com есть раздел со старыми кейноутами. Например https://www.mongodb.com/presentations/diagnostics-and-debugging-3-0-the-return-of-sherlock-holmes. Можно даже сказать что благодоря её выступленям, меня потянуло в глубокое копание в монге.
Она очень клёвая!
Nickolay
yopp
О. Слайды есть https://github.com/asya999/mdbw17
Анатолий
привет. вопрос - как такое может быть - удалил документы из коллекции, но скрипт из крона может их находить?
Анатолий
где то надо кэш почистить?
yopp
Реплика сет или standalone?
Dmitry
2018-04-12T15:35:59.293+0000 E QUERY [conn5] Plan executor error during find command: FAILURE, stats: { stage: "PROJECTION", nReturned: 0, executionTimeMillisEstimate: 20, works: 4828, advanced: 0, needTime: 4827, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, transformBy: { created: 1, description: 1, img: 1, image: 1, name: 1, owner: 1, updated: 1, users: 1, views: 1, likes: 1, reference: 1 }, inputStage: { stage: "SORT", nReturned: 0, executionTimeMillisEstimate: 20, works: 4828, advanced: 0, needTime: 4827, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, sortPattern: { views: -1 }, memUsage: 33568596, memLimit: 33554432, inputStage: { stage: "SORT_KEY_GENERATOR", nReturned: 0, executionTimeMillisEstimate: 10, works: 4827, advanced: 0, needTime: 2, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, inputStage: { stage: "COLLSCAN", filter: { $and: [] }, nReturned: 4825, executionTimeMillisEstimate: 0, works: 4826, advanced: 4825, needTime: 1, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, direction: "forward", docsExamined: 4825 } } } }
yopp
2018-04-12T15:35:59.293+0000 E QUERY [conn5] Plan executor error during find command: FAILURE, stats: { stage: "PROJECTION", nReturned: 0, executionTimeMillisEstimate: 20, works: 4828, advanced: 0, needTime: 4827, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, transformBy: { created: 1, description: 1, img: 1, image: 1, name: 1, owner: 1, updated: 1, users: 1, views: 1, likes: 1, reference: 1 }, inputStage: { stage: "SORT", nReturned: 0, executionTimeMillisEstimate: 20, works: 4828, advanced: 0, needTime: 4827, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, sortPattern: { views: -1 }, memUsage: 33568596, memLimit: 33554432, inputStage: { stage: "SORT_KEY_GENERATOR", nReturned: 0, executionTimeMillisEstimate: 10, works: 4827, advanced: 0, needTime: 2, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, inputStage: { stage: "COLLSCAN", filter: { $and: [] }, nReturned: 4825, executionTimeMillisEstimate: 0, works: 4826, advanced: 4825, needTime: 1, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, direction: "forward", docsExamined: 4825 } } } }
memUsage: 33568596, memLimit: 33554432
памяти для сортировки не хватило
Dmitry
спасибо
yopp
Если вы из РФ, рекомендую заранее озаботится вариантом обхода блокировки.
yopp
❗️Суд постановил заблокировать телеграм.
SvPupok
да затрахаюццо блокировать))))
Rocket
Artur
попадали все прокси уже
yopp
И @socks5_bot
Ivan
а этот живой @TgProxyBot
Михаил Макарычев
И @socks5_bot
Хз. Я попробовал через него. Ничего не вышло
Михаил Макарычев
Просто это окно стало висеть
Rocket
Rocket
Одна машина не выдерживает.
Михаил Макарычев
Hopf
thx
Oleg
Ребят, привет. Подскажите а юзает кто монгу в big data ? Поделитесь впечатлениями
Slava
а что вы подразумеваете под бигдата? ну т.е какие объемы?
Oleg
больше 1 петабайта
Nick
для хранения норм, но галвнео планирвоать доабвление новых шардов примерно за полгода
Nick
мы тут недавно к имеющимся двум шардам по 3Тб добавили два новых и ориентировочное время ребалансинга чанков ококло года
Nick
а данные прилетают намного быстрее и впринципе через пару недель место кончится, так что решением стало расширение дискового пространства под этим двумя шардами, благо рейды и контроллеры подзволяют
Nick
и это на размере в 7Тб суммарно
Oleg
а вы это как то в связке с hadoop или иным софтом ?
Nick
и запросы только по ключу без всяких агрегаций
Nick
конкретная задача просто хранить данные и флаги пересылки в смежную систему
Nick
средний поток 500 рпс с средним размером дока 1.5кб
Nick
обычные хдд справляются, но любой запрос не по индексам убьет кластер
Nick
вообще если разделить данные на горячие и холодные и первые кинуть ан ссд какойнить и чтоб рбаота с данными была с учетом этого, то все будет ок. Но это должно быть сто раз перепродумано на этапе разработки, когда накопите первый Тб назад дороги уже может не быть
Nick
и еще сейчас у нас индексы не помещаются в память на одной машине (66Гб индексов на 64Гб рам) поэтмоу даже запросы по индексу могут сильно аффектить нагрузку на диски
Nick
и да из инедксов два обязательных по _id и шард ключу и два собственно под задачи, один из которых по услвоию и почти пустой
Oleg
Крупный процессинг онлайн платежей
Nikita
Вспоминаю шутки про монгу и транзакции
Oleg
Ну этого пока нет , но боюсь что может
Nick
скажу сразу что на обычном HDD при непродуманной структуре и навешанных разных запросах особенно ворочащие без индексов или вообещ всем данным, испытаете первые проблемы на 100Гб и либо около 100мультов доков
Anonymous
привет всем. парни подскажите, почему после установки монги я создаю базу и если монгу рестартнуть то база исчезает?
Nikita
Anonymous
Anonymous
на одном серваке всё ок, на другом вот такая шляпа
Anonymous
версия 3.6.3
Anonymous
я там установил своб папку и у неё права 777
yopp
Anonymous
yopp
Anonymous
монги