MariaDB Deadlock 재현과 원인 추적 — 두 세션 잠금 순서로 이해하기
도입 Deadlock은 두 트랜잭션이 서로 상대방의 잠금 해제를 기다리는 순환 대기다. InnoDB는 이를 감지하면 한 트랜잭션을 희생시켜 오류 1213을 반환하고 다른 트랜잭션이 진행하게 한다. 재시도는...
운영 검색 결과: 48개
도입 Deadlock은 두 트랜잭션이 서로 상대방의 잠금 해제를 기다리는 순환 대기다. InnoDB는 이를 감지하면 한 트랜잭션을 희생시켜 오류 1213을 반환하고 다른 트랜잭션이 진행하게 한다. 재시도는...
도입 Composer 오토로더 최적화는 한 가지 스위치가 아니다. 기본 PSR-4 탐색을 classmap으로 바꾸는 수준과 classmap에 없는 클래스는 존재하지 않는다고 확정하는 수준은 제약이 다르다. ...
도입 최소 권한은 GRANT 문장을 작성하는 것으로 끝나지 않는다. 애플리케이션이 필요한 작업은 성공하고, 스키마 변경·계정 관리·시스템 테이블 조회는 실패하는지 실제 계정으로 확인해야 한다. 아래 SQL은 M...
도입 fetch()는 HTTP 500에서 자동으로 예외를 던지지 않으며, 업무에 맞는 제한 시간도 대신 정해주지 않는다. 사용자는 이미 화면을 떠났는데 요청이 계속되거나, 실패한 POST가 재시도되어 중복 결제...
도입 덤프 명령의 성공은 마이그레이션 완료가 아니다. 구조, 데이터, 루틴·이벤트, 문자셋과 애플리케이션 동작이 대상에서 검증되어야 한다. 이 글은 InnoDB 데이터베이스 하나를 새 서버로 옮기는 절차와 각 ...
도입 ALTER TABLE이 끝나지 않을 때 테이블 크기만 의심하면 원인을 놓칠 수 있다. Waiting for table metadata lock 상태라면 다른 세션의 열린 트랜잭션 때문에 DDL이 시작되지 ...
도입 웹 서비스를 직접 운영하려면 애플리케이션이 실행될 컴퓨터가 필요하다. 물리 서버를 구매하면 초기 비용과 설치 시간이 발생하고, 트래픽 변화에 맞춰 용량을 조정하기도 어렵다. Amazon Elasti...
도입 서비스 운영에서 “안정적이다”는 표현은 모호하다. 기준이 없으면 장애 판단도 달라진다. 그래서 실무에서는 숫자로 목표를 정의한다. 대표 개념이 SLA, SLO, SLI다. 세 개는 항상 같이 등...
도입 외부 API나 다른 서비스가 느려지면 내 서비스까지 같이 느려지는 경우가 많다. 문제는 실패 자체보다 장애가 연쇄적으로 퍼지는 상황이다. 이걸 막기 위한 대표 패턴이 Circuit Breake...
도입 기능 배포는 했지만 사용자에게 바로 공개하면 위험한 경우가 많다. 특히 결제, 정산, 신규 UI 같은 기능은 문제가 생기면 영향 범위가 크다. 이때 사용하는 방식이 Feature Flag다. ...