Как гарантировать целостность данных для одновременных операций Rails / Active Record - PullRequest
0 голосов
/ 30 ноября 2011

Мне нужно реализовать функцию для сайта rails, которая будет включать чтение и экспорт большей части моей базы данных.

Я знаю, что эта операция займет некоторое время. Это нормально - у меня отсроченная работа для этого.

Что меня беспокоит, так это то, что данные меняются во время выполнения задания, и результирующий экспорт из-за этого искажается.

Моей первоначальной мыслью было выполнение всех операций чтения в транзакции. Тем не менее, я также хотел бы выполнять чтения одновременно, если это возможно. Документы ActiveRecord говорят, что Транзакции не могут быть разделены между Соединениями, и Соединения не могут быть разделены между Потоками. Так что, похоже, я ограничен одним потоком с этим подходом.

Есть предложения для обхода? Есть ли другой способ дать работе согласованное представление данных, которые не связаны с транзакциями? Или есть какая-то альтернатива ActiveRecord / Mysql, которая может распределять транзакции по потокам?

...