AstraSerg
вот жеж у вас задачки...
yopp
а что, готовых решений на рынке нет?
yopp
с токенизацией и вот этими всеми прелестями?
yopp
я с pci dss плохо знаком, но помоему токенизация была отличным способом изолировать процессинг от мира
Dmitriy
а что, готовых решений на рынке нет?
вы имеете в виду готовый эквайринг? эквайринги из коробки есть, но есть заказ на разработку нового эквайрингового решения
Dmitriy
собственно из-за чего и сыр бор возник
Dmitriy
с токенизацией и вот этими всеми прелестями?
токенизация простите - это что, я видимо этот термин как-то по другому понимаю?
Andrey
доброго времени суток всем! подскажите пожалуйста: сколько серверов в реплика сете допускается для масштабирования кластера? (версия 3,6)
Andrey
12 или больше?
yopp
это когда sensitive authentication data хранится в защищенном изолированном хранилище и покидает его только в сторону шлюзов. всё остальное взаимодействие происходит с использованием случайных токенов
AstraSerg
точно так
такое не получится таки, ведь реплики в любой момент могут стать мастером, а там данные не полные.
yopp
точнее так
AstraSerg
12 или больше?
12 не оптимально. Большие потери на заись. РЕкомендуется 3 максимум 5
AstraSerg
yopp
добавление нод в реплику лучше не считать масштабированием, вы добавляете только read capacity в кластер, при этом write capacity у вас будет равно самой слабой ноде в реплоика сете
yopp
добавление нод в реплика сет, это отказоустойчивость и распределение данных по регионам
yopp
если вам нужно масштабирование, вам нужны шарды
Andrey
добавление нод в реплику это не масштабирование
а что в реплицированном кластере является масштабированием? мне нехвататет точного поределения, может Вы подскажете?
yopp
ничего не является :)
Andrey
ничего не является :)
спасибо, исчерпывающе
Dmitriy
ребят всем большое спасибо за инфу. отдельное спасибо @dd_bb и @AstraSerg. ушел думать!
Andrey
ничего не является :)
полноценным масштабированием и впрямь сложно назвать такой кластер из-за отставания данных и по вышеуказанным причинам
yopp
спасибо, исчерпывающе
то что можно называть масштабированием достигается с помощью шардирования
Andrey
а шардирование через балансир проходит, да?
Andrey
mongos
yopp
это не балансер, это роутер. но всё сложнее. шардирование требует специального реплика сета для хранения карты данных и конфигурации и mongos
Andrey
наверное надо опять почитать
Andrey
спасибо!
yopp
и одного и более реплика сета
yopp
каждый реплика сет будет хранить кусок данных
Andrey
а мастер так же один останется?
yopp
в каждой реплике будет свой праймари
AstraSerg
12 не оптимально. Большие потери на заись. РЕкомендуется 3 максимум 5
вот здесь "зашитые" ограничения: A replica set can have up to 50 members but only 7 voting members. Но, видимо, @b0om4ik нужна не реплика, а шардинг.
ᅠ ᅠ ᅠ ᅠ
ребят, объясните мне, пожалуйста, что делать, если у меня в процессе вставки методом 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, монга приведет типы и сравнит как число?
Kolya
нет
Понял, спасибо
Nick
но если вы знаете все варианты типов, то можете использовать$or например вот так db.getCollection('t1').find({ $or:[ {ddd:"-1"}, {ddd:-1} ] })
Алексей
При запросе через aggregation теряется курсор. Ошибка "cursor not found". У реплика сета настройка SecondaryPreferred . Если поставить Primary, то все ок. Подскажие пожалуйста что за фигня?
Алексей
Если шлётся 20-30 aggregation запросов в секунду достаточно жирных с lookup, group, sort, cond. Это может стать причиной того что монга съедает всю доступную оперативную память? Я понимаю что очень общий вопрос без конкретики, но все-таки.
Алексей
Или можно по другому сформулировать. aggregation запросы требовательны к памяти?
yopp
ту часть, которую монга использует для кешированния данных вы можете подкрутить, если у вас wt
yopp
другую часть не можете
yopp
но и смысла нет
Алексей
монга будет стараться всю память задействовать
Так ладно если бы просто использовала. Так она съедает всю память и крашит.
yopp
вот видите, формулировака проблемы уже изменилась :)
yopp
отключите oom для монги
yopp
если кроме монги на этой ноде есть другие сервисы, их лучше вынести куда-то ещё. или монгу подвинуть на ноду, где ей не надо бороться за память
yopp
если такой возможности нет, попробуйте на 1/4 уменьшить размер кеша для WT
yopp
но это уже может иметь последствия в виде увеличения latency у запросов
Алексей
Тем более там данных-то мало. Но съедает 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
потом эта ручка ограничивает кеш wt
yopp
я не уверен что память для сортировок и прочего туда входит
Алексей
отключите oom для монги
А это нормальная практика? Мне админы говорили что лучше так не делать. На ноде кроме монги важных сервисов нет.
Serhio
А это нормальная практика? Мне админы говорили что лучше так не делать. На ноде кроме монги важных сервисов нет.
с админской точки зрения и говорю) лучше не отключать. Я использовал --wiredTigerCacheSizeGB + ограничение памяти в контейнере
yopp
30 агрегаций в секунду по 128 мегабайт, это уже близко к 4 гб