yopp
он делается раз в день? :)
Korostelev
этот момент уточню, но тут есть момент что время когда появляется запись чаще всего разное
yopp
у меня была большая инсталляция в esxi, с отдельными схд и было очень много проблем
yopp
делайте интегрированный дешборд, куда сведите метрики с vmware, включая схд, добавьте туда данные о производительности монги и сделайте счётчик этих самых сообщений
yopp
и ищите корреляцию
Korostelev
ок попробую к заббиксу прикрутить эти параметры. спасибо за совет
yopp
уверен что проблема будет лежать где-то со стороны vmware, скорее всего в какой-то пиковой нагрузке на схд или шины по которой подключен схд
Korostelev
на счет 'at end' значение увеличивается
yopp
там была вот такая история про smaps
yopp
не относится к монге, это к линуксу
Roman
у меня монга устала жить
Roman
но опомнилась потом
Roman
это минус хард минус база, почему затуп?
RA-TA-TATA
Ребята, что-то не пойму чуть-чуть, точнее запутался. test- коллекция people - документ в документе - объекты Верно? И где тут курсор
yopp
курсор это абстракция над результатом запроса
RA-TA-TATA
Так, курсор как понял - результат запроса
RA-TA-TATA
А по составу, верно ?
yopp
нет, курсор это не результат запроса
yopp
курсор это абстракция над результатом
RapidCodeLab
RapidCodeLab
Это указатель на результаты ьипа
yopp
курсор он как в текстовом редакторе курсор. это положение клиента в потоке результатов
RA-TA-TATA
а, ок
RapidCodeLab
Ага, каждая next итерация отдает новый документ
RapidCodeLab
Из потока
RA-TA-TATA
А состав верно написал?
RA-TA-TATA
Или ошибся
RA-TA-TATA
Просто что-то запутался
yopp
разница только в том, что в текстовом редакторе курсор можно произвольно двигать, а в монге только вперёд
RapidCodeLab
разница только в том, что в текстовом редакторе курсор можно произвольно двигать, а в монге только вперёд
А вот вопрос, при более менее сложном запросе, подготовка курсора, это тоже время же?
RapidCodeLab
Тупой вопрос конечно)
yopp
А состав верно написал?
нет. test база people коллекция каждая запись с разным _id — документ
RA-TA-TATA
RA-TA-TATA
так?
yopp
RA-TA-TATA
Понял, спасибо
yopp
объект это то как документ может быть представлен клиентом
yopp
в монге нет такого понятия
yopp
хотя конечно это спорный вопрос, потому что документ он на самом деле bson документ, а bson это binary json, а json это javascript object notation ;)
Mikhail
Добрый вечер, коллеги. Дошел до реализации rs монги в кубике и не понял где у неё HA
Mikhail
Есть куча слейвов, но мастер то один
Mikhail
Если он ложится, какой-то из секондари становится мастером, но приложение то ходит в сломанный мастер
Mikhail
Что я упустил?
Alex
Так приложение подключится к реплике, а к конкретному мастеру. Там драйвер должен сам разрулить и переключиться
Mikhail
Я взял helm-chart от bitnami, он разворачивает два сервиса, один смотрит на primary, другой на все secondary
Mikhail
Мне не понятно, куда ходить приложением
yopp
Что я упустил?
как конфигурируются клиенты
yopp
у вас есть два варианта: либо передать список всех нод клиенту либо указать их в SRV записи
yopp
клиенты сами разбируться когда к какой ноде подключаться, в зависимости от текущей топологии
yopp
главное чтоб у них был этот список
yopp
если это шард, то список должен состоять из mongos
Mikhail
Спасибо, буду пробовать
Mikhail
Класс, @dd_bb
Mikhail
In [8]: c = MongoClient('mongodb://root:eXXXXXXjs@db-mongodb-headless').test In [9]: c.test.insert_one({"x": 1}).inserted_id NotMasterError: not master
Mikhail
db-mongodb-headless ссылается на все инстансы, сейчас там 2 из 3
Mikhail
чяднт?
Mikhail
а как реализовано ссылание?
сервис в кубернетес
Gor
типа прокси?
Gor
tcp/ip?
Mikhail
ну по сути правила iptables. db-mongodb-headless имеет IP адрес, который на уровне iptables распределяется на два других
Gor
replicaSet там за этим делом или standalone mongo?
Mikhail
replicaset
Gor
зайти через шелл на реплику сет и проверь rs.status()
Gor
но дело скорее всего в том, что на slave попадаешь
Gor
без slaveOk()
Gor
хотя.. точнее slaveOk поможет только с чтением а insert надо только на мастер
Gor
грубо говоря. ответить тебе надо на вопрос - как через db-mongodb-headless оно законектится только на мастер
Mikhail
rs0:SECONDARY> rs.status() { "operationTime" : Timestamp(1555169225, 1), "ok" : 0, ... } } }
Gor
это проверить что у тебя хоть один member в статусе master
Mikhail
у меня нет такой записи
Mikhail
rs0:SECONDARY> rs.status() { "operationTime" : Timestamp(1555169225, 1), "ok" : 0, "errmsg" : "command replSetGetStatus requires authentication", "code" : 13, "codeName" : "Unauthorized", "$clusterTime" : { "clusterTime" : Timestamp(1555169225, 1), "signature" : { "hash" : BinData(0,"WukoGlBjsxatvQnopkGfvCjOCwg="), "keyId" : NumberLong("6679057196233261057") } } }
yopp
ну по сути правила iptables. db-mongodb-headless имеет IP адрес, который на уровне iptables распределяется на два других
если у вас в итоге получается балансировка на два адреса это фатально плохая идея
Mikhail
почему?
yopp
потому что у вас получается один адрес на две ноды