Java 21 Virtual Thread Configuration on spring-boot 3.2.x

이 글을 읽기 전에 아래 글을 먼저 읽기를 추천드립니다. 먼저 Virtual Thread를 적용하기 전에 제약에 대한 이해가 필요합니다. ISSUE: Pinning inside synchronized spring-boot 3.2.x 에서 드디어 JEP-444 Virtual Thread 기능을 활성화 시킬 수 있습니다.Virtual Thread 와 관련된 자세한 내용을 알고 싶으시면, Oracle 공식 문서를 확인하는 것을 추천합니다.(기존 Thread는 Platform Thread라고 부르네요.) 결론 부터 말씀드리면 서비스가 … Read more

Virtual Thread Pinning Issue

ISSUE: Pinning inside synchronized 대부분의 애플리케이션은 RDB를 통해서 영속화 합니다. 제가 관리하는 서비스 경우에는 MySQL 를 사용하고 있습니다. 대부분의 jdbc-driver 코드 내에는 동시성 이슈를 처리하기 위해서 synchronized 를 이용해서 구현되어 있습니다. 이것 때문에 Carrier Thread에서 lock이 걸리는 일명 pinning(고정) 이슈가 있으며, 이것 때문에 성능 저하가 큽니다. 대표로 jdbc-driver를 예로 들긴 했지만 jdbc-driver 만의 문제는 아닙니다. … Read more