yopp
Нет, это 300 подключений со стороны кластера
yopp
maxPoolSize вероятнее всего регулирует максимальное количество подключений. Дальше запросы с одной стороны складываются в очередь, а с другой освободившиеся соединения выгребают эту очередь и выполняют запросы
Гена
то есть получается, что может выполняться 300 параллельных запросов?
yopp
Условно, да.
yopp
В монге нет мультиплексирования и синхронная request/response модель. Одно соединение — одна активная команда.
Гена
хм...интересно
то есть если будет например 5к запросов на запись, и пул у нас 500, то они по очереди будут выполняться а не сразу 500, например?
yopp
На это ответит исходный код вашего драйвера
yopp
Вопрос как конкретно работает пул это исключительно вопрос реализации пула в вашем конкретном драйвере.
Пул может быть ленивым, может быть с очередями, а может быть с выдачей соединения из пула
Гена
а где можно почитать про настройку пула в этом ключе?
yopp
Зависит от доступны примитивов языка, платформы и упоротости разработчиков драйверов
Гена
yopp
Что было что?
Гена
ну про это "В монге нет мультиплексирования и синхронная request/response модель. Одно соединение — одна активная команда."
yopp
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/
yopp
The MongoDB Wire Protocol is a simple socket-based, request-response style protocol. Clients communicate with the database server through a regular TCP/IP socket.
Гена
спасибо большое)))
yopp
regular TCP/IP socket не мультиплексированный и синхронный
Гена
Спасибо)
Гена
yopp
ссылку на rfc гуглите самостоятельно, мне лень :)
Гена
Гена
@dd_bb еще вопрос.
Разработичики, который четсно говоря уже достали, никак не могут понять почему у нас монга почти не нагружена (ЦПУ, диски, RAM)
а вермя ответа у них все равно высокое
Я почти уверен в том что драйвер херова настроен
Но никак не могу придумать как им на это указать
параметр maxPoolSize они пытались изменять (пробовали варианты 50, 10, 500). Это почти не вносит никакого эффекта.
yopp
высокое это сколько?
yopp
мы уже уже об этом говорили
yopp
сначала цифры с обеих сторон
Гена
сначала цифры с обеих сторон
Развернули на их разрабов))
Еще впорос
Столкнулся с проблемой индексации
не могу создать индекс в коллекции, так как он превышает лимит index key limit
В гугле говорят что если создание индекса падает то надо создавать либо хэш либо текст индекс. Но есть ли иной выход?
yopp
нет, нету
yopp
размер ключа индекса ограничен 1024 байтами
Гена
это баг или фича?) я так и не понял)
yopp
это баг в ваших данных
Гена
yopp
вы пытаетесь проиндексировать значение, которое приводит к тому, что ключ в индексе превышает 1024 байта
yopp
помоему с feature compatibility 4.2 там теперь есть возможность безразмерных ключей в индексе
Nick
@dd_bb еще вопрос.
Разработичики, который четсно говоря уже достали, никак не могут понять почему у нас монга почти не нагружена (ЦПУ, диски, RAM)
а вермя ответа у них все равно высокое
Я почти уверен в том что драйвер херова настроен
Но никак не могу придумать как им на это указать
параметр maxPoolSize они пытались изменять (пробовали варианты 50, 10, 500). Это почти не вносит никакого эффекта.
начните с того, что в логах у вас должны логироваться медленные запросы, если они там есть, то оптимизируйте вместе с проггерами. Если ничего туда не пишется, то говорите разрабам, что мониторинг на базе настроен и медленных запросов нет
yopp
)))))))
Гена
ахахахах
Гена
Они просто хотят чтоб мы им кнопку сделали "сделать збс"
Nick
все хотят
Гена
чтоб когда лагает они на нее нажимают и всё работает
yopp
yopp
у вас его нет
Гена
Спасибо блин)
yopp
и пока вы не вытащите наружу данные о том что и как у вас работает, вы будете тыкать в случайные места с близким к нулевому результату
yopp
попробуйте похать на автомобиле у которого ни стёкл, ни приборной панели, а есть только руль и педаль газа
yopp
если вам такая аналогия будет близка
Гена
Хорошо
я понял все аллегории)
Гена
может достаточно?
yopp
не знаю. вы всё ещё приходите сюда с вопросами без скриншотов с графиков
yopp
на которые вам невозможно дать ответа
Гена
У вас понял
Гена
это всё?
yopp
нет никакой нападки на вас лично. есть попытка различными способами указать вам на проблему, с которой вы уже больше месяца сюда приходите
yopp
а она очень простая: у вас нет объективных данных о том, что идёт не так
Гена
Хорошо) Может хватит?) Я вас услышал)) зачем еще много раз повторять одно и то же?
yopp
если бы вы услышали, вы бы не агрились
yopp
но я вам исключительно успехов желаю, разбирайтесь
Гена
спасибо) И вам успехов
Артур
привет всем, подскажите пожалуйста, функционал инет магаза, есть категории, у каждой категории задан диапазон товаров в виде _RANGE_START_ и _RANGE_END_, у каждого товара есть поле _SORT_, вопрос, как будет выглядеть запрос в монгу чтобы проверить или товар находиться в какой то категории? словив тупняка и не могу нигде найти что то похожее, пытаюсь сделать следующим образом
const productCategory = await ProductCategory.find({
_RANGE_START_: {
$gte: product._SORT_,
},
_RANGE_END: {
$lte: product._SORT_,
},
});
но возвращает не то что нужно
Егор
Привет всем. Ребят, подскажите, как переименовать БД в 4.0+ Монгодамп и рестор не канают по той причине, что mongorestore не может восстановить БД, название которой длиннее, чем у исходной.
Т.е. если я сделал дамп из БД, длина названия которой k символов, то восстановить её в БД, длина которой p>k символом — нельзя. Вылетает ошибка, связанная с проблемами восстановления индексов.
Егор
привет всем, подскажите пожалуйста, функционал инет магаза, есть категории, у каждой категории задан диапазон товаров в виде _RANGE_START_ и _RANGE_END_, у каждого товара есть поле _SORT_, вопрос, как будет выглядеть запрос в монгу чтобы проверить или товар находиться в какой то категории? словив тупняка и не могу нигде найти что то похожее, пытаюсь сделать следующим образом
const productCategory = await ProductCategory.find({
_RANGE_START_: {
$gte: product._SORT_,
},
_RANGE_END: {
$lte: product._SORT_,
},
});
но возвращает не то что нужно
Вы бы хоть схему БД привели
Артур
Вы бы хоть схему БД привели
const ProductCategorySchema = new Schema({
_RANGE_START_: Number,
_RANGE_END_: Number,
_NAME_UKR_: String,
_NAME_RU_: String,
_SUBCATEGORY_: [
{
type: mongoose.Schema.ObjectId,
ref: 'SubCategory',
},
],
isParent: {
type: String,
default: 'false',
},
visible: {
type: String,
default: 'true',
},
slug: String,
});
Artemy
Господа, подскажите новичку, как лучше реализовать задачу
Есть документ со свойствами. Каждое свойство представлено в виде id (int) и title (string). Например: (220) Date of filing of the application
Должна быть возможность обратиться к значению этого свойства как по id, так и по title
Как лучше всего задать такое значение в документе?
Егор
Artemy
Так и задать:
{
'_id': ObjectID,
'ID': string,
'title': string
}
Ну я пока пришел к такому решению:
{
"_id":"5dc5b135f0ffa627dc24ac8d",
"properties": [
{
"numeric_id":"210",
"title":"Serial number of the application",
"value":"0119852150592"
},
{
"numeric_id":"220",
"title":"Date of filing of the application",
"value":"2019-12-17"
}
]
}
Artemy
Насколько это адекватно?
Егор
В чём проблема?
Artemy
Я просто первый раз в жизни с монгой работаю, поэтому интересуюсь, в правильном ли я направлении мыслю)
Егор
Егор
придумываешь проблемы
Artemy
Bohdan
а какая функция у numeric_id в элементах твоего массива properties?
Bohdan
а
Bohdan
ну шо вам сказать, ребятки
Егор
Всё то, что кажется тебя адекватным скорее всего адекватно. Если ты не можешь придумать каких-то причин не делать так.
Artemy
Anonymous
вечерние приветики
поставил монгу (> 4 версия)
несколько CPU
не могу понять по статистике
system cpu usage - 190%
как так?
я из чатика по девопса
предположим что может 190% - это загрузка по нескольким cpu, но как тогда? у меня 3 cpu к примеру
как расчет тогда ведется?
Anonymous