데드락이란?
두 개 이상의 트랜잭션이 서로가 점유하고 있는 자원을 기다리면서 영원히 대기 상태에 빠지는 상황을 의미한다.
해당 트랜잭션들은 더 이상 진행될 수 없고, 시스템 성능에 큰 영향을 미친다.
예시)
스레드 1이 아이템 1을 가져오고 아이템 2를 가져와야 한다.
스레드 2는 아이템 2를 가져오고 아이템 1을 가져와야 한다.
스래드 1이 아이템 1을 가져오는 것과 스레드 2가 아이템 2를 가져오는 것은 성공했다.
스레드 1의 다음단계인 아이템 2 가져오기와 스레드 2의 다음단계인 아이템 1 가져오기는 서로 맞물려 있어서 대기에 빠지게 되고 데드락이 발생한다.
해결 방법)
타임아웃 설정으로 무한 대기 상태에 빠지게 되는 걸 막고 데드락 상태를 빠르게 탐지하여 해결한다.
복제지연이란?
데이터가 쓰기 DB에서 읽기 DB로 복제되는 과정에서 발생하는 시간 지연을 의미한다.
쓰기 작업이 발생한 후 그 변경 사항이 읽기 DB에 반영되기까지의 지연 시간을 설명하는 데 사용된다.
쓰기 DB: 모든 쓰기 작업(데이터 삽입, 업데이트 삭제 등)을 처리하는 데이터베이스. 마스터 데이터베이스
읽기 DB: 읽기 작업만 처리하는 데이터베이스로, 보통 슬레이브(slave) 데이터베이스 또는 리플리카(replica)라고 한다. 이 데이터베이스는 쓰기 DB에서 복제(replication)된 데이터를 사용함
문제 발생 예시)
쓰기 DB가 업데이트되고 나서 읽기 DB로 전달되기 전에 누군가가 읽기 DB로 요청하게 되면 변경 전 데이터를 반환하게 된다.
해결 방법)
캐시를 사용하여 쓰기 작업 후 바로 캐시를 갱신하고 읽기 작업은 갱신된 캐시에서 제공한다.
메모리릭이란?
프로세스가 더 이상 필요하지 않은 메모리를 할당한 후 이를 해제하지 않음으로써,
해당 메모리가 지속적으로 점유된 상태로 남아있는 현상을 말한다.
캐시압력이란?
메모리가 부족해지면서 발생하는 문제를 말한다.
캐시 압력이 증가하면,
캐시 항목을 삭제하거나 새 데이터를 캐시에 저장하는 동안 대기 상태가 발생할 수 있다.
해결 방법)
캐시 제한 설정, 페이징 전략 최적화, 분산 캐시 사용, 캐시 우회 전략
설정 버전 관리
애플리케이션의 설정 데이터를 시간이나 버전별로 관리하여 항상 최신 데이터를 사용하는 방법.
설정 버전관리의 장점)
빠른 롤백, 변경 이력 추적, 테스트와 배포 용이성, 신속한 복구, 일관된 설정 관리, 가시성 향상
설정 버전관리의 단점)
복잡성 증가, 저장 공간 부담, 인적 오류 가능성
오늘의 tmi)
장애대응 강의는 이론적인 부분이 대부분이어서
실제로 어떻게 적용할 지에 대해서 더 고민해 봐야겠다
실습이 적어 좀 막막하고..더 어렵게 느껴졌다🥲
'TIL' 카테고리의 다른 글
[TIL] 2024/08/27 (0) | 2024.08.28 |
---|---|
[TIL] Write-Behind 캐싱 구현 (0) | 2024.08.21 |
[TIL] DB Lock | 비관적 락 (Pessimistic Locking) | 낙관적 락 (Optimistic Locking) (0) | 2024.08.20 |
[TIL] Session Clustering (0) | 2024.08.17 |
[TIL] 모니터링 (0) | 2024.08.16 |