Computer Engineering/DB(DataBase) 4

Aurora MySQL replica lag 이슈 (복제 지연 이슈)

Aurora replica lag이란? writer 인스턴스의 페이지 캐시와 비교한 Aurora replica의 페이지 캐시에 대한 지연 시간. 같은 스토리지를 활용하지만 각 reader computing instance간의 페이지 캐시에 업데이트 하기까지에는 짧지만 lag이 존재한다. 지연이 길어지는 경우 replica에 연결된 connection에서의 data가 sync되지 않아서 이슈가 발생할 수 있기 때문에 lag이 길어지는지 모니터링 할 필요가 있다. replica lag 발생하는 경우 인스턴스가 동일한 사양인지 체크 reader node의 인스턴스 클래스 구성이 Writer보다 너무 작은 경우 변경 데이터의 볼륨이 너무 커서 리더가 캣이의 데이터를 무효화하고 따라잡 수 없게 됩니다. 여러 세션..

MySQL Isolation Level 정리

MySQL Isolation level은 동시성 제어를 위한 설정 값으로, 동시에 실행되는 여러 트랜잭션 간에 데이터 일관성을 유지하기 위해 사용된다. 값에 따라서 다른 트랜잭션에서 commit을 했더라도 볼 수 있을수도 있고, 없을 수도 있다. Isolation Level을 설정할 때 고려해야 할 점은 데이터 일관성과 성능 사이의 트레이드오프다. Isolation Level이 높을수록 데이터 일관성은 유지되지만 성능이 저하된다. 반면에 Isolation Level이 낮을수록 성능은 좋아지지만 데이터 일관성이 보장되지 않는다. 따라서, 요구사항에 따라서 적절한 Isolation Level을 선택하는 것이 중요하다. 값의 종류는 아래와 같이 4가지로 나누어져 있다. Read Uncommitted Read ..

MySQL kill 명령어 (프로세스 kill하기)

MySQL kill 명령어 KILL [CONNECTION | QUERY] processlist_id MySQL kill command는 실행 중인 쿼리 or 커넥션을 종료시기키 위해 사용되는 명령어입니다. 주로 문제를 발생시킬 수 있는 long query를 show full processlist 명령어로 찾은 후 종료시킬 때 사용됩니다. 주로 모니터링 및 장애시 사용되는 커맨드입니다. MySQL kill 명령어 옵션 및 권한 KILL명령어의 옵션에는 CONNECTION 또는 QUERY가 있다. KILL CONNECTION은 수식어가 없는 KILL과 같다. 이것은 connection에서 실행중인 statement를 종료시킨 후에 proocess_id에 해당하는 connection를 종료시킨다. KILL Q..

MySQL InnoDB History란?

Introduction (시작 전에 이 글은 MySQL 5.6 기준의 글입니다.) 왜 Innodb History에 대해서 알아야 할까요? 1. InnoDB의 MVCC의 동작 원리에 대해 이해하려면 History에 대한 이해가 필요합니다. 2. History List Length가 길어지면 많은 문제들이 발생합니다. (CPU Peak, DML delay) 3. 왜 DBA들이 hung transaction이나 long query를 모니터링하고, Kill 하는지 알 수 있습니다. (커뮤니케이션) MVCC (Multi Version Concurrency Control) 본격적으로 InnoDB History를 살펴보기 앞서 MVCC에 대해서 먼저 간략하게 설명하고 넘어가겠습니다. MVCC를 먼저 설명하는 이유는 ..

반응형