Распределенный досутп к записям таблицы
От: PanychY  
Дата: 24.11.14 17:10
Оценка:
Приветствую

Есть такая, довольно глупая, но задача:
Есть в БД таблица на N>100000 записей. По сути запись — данные в некой очереди на обработку. Каждая запись обрабатывается независимо. Пока исполнитель был один, проблем не было, но планируется распараллелить просцесс(1 исполнитель справится с данными чуть более чем за месяц, что не есть приемлемо). Вопрос, можно ли на уровне БД сделать так что, что-бы каждый из работающих с базой исполнитель на запрос получал записи не выданные ранее записи другим исполнителям(не обрабатывать данные дважды). Исполнитель конечно может после обработки пачки данных пометить их обработанными, но это будет поздно. Вариант предварительным распределением записей по исполнителям не слишком подходящий, ибо: 1) если исполнитель сломался, данные останутся не обработанные; 2) новый исполнитель — опять перераспределить данные; 3) собственно исполнители идентичны, т.е. исполнитель не вкурсе какие данные для него, а какие для остальных.

Собственно ищется решение на стороне БД: какой-то хитрый запрос, или вызов хитрой процедуры, или конфигурация соединения?
Модифицировать под это Исполнитель было бы решением более правильным, но к сожалению на порядки дороже и дольше(и ещё тележка проблем при этом).
СУБД — Оракл.

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.