대용량 데이터 처리 회고 - 5

Ahn yi·2022년 12월 11일
0

java

목록 보기
19/22

대용량 데이터 처리 회고 - 5

  • Jmeter를 활용해 보았다. API만 만들고 테스트를 진행하는 거라 Postman과 비슷하다고 생각했다. 다만 차이가 있다면 값 및 반복에 대해 지정할 수 있다는 것?
    테스트 해본 결과, 이전 글에서 밝혔듯이 두 가지를 고려해 보았다
1. 한 사람의 사용자가 한 권의 책에 대해 여러권을 대여할 수 없어야 한다.
2. 여러사람이 단기간에 대여했을 경우 재고가 0이하로 떨어지게 되는 것을 막하야 한다.

문제의 발생상황을 순서대로? 나열해보자면

1. 한 명의 사용자가 도서 연속 대여가 가능했다
2. 여러명의 사용자가 재고가 1인 도서를 대여할 수 있었다.

각각의 해결 방법에 대해서는

1. 사용자ID, 도서ID를 복합 Key로 걸어 해결하였다.
2. Lock을 걸어 해결하였다.

새로운 문제점이 발생하였다!

1. Thread Pool을 5로 설정해두어 5명의 사용자가 동시에 들어가 exception이 발생!
2. 위와 같은 이유로 DeadLock이 발생!

Jmeter 테스트 결과 에러가 종종? 대부분 발생하였다.
Isolation Level도 변경해 보았지만 에러가 나는 것은 변하지 않았고, 마지막에 들던 생각은 실제 사용자 입장에서 서버 타임아웃으로 튕겨나가는 경우도 있으니 에러가 나는게 당연한게 아닐까? 라는 생각까지 하게 되었다.

  • 쉽지 않을거라 생각했지만 처음 보는 해결 되지 않을거 같은 에러의 발생으로 주눅도 들고 오기도 생기게 되었다. 에러의 합리화 진행중...
profile
소통을 잘하고싶은 백엔드 개발자

0개의 댓글