редис. Чем принципиально отличаются транзакции в этих технологиях. Читаю доки обоих, слабо понимаю различия. В монге, объект блоикруется при попытке его изменить другим клиентом. А как в редисе это работает?
ни в монге ни в редисе транзакций в их классическом понимании нет в монге это оптимистичные блокировки в редисе транзакции эмулируются с помощью watch
"оптимистичные блокировки" - разве эти две штуки не противоречат друг другу?
https://stackoverflow.com/questions/129329/optimistic-vs-pessimistic-locking
т.е. можно резюмировать, что у монги они оптимистичные, а у редиса можно организовать пессимистичные, верно я Вас понял? И чтобы глубже понять разницу, читать про эти термины, верно?
ок, я просто блокировку воспринял буквально
я бы вообще монговскими так называемыми транзакциями пользоваться не рекомендовал и в принципе если вам нужна хоть какая то консистентность данных
По этом моменту я не ошибаюсь, я правильно понял Вас?
ну в редисе на основе watch тоже оптимистичный лок, просто в монге за вас условный watch на документах будет вызывать монговский менеджер транзакций
Раньше атомарность / транзакция в монге гарантировалась на документ, только один. Меняешь два документа - гарантий нет. Что-то они доделывали, но лучше читать доки.
https://docs.mongodb.com/manual/core/transactions/
Там MAV вместо консистентности
Обсуждают сегодня