AWS Aurora for MariaDB를 사용하다 보면 트랜잭션이 락을 점유한 상태로 오래 유지될 수 있습니다. 이렇게 되면 다른 트랜잭션이 대기해야 하며, 성능 저하나 데드락 문제가 발생할 수 있습니다. 이를 방지하기 위해 트랜잭션이 일정 시간 이상 락을 유지하면 자동으로 롤백되도록 설정하는 방법을 정리했습니다. 1. innodb_lock_wait_timeout 설정 (트랜잭션 대기 시간 제한) InnoDB에서 트랜잭션이 더 읽기
mariadb
AWS Aurora MariaDB에서 autocommit=false 설정 시 Spring Batch 중단 시 트랜잭션 롤백 여부
1. 문제 상황 Spring Batch에서 AWS Aurora MariaDB를 사용하고 있으며, autocommit=false로 설정된 상태에서 작업 중 Pod 또는 Node가 강제 종료되면 미처리된 데이터가 자동으로 롤백될까, 아니면 락이 걸린 상태로 남아 있을까? 2. Aurora MariaDB의 트랜잭션 롤백 동작 Aurora MariaDB는 클라이언트 세션이 비정상적으로 종료되면 해당 세션의 트랜잭션을 자동으로 롤백한다.즉, 다음과 같은 상황에서는 더 읽기
Spring Batch 멀티스레드 환경에서 HikariCP Connection Leak 문제 해결 방법
개요Spring Batch에서 멀티스레드 환경을 사용한 후 HikariCP의 Connection Leak 경고가 발생하는 문제에 대해 분석하고 해결 방법을 정리합니다.특히 멀티스레드와 HikariCP의 connection-pool 설정, 트랜잭션 관리 방식, DAO 호출 구조가 Connection Leak에 미치는 영향을 집중적으로 다룹니다.
HikariCP 설정과 Connection Leak 원인 분석 사용된 HikariCP 설정은 다음과 같습니다. minimum-idle: 2 maximum-pool-size: 30 더 읽기