История изменений
Исправление k0valenk0_igor, (текущая версия) :
На минуточку в PostgreSQL блокировка per-row.
Вы не учитываете, что при наложенной блокировке «на строку», хранилище JSONB все равно будет блокировано эксклюзивно, поскольку физически оно есть поле строки в таблице. То есть мы все равно получим лок на процесс вздумавший изменить что-то в коллекции документов, которая суть поле JSONB. Ну и чем же это лучше подхода Mongo?
Альтернативой для Postgre могло бы быть введение новых типов блокировок на часть (!) поля. Но честно сказать, я с трудом представляю как это возможно чисто архитектурно без существенной потери быстродействия.
Но даже если представить, что это получилось, то все равно у Postgre будет огромная проблема при блокировании данных находящихся в разных полях JSONB (а тем более в разных таблицах, не говоря уж на разных нодах).
А у Mongo проблем с этим нет. Mongo именно из-за отказа от ACID легко и непринужденно справляется с такими задачами и выигрывает на этом.
Есть еще интересная базка - OrientDB. Она вроде как документо-ориентированная, но умеет транзакции и вообще гарантирует ACID. Гарантирует-то гарантирует, но только в пределах нода. То есть как только речь заходит о шардинге - гарантии отменяются.
Исходная версия k0valenk0_igor, :
На минуточку в PostgreSQL блокировка per-row.
Вы не учитываете, что при наложенной блокировке «на строку», хранилище JSONB все равно будет блокировано эксклюзивно, поскольку физически оно есть поле строки в таблице. То есть мы все равно получим лок на процесс вздумавший изменить что-то в коллекции документов, которая суть поле JSONB. Ну и чем же это лучше подхода Mongo?
Альтернативой для Postgre могло бы быть введение новых типов блокировок на часть (!) поля. Но честно сказать, я с трудом представляю как это возможно чисто архитектурно без существенной потери быстродействия.
Но даже если представить, что это получилось, то все равно у Постгри будет огромная проблема при блокировании данных находящихся в разных полях JSONB (а тем более в разных таблицах, не говоря уж на разных нодах).
А у Mongo проблем с этим нет. Mongo именно из-за отказа от ACID легко и непринужденно справляется с такими задачами и выигрывает на этом.
Есть еще интересная базка - OrientDB. Она вроде как документо-ориентированная, но умеет транзакции и вообще гарантирует ACID. Гарантирует-то гарантирует, но только в пределах нода. То есть как только речь заходит о шардинге - гарантии отменяются.