트랜잭션 할당량

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기2분
  • 트랜잭션 할당량을 사용하면 다양한 유형의 트랜잭션에 대한 할당량 정책을 정의할 수 있습니다. 트랜잭션 할당량은 정책을 위반하는 모든 트랜잭션을 취소하고 사용자에게 취소를 알립니다.

    Transaction Quotas 플러그인은 모든 새 인스턴스와 업그레이드된 인스턴스에서 기본적으로 활성화됩니다.
    그림 1. 트랜잭션 취소됨
    취소된 트랜잭션
    또한 트랜잭션 할당량은 취소 메시지를 로그 파일에 경고로 기록합니다.
    그림 2. 트랜잭션 취소된 로그
    취소된 트랜잭션의 로그

    일반적으로 관리자는 성능이 저하된 쿼리 및 스크립트가 시스템 리소스를 소비하지 않도록 트랜잭션 할당량을 설정합니다. 이렇게 하면 다른 트랜잭션이 실행되지 않을 만큼 충분한 자원을 소비하는 트랜잭션이 없습니다. 또한 관리자는 취소 로그 메시지를 확인하여 과도한 자원을 소비할 수 있는 트랜잭션을 식별할 수 있습니다.

    트랜잭션 할당량 작동 방식

    트랜잭션은 트랜잭션을 취소하는 백그라운드 스레드인 할당량 관리자를 사용합니다. 할당량 관리자는 다음 작업을 수행합니다.
    1. 아래 목록과 유사한 활성 트랜잭션 목록을 가져옵니다. 사용자 관리 > 활성 트랜잭션.
    2. 각 트랜잭션을 순환하고 트랜잭션과 일치하는 조건으로 모든 할당량 규칙을 확인합니다. 할당량 한도를 초과하는 첫 번째 발생은 트랜잭션 취소를 트리거합니다. 트랜잭션이 변경되거나 새 할당량 규칙이 있는 경우 할당량 관리자는 트랜잭션을 다시 평가합니다.
      주:
      할당량 규칙의 순서 필드는 할당량 규칙을 확인하는 순서에 영향을 줍니다. 할당량 관리자는 순서가 낮은 규칙을 먼저 검사하지만(예: 순서 90보다 순서 80이 먼저) 최종적으로는 모든 규칙을 검사합니다. 이는 관련된 규칙의 조건에 따라 성능에 미미한 영향을 미칠 수 있습니다.
    3. 트랜잭션이 지정된 할당량 최대값보다 오래 실행된 경우 트랜잭션을 취소합니다.
    4. 실행 중인 트랜잭션을 로깅합니다.
    5. glide.quota.manager.heartbeat 시스템 속성에 의해 제어되는 다음 하트비트까지 일시 중지됩니다.

    트랜잭션 취소 예시

    트랜잭션은 여러 가지 이유로 취소될 수 있습니다. 다음 표시기를 찾습니다.

    • 최대 실행 시간 초과됨: 이 메시지는 glide.quota.manager 스레드가 트랜잭션을 취소할 때 나타납니다.
    • 다른 트랜잭션에 의해 취소됨: 이 메시지는 glide.quota.manager 스레드가 아니라 트랜잭션을 처음 발행한 세션 스레드에 의해 트랜잭션이 취소된 경우에 나타납니다.
    • 사용자 요청에 의해 취소됨: 이 메시지는 사용자가 빨간색 X 버튼을 클릭하여 실행 중인 트랜잭션을 취소했을 때 나타납니다.
    glide.quota.manager에 의해 취소된 트랜잭션을 찾으려면 [메시지] [포함] [최대 실행 시간 초과] 조합을 검색합니다. 예:
    Cancelling transaction /home.do - Default-thread-11.0 (maximum execution time exceeded): Thread Default-thread-11.0 (Default-thread-11.0, F530DD111B11111111FC031767DA158E), after 30000ms
    .