2010-06-01 2 views
0

공동 은행 금액에서 인출하는 금액에 대한 간단한 데모를 작성해야합니다. Andy와 Jen은 123 번 공동 은행 계좌를 보유하고 있습니다. 그들의 계정에 100 달러가 있다고 가정하십시오 .Jen과 Andy가 동시에 계좌를 운영하고 있으며 동시에 당분간 90 달러를 인출하려하고 있습니다. 내 거래 격리는 읽기 커밋으로 설정되어 있으며 둘 다 돈을 인출 할 수 있습니다 밸런스가 0보다 작아서는 안된다는 제약이 있긴하지만 밸런스는 - (마이너스) 80 $입니다.격리와 함께 발생하는 Concurency 문제 - 읽기 - 위임

최대 절전 모드를 사용하고 있습니다.이 문제를 해결하는 유일한 방법은 다른 격리 수준으로 진행해야합니까?

+1

답변을 알고 있습니까? 그렇지 않다면 .... 숙제가 얼마나 힘든지 알게 될 것입니다. 격언은 희열입니다. –

답변

1

필자는 낙관적 인 잠금이 실제로가는 길이라고 주장하고 싶습니다. (이것은 격리 수준을 변경하는 대신에 동일한 레코드의 동시 액세스가 예외적 인 상황처럼 들릴 것입니다.)

+1

동시 액세스는 은행 응용 프로그램에서 특히 고려해야 할 중요한 사항입니다. 그것은 예외적 인 상황이 아닙니다. – HLGEM

+0

@HLGEM 어쩌면 나는 자신을 정확하게 표현하지 못했지만 동시 접근을 무시하기 위해 내가 쓴 곳을 보여 주시겠습니까? ** 동시성을 다루는 방법 인 ** optimistic ** locking을 사용하도록 제안했는데, 같은 레코드에 대한 동시 액세스가있을 가능성이 낮기 때문에 ** 낙관적 인 ** 이름으로 낙관적 인 잠금이 잘 작동하지 않을 수 있습니다. 높은 동시 응용 프로그램). 질문의 특정 시나리오는 예외적 인 이벤트처럼 들리며 낙관적 인 잠금은 정상적으로 작동합니다. 낙관적 인 잠금 장치가 무엇인지 이해한다면 아마도 투표를 재고해야합니다. –