Множественная запись и транзакции в пайплайне, возможно ли?

Речь даже не о mongodb, а в целом о базах данных. Сама проблема: Есть очень нагруженный сервис в который ежесекундно прилетает много сообщений из раббита. Insert/Update - выполняются долго, если сравнивать с BulkWrite. Пришла следующая идея - в команд хендлерах ловить команды, и описывать пайплайн некоторой логики внутри обработчика команды. К примеру там может быть 2 операции вставки и 3 операции обновления. Дальше этот пайплайн отправляется в очередь на исполнение, а из очереди воркер в какой-то минимальный промежуток времени достает последние 2000 пайплайнов и выполняет их (выполняет операции с базой путем массовой записи через BulkWrite). Таким образом можно экономить кучу процессорного времени. Но в таком случае не понятно можно ли тут как-то использовать транзакции по пайплайну. Т.е. так что бы операции выполнялись не атомарно, но при этом если на каком-то этапе записи произошла ошибка, была возможность откатить конкретный пайплайн, а не все что достали из очереди. Надеюсь понятно описал.

В целом хочется узнать есть ли подобные технологии которые позволяют работать с массовой записью, которая обеспечивает консистентность данных, буду рад любому совету, любой ссылке


Ответы (0 шт):