목록Database (3)
Lewis's Tech Keep

Spring Boot에서 Isolation level은 transaction 단위로 작동하는가? 결론 : Yes 참고링크 : https://taetaetae.github.io/2016/10/08/20161008/ package org.springframework.transaction.annotation; Isolation 클래스 (https://lion-king.tistory.com/entry/SpringSpring-Boot-Transactional-isolation-%EC%98%B5%EC%85%98-%EC%A2%85%EB%A5%98-%EB%B0%8F-%EC%84%A4%EB%AA%85 ) annotation으로 설정한 순간 Isolation enum의 TransactionDefinition interfa..

에러 원인 앱이 스키마 업그레이드에 의해 변경된 테이블을 쿼리하는 경우 (즉, 앱이 변경된 테이블에서 업그레이드 전후에 쿼리를 실행 한 경우) postgres 드라이버는 일부 스키마 세부 정보를 캐싱하기 때문에 오류를 반환한다. https://stackoverflow.com/questions/34180932/error-cached-plan-must-not-change-result-type-when-mixing-ddl-with-select-via pg jdbc 에서 preparedStatement를 효율적으로 하기위한 caching 을 저장하는데 아무것도 설정하지 않았을 경우 prepareThresold 가 5개로 유지되고 요청이 많았을 경우 해당 5개에 저장된 preparedStatement의 스키마가 ..

계기 사실 글을 쓰게 된 계기가 아주 부끄럽다. 동료 분과 이야기 '낙관적 락'에 대한 이야기를 하다가 나의 무식을 뽐내었기 때문이다. 근래에 '낙관적 락'이라는 단어에 꽂힌 나는 이런 이야기를 하였다. "낙관적 락을 걸면 팬덤 리드의 문제가 없어질 수 있을까요?" 라는 말을 하였고 이에 대해 동료는 매우 의아하게 대답하였다. 동료 분은 "낙관적 락 자체가 트랜잭션간의 충돌이 잘 일어나지 않는다고 가정하고 버저닝을 거는 것인데 애초에 그런 상황이 거의 없지 않을까요?" 라고 이야기하였다. 나는 그 시점에 회사의 어플리케이션에서 트랜잭션에 락이 걸려있지 않은 부분에서 디버깅을 하다가 트랜잭션 고립 레벨로 인한 이슈 중 팬덤 리드(Phantom Read) 문제가 일어났다고 착오했던 현상이 있었고 잘못 이해하..