yopp
но очередь это лишнее звено
Маrаt
http://highscalability.com/blog/2013/5/1/myth-eric-brewer-on-why-banks-are-base-not-acid-availability.html тут вроде о таком подходе рассказывают
yopp
да
yopp
овердрафт это яркий пример того как разрешаются проблемы с consistency :)
yopp
очередь снижает latency
yopp
если у вас операции обрабатываются раз в 10 секунд, то у вас максимальная задержка — 10 секунд
yopp
и в среднем она будет где-то 5
yopp
а с очередью она будет примерно равна глубине очереди
yopp
это если ну никак нельзя подождать 5 секунд и надо asap
yopp
yopp
что вы за 10 секунд операции выбрали и по одной их обработали, что у вас консумер по одной их из очереди достаёт
yopp
разница только во времени ожидания обработки
yopp
у вас в любом случае операции линейные
✙ Nikita
ולאד
yopp
yopp
транзакционная целостность переоценена
yopp
это не единственная модель при которой можно добится необходимого результата
ולאד
вообще, денежные переводы на хайлоде дело интересное
✙ Nikita
yopp
да, конечно
yopp
вам больше одного в 99.9% случаев никогда и не понадобится
yopp
мало где есть такой поток денег
yopp
yopp
на запись транзакций нет ограничений в параллелизме
yopp
а вот на обработку транзакций — есть
yopp
транзакция в таком случае это стейтмашина
yopp
у неё есть начальное состояние, в котором она записывается и есть какой-то конечный набор состояний, в которое она перейдёт по результатам обработки
yopp
и обработчик — единственный процесс
Александр
Да, вы точнее сформулировали)
Александр
Есть какая-то книга, почитать про эти подходы?
Александр
Я просто жил в убеждении что без ACID, constraint и транзакций жить нельзя. Потом почитал как люди с принципиально однопоточными СУБД типа Редиса и Тарантула работают. А теперь вижу что и в многопоточной монге, с помощью очередей вполне можно целостность обеспечить.
Теперь есть чувство, что я много чего упускаю
Viktor
Всем привет
Подскажите кто как делает миграции в mongodb?
Есть ли какой нибудь общепринятый подход к миграциям, тулзы? имею ввиду добавление индексов, коллекций и пр
✙ Nikita
Можно ли использовать MongoDB Atlas если у меня не AWS/GCP/Azure ? а то они только про них и твердят на сайте, я вот не могу понять
ולאד
Daniil
Daniil
Вам в принципе вообще побоку на какой платформе будет
✙ Nikita
✙ Nikita
я думал они типа интегрируются как то с этими провайдерами
✙ Nikita
и они типа всю настройкy вместо меня проделают на сервисе который я выберу?
Daniil
Daniil
По сути там один клик и все развернется
Daniil
Выбор платформы/региона имеет значения например для тех, кто юзает амазон в определённом регионе, чтобы апп-сервера и кластер бд были рядом например
✙ Nikita
ну а вообще эти 57$ стоят того? (беслпатный план не подходит, данных больше чем он позволяет хостить)
просто сейчас монга хоститься самостоятелньо на сервере за 15$ и типа есть ли смысл мигрировать за счет того что саппорт сервера будут делать они?
Daniil
Daniil
Ну и удобство
Daniil
В целом это копейки же, но если на данном этапе это значимые деньги для проекта, то можно и на селф хостед решении оставаться
Viktar
Viktor
Mika
Доброго дня всем. Скажите, уважаемые, есть ли в MongoDB Atlas возможность использовать разные ключи для шифрования разных бд, кластеров или коллекций в пределах одного проекта? Пока что я нашёл только возможность шифровать проект одним ключом для всех пользователей и всего набора данных.
Женя
Всем привет
У меня стоит автоинкремент на _id
const orders = await Order.find({ $or: [{ 'info.email': { $regex: search, $options: 'i' } }, { _id: { $regex: search, $options: 'i' } }] });
я ищу на совпадение по id или у email
но я не могу понять в чём проблема
Cast to number failed for value "i" at path "_id" for model "Order"
Anonymous
Ребят вот у меня есть база, там есть пользователи с _id и у каждого пользователя есть code
И я хочу сделал функцию что бы перебирала все code и если к примеру похоже на "codenone" то принт
Anonymous
Можете помочь как это реализовать в плане монго
Anonymous
{"_id":181818, "code":"codenone"}{"_id":181818, "code":"codenone"}{"_id":181818, "code":"codenone"}
К примеру я перебрал курсор и получил такую картину, как мне из всех этих перебирать code
Дмитрий
Не очень понятно, что перебирать и с какой целью?
Дмитрий
Делаете выборку, кладёте в переменную и циклом уже теребонькаете.
Ну или я не понял =)
Anonymous
Извеняюсь, я уже взял через get
Anonymous
Спасибо вам)
✙ Nikita
✙ Nikita
Насколько законно изменять способ генерации поля _id в монге? Например мне нужен не длинный ObjectId, а autoincrement, или наоборот, UUID какой-то?
yopp
И это тоже
yopp
yopp
ObjectID это и есть UUID, с чуть меньшей энтропией
yopp
✙ Nikita
просто например есть чеки, и нужно чтобы кассир видел порядковый номер чека, вместо ObjectID, который он может скинуть в случае возникновения проблем
✙ Nikita
или это лучше просто отдельным полем сделать?
yopp
✙ Nikita
чтобы он мог сказать "в чеке номер 235 неверно посчитана общая сумма", а не "в чеке за 12 число в 12:35 на контрагента Василий на сумму 320 неверно посчитана сумма"
✙ Nikita
банальный пример такой
yopp
yopp
Первый вариант это решение несуществующей проблемы