yopp
ну только если все документы перебрать
yopp
даже в компассе все эти смешные графики построены на семплах
Yury
Да, сейчас мы делаем map-reduce по всей коллекции, клиенты говорят что у них крашится сервак :-) Надо реально подхачить тут это дело. В 90% случаев всех все устроит.
Nick
можно докучи прикрутить способ подгрузки схемы из какогонить mongoose
Yury
А чо они так умеют?)
Nick
но это уже вручную юзером должно указываться
Yury
Ааа
yopp
yopp
совсем
Yury
Не, не прокатит
yopp
прокатит
Yury
прокатит
А, я про то что схем у нас нет :-) а с выборкой нескольких доков ваще норм должно все быть :-)
yopp
Вы не тем занимаетесь
Nick
кстати. а вообще какая цель? делаете графический редактор запросов?
Yury
Вы не тем занимаетесь
Ну мыж не только этим) у нас большой бэклог) а это просто фичу жалко выкидывать, там фикс на 30 минут.
yopp
Эта фича никому не нужна
yopp
В отличии от нормального интерфейса для написания запросов
Yury
Nick
да я уже чекнул, но зачем вам именно список полей так и не понятно
yopp
«все» это кто?
Yury
yopp
я бы убил, если бы у меня клиент пошел ради автозполнения делать map/reduce
Nick
автодополнение, знач всетаки редактор запросов
Yury
yopp
В прошлый раз я не смог нормально даже подключится к атласу. Теперь то оно работает?
Yury
Да, мы там ядро все переделали, теперь там нормальный драйвер официальный :-)
yopp
libmongoc или js драйвер?
Yury
js (Node.js)
Yury
И для ios и для android
Serhio
Из-за того что в локальной сети задержки в основном обусловленны не физической передачей данных, а их обработкой в процессе передачи, вам только кажется что в локальной сети нет задержек. Но в локальной сети действуют те-же самые законы физики что и везде :)
Быстрее света информацию не передать. За 1 миллисекунду свет может преодолеть всего ~300км метров, а за 1 микросекунду соотвественно всего 300 метров, а за 1 наносекунду всего 30 сантиметров. Или ~4 нс на каждый метр. И это только время необходимое на физическую передачу сигнала в одну сторону.
Дальше у нас есть 7 слоёв OSI модели, каждый из которых вносит свои задержки. Например в L1 популярен Ethernet. В этом протоколе есть пауза между передачей пакетов. Длинна паузы 96 «битовых пульсов». «Битовый пульс» считается как (1 / скорость интерфейса). Т.е. для 10E это ~0.1мс, а для 1000E ~1нс.
Т.е. мы ещё даже не начинали считать сколько времени устройствам нужно на обработку и уже получили 5 нс задержки на каждый метр.
Вместе с задержкой на обработку, без специальных оптимизаций и использования специального оборудования, задержка в одну сторону будет измерятятся в сотнях микросекунд. Даже loopback интерфейс, который по сути не взаимодействует с сетевым оборудованием, даёт задержки в десятки микросекунд.
Теперь посчитаем очень упрощённо.
Так как монга предпологает последовательное исполнение команд, ей нужно отправить запрос и дождаться ответа от сервера. Чем меньше размер запроса и меньше работы делает монга, тем заметнее становятся задержки. Предположим что мы можем передать запрос, со всеми задержками, за 500мкс, а монга может выполнить 50 тыс условных документов в секунду, что даёт нам 2мкс на вставку вместе со всеми обрабтками
Последовательная вставка: 500мкс (запрос) + 2 (обработка) + 500мкс (ответ) = 1002мкс на документ. Или 998 документа в секунду.
Bulk вставка 1000 документов: 500мкс * 1000 (передача) + 2 мкс * 1000 (обработка) + 500мкс (ответ) = 502500 мкс. 503 мкс на документ или 1988 документа в секунду.
Что примерно в два раза быстрее. В реальности эффект может быть как больше, так и меньше. Это будет зависеть от того, где дальше расположенно следующее бутылочное горлышко.
круто завернул 👍 но у нас нет 7 слоев OSI по-факту 😉
yopp
Ilya
Это стандарт которого никто не придердивается
Serhio
есть как минимум OSI и TCP/IP модели, в первой 7 уровней во второй 5 =) OSI придумали хер знает когда, в darpa если память не изменяет. Придумать придумали, а связать с тем что вреале наворотили - "не смогла я не смогла". Затем появлялись всяческие стандарты/rfc/прочая макулатура. В итоге на деле вышло так что эталон OSI-7 херово ложится на нынешний стек TCP/IP и сделали более приближенную модель(вроде альтернативной)
yopp
Serhio
да это больше философский момент) но по-факту в tcp/ip сети отсутствуют 7 уровней модели
yopp
Не знаю кто там «не смогла». Последние 3 уровня сейчас видны просто отлично, потому что есть например TLS. Это аккурат L5
yopp
В TCP/IP модели этого нет
Serhio
внимание tcp/ip стек не знает что там выше)
Serhio
и не должен
yopp
так я и говорю что это две разные абстракции
Serhio
конечно разные) и OSI наихеровейший способ рассказать об том как работает tcp/ip стек
yopp
Нормальный способ
Anonymous
Ребят, нубский вопрос: в схеме монгуса я записываю данные и по умолчанию ставлю текущую дату date: { type: Date, default: Date.now }, но мне понадобилось взять эту дату и вернуть ее в ответ сервером, как лучше сделать? Записывать дату через new Data() и потом эту же дату возвращать? или можно прям получить дефолтное значение и вернуть? И как лучше с точки зрения производительности) Спасибо)
ALEX
Anonymous
Anonymous
Спасибо
Anonymous
Mykola
Посоветуйте GUI для работы с mongo на Mac
Anonymous
Igor
Ребята, а что такое МонгоАтлас? Это типа база в облаке? Чет по гайдам их не смог настроить доступ. Может в кратце кто поведает
D
Там же репликация
D
Mongouri бери и коннекться
Igor
Mongouri бери и коннекться
у меня просто одни и теже настройки к локалке коннектятся а к атласу нет. Пишет
Error: read ECONNRESET
Igor
подстава, это проблема мол ssl=true надо передавать, а с ним и сертификаты... Где блин взять это сертификаты?
Igor
Igor
Едритова документация!!!!
Igor
mongodb://LOGIN:PASSWORD@HOST:27017/DATABASE?ssl=true&authSource=admin
Igor
последние 2 параметра! ss true и authsource
Igor
и нет проблем с SSL
Igor
это с традал через монгуста
Alexander
а в монге есть партицирование?
я не про чанки и шардинг сейчас
SvPupok
Мне кажется, если брать за пример партиционирование таблиц, например в оракле, то шардирование коллекций, как раз наиболее близко по смыслу.
Alex
Alexander
Всем привет!
Возник вопрос по настройкам чтения в Mongo 3.0. есть replica set с 1 primary и 2 secondary. В случае если primary становится недоступен replica set + арбитр должны выбрать нового primary, судя по докам это занимает меньше минуты, в чем тогда необходимость использовать primaryPrefered режим доступа к replica set?
https://docs.mongodb.com/manual/reference/read-preference/#primaryPreferred
Alexander
Т.е. какие вообще случаи могут быть когда этот режим даёт какие-то преимущества?
Pavel
всем ку. Сохраняет ли $lookup из aggregation framework порядок массива? Вот у меня есть поле-массив objectId, я join-ю в него соответствующие документы. Почему на выходе массив перемешивается черт пойми как?
Pavel
db.getCollection('trades').aggregate([
{ '$match': {
_id: ObjectId('5a546428f228c3156579fe00')
}
},
{
'$lookup': {
from: 'images',
localField: 'images',
foreignField: '_id',
as: 'images'
}
}
]);
Viktor
думаю лучше доку к lookup сразу смотреть
Pavel
там нету ничего про order preserve
Pavel
окей. А есть варик отсортировать массив объектов в соответствии с другим массивом?
Alexander
да, смотри в сторону $sort
Alexander
все что ты получаешь в агрегации можешь сортировать как тебе захочется
Alexander
В плане физического хранения есть разница
Шард - это уже отдельная база
Партицирование больше про физическое хранение одной таблицы в разных файлах в рамках одной базы
Alexander
Но в целом шардинг один из способов партицирования
Alexander
Надо ещё покопать как монга физически данные хранит
Помню что есть чанки, но они вроде к шардам относятся