AstraSerg
вот жеж у вас задачки...
yopp
а что, готовых решений на рынке нет?
yopp
с токенизацией и вот этими всеми прелестями?
yopp
я с pci dss плохо знаком, но помоему токенизация была отличным способом изолировать процессинг от мира
Dmitriy
собственно из-за чего и сыр бор возник
Andrey
доброго времени суток всем! подскажите пожалуйста: сколько серверов в реплика сете допускается для масштабирования кластера? (версия 3,6)
Andrey
12 или больше?
yopp
это когда sensitive authentication data хранится в защищенном изолированном хранилище и покидает его только в сторону шлюзов. всё остальное взаимодействие происходит с использованием случайных токенов
AstraSerg
точно так
такое не получится таки, ведь реплики в любой момент могут стать мастером, а там данные не полные.
yopp
yopp
точнее так
AstraSerg
12 или больше?
12 не оптимально. Большие потери на заись. РЕкомендуется 3 максимум 5
yopp
AstraSerg
Andrey
Dmitriy
AstraSerg
yopp
добавление нод в реплику лучше не считать масштабированием, вы добавляете только read capacity в кластер, при этом write capacity у вас будет равно самой слабой ноде в реплоика сете
yopp
добавление нод в реплика сет, это отказоустойчивость и распределение данных по регионам
yopp
если вам нужно масштабирование, вам нужны шарды
yopp
ничего не является :)
Dmitriy
ребят всем большое спасибо за инфу. отдельное спасибо @dd_bb и @AstraSerg. ушел думать!
AstraSerg
Andrey
ничего не является :)
полноценным масштабированием и впрямь сложно назвать такой кластер из-за отставания данных и по вышеуказанным причинам
Andrey
а шардирование через балансир проходит, да?
Andrey
mongos
yopp
это не балансер, это роутер. но всё сложнее.
шардирование требует специального реплика сета для хранения карты данных и конфигурации и mongos
Andrey
наверное надо опять почитать
Andrey
спасибо!
yopp
и одного и более реплика сета
yopp
каждый реплика сет будет хранить кусок данных
Andrey
а мастер так же один останется?
yopp
в каждой реплике будет свой праймари
Andrey
ᅠ ᅠ ᅠ ᅠ
ребят, объясните мне, пожалуйста, что делать, если у меня в процессе вставки методом insertOne() в строчке Document found = database.getCollection("collection").find().first(); вылетает ошибка https://ghostbin.com/paste/rx9rs?
ᅠ ᅠ ᅠ ᅠ
я посмотрел решение с учетом ошибки com.mongodb.MongoSocketReadException: Prematurely reached end of stream здесь https://stackoverflow.com/questions/42150578/mongodb-com-mongodb-mongosocketreadexception-prematurely-reached-end-of-strea, но как решить проблему у себя не пойму
ᅠ ᅠ ᅠ ᅠ
ᅠ ᅠ ᅠ ᅠ
если у меня подключение к кластеру вообще
ᅠ ᅠ ᅠ ᅠ
AstraSerg
Извините, не в курсе. Джавайские стактрейсы повергают в уныние :)
Ivan
Привет!
Что ведёт к росту файлов журнала?
Монга в реплике, не мастер.
Ivan
и есть ли какие-то рекомендации к размеру раздела под journal? Может быть в % от базы? Я не нашёл
Kolya
Ребят, а кто подскажет, если у меня в БД лежит строка и в ней число, и я сделаю поиск с $gte, монга приведет типы и сравнит как число?
Nick
Kolya
Nick
но если вы знаете все варианты типов, то можете использовать$or например вот так
db.getCollection('t1').find({
$or:[
{ddd:"-1"},
{ddd:-1}
]
})
Алексей
При запросе через aggregation теряется курсор. Ошибка "cursor not found". У реплика сета настройка SecondaryPreferred . Если поставить Primary, то все ок. Подскажие пожалуйста что за фигня?
Kolya
yopp
Алексей
Если шлётся 20-30 aggregation запросов в секунду достаточно жирных с lookup, group, sort, cond. Это может стать причиной того что монга съедает всю доступную оперативную память? Я понимаю что очень общий вопрос без конкретики, но все-таки.
Алексей
Или можно по другому сформулировать. aggregation запросы требовательны к памяти?
AstraSerg
AstraSerg
yopp
yopp
ту часть, которую монга использует для кешированния данных вы можете подкрутить, если у вас wt
yopp
другую часть не можете
yopp
но и смысла нет
yopp
вот видите, формулировака проблемы уже изменилась :)
yopp
отключите oom для монги
yopp
если кроме монги на этой ноде есть другие сервисы, их лучше вынести куда-то ещё. или монгу подвинуть на ноду, где ей не надо бороться за память
yopp
если такой возможности нет, попробуйте на 1/4 уменьшить размер кеша для WT
yopp
но это уже может иметь последствия в виде увеличения latency у запросов
Ivan
Алексей
Тем более там данных-то мало. Но съедает 8гб .
db.stats()
{
"collections" : 8,
"views" : 0,
"objects" : 6214295,
"avgObjSize" : 187.630542804936,
"dataSize" : 1165991544.0,
"storageSize" : 664494080.0,
"numExtents" : 0,
"indexes" : 20,
"indexSize" : 348192768.0,
"fsUsedSize" : 25555324928.0,
"fsTotalSize" : 210999894016.0,
"ok" : 1.0
}
Serhio
yopp а чем плох вариант ограничить размер памяти отдельной ручкой?
yopp
yopp
потом эта ручка ограничивает кеш wt
yopp
я не уверен что память для сортировок и прочего туда входит
Алексей
отключите oom для монги
А это нормальная практика? Мне админы говорили что лучше так не делать. На ноде кроме монги важных сервисов нет.
yopp
Тем более там данных-то мало. Но съедает 8гб .
db.stats()
{
"collections" : 8,
"views" : 0,
"objects" : 6214295,
"avgObjSize" : 187.630542804936,
"dataSize" : 1165991544.0,
"storageSize" : 664494080.0,
"numExtents" : 0,
"indexes" : 20,
"indexSize" : 348192768.0,
"fsUsedSize" : 25555324928.0,
"fsTotalSize" : 210999894016.0,
"ok" : 1.0
}
одна аггрегация может использовать толи 64 толи 128 мегабайт памяти под свои цели
yopp
30 агрегаций в секунду по 128 мегабайт, это уже близко к 4 гб
yopp