하루 1천만건의 데이터가 쌓인다고 할때
3대의 서버에서 같은 테이블을 동시에 SELECT를 해서 처리하려 하는데요
문제는 각서버에서 중복없이 데이터를 가져와야 한다는 겁니다.
즉 A서버에 이미 SELECT를 해서 가져온 데이터는 다른 서버에서는 그값을 가져오면 안되는데
지금 사용하는 방법이 PROC/C에서 FOR UPDATE를 걸어서 사용하고 있습니다.
FOR UPDATE하는동안은 다른 서버에서 그 테이블을 SELECT할수 없어서 concurrent 처리는 안되던데
FOR UPDATE를 하지 않고 SELECT 처리할수 있는 방안이 없을까요?
그리고 처리순서는 시간순이어야 합니다. 즉 A는 10시부터, B서버는 2시부터 이렇게 하지 않고
3대의 서버가 동시에 미처리된 데이터를 시간순으로 가져와서 처리해야 합니다.
내공부족으로 아무리 고민해봐도 딱히 방법이 없어서 글올립니다.
리플좀 달아주세요
|