Ractor 모델을 기반으로 트랜잭션 복사 재생 성능 최적화

1. 배경

대기 데이터베이스가 트랜잭션을 재생할 때 서로 독립적인 여러 트랜잭션을 동시에 재생할 수 있습니다. 이 방법은 주로 동시에 재생할 수 있는 여러 트랜잭션의 동시 재생 문제를 해결하는 데 사용됩니다. 여러 동시 검색 스레드를 통해 사물 재생 대기열이 동시에 검색되고, 동시에 재생할 수 있는 여러 사물이 생성되며, 동시 재생을 위해 재생 스레드에 알림이 전달됩니다.

2. 데이터 구조 설계

대기 데이터베이스의 트랜잭션 데이터는 트랜잭션 ID에 따라 분할되어 대기 데이터베이스의 트랜잭션 데이터 대기열에 저장됩니다. 트랜잭션 ID UUID의 완전히 무질서한 특성에 따라 UUID를 동시에 스캔할 수 있습니다. 거래 ID 세그먼트별. 사물 ID UUID를 분할한 후 여러 스캐닝 스레드 코루틴으로 전달됩니다. 각 스캐닝 스레드는 특정 UUID 파티션을 담당하여 여러 스캐닝 스레드를 통해 동시 스캐닝을 수행하고 재생할 수 있는 항목을 스캔합니다.

3. 스레드 수명주기

스캔 스레드가 재생할 수 있는 항목을 찾으면 사물 ID를 txnList에 추가하고 대기열 작업을 수행합니다. 사물 ID를 추가한 후 스캔 스레드는 알림 작업을 수행하고 절전 모드인 재생 스레드를 깨워 작업을 수행합니다. 트랜잭션 재생 작업의 개략도는 아래 그림 2를 참조하세요.

재생 스레드 코루틴의 수명 주기는 그림 3과 같습니다. 재생 스레드는 시작된 직후 절전 상태에 있으며, 트랜잭션 재생이 있을 때 무작위로 깨어납니다. 활성화된 재생 스레드 코루틴은 트랜잭션 재생 작업을 수행하고 트랜잭션 종속성을 정리합니다.

재생 가능한 트랜잭션이 발견되면 재생 가능한 트랜잭션 수가 1인 것으로 확인되면 현재 코루틴은 재생 가능한 트랜잭션이 두 개 이상 발견되면 CPU 전환 비용을 줄이기 위해 재생을 수행합니다. 첫 번째 제거 재생 가능한 트랜잭션의 경우 txnList를 추가하여 트랜잭션 재생을 위한 다른 코루틴을 깨워 재생의 동시성 성능을 향상시킵니다.

4. 동시 전환 문제

동시 정리를 채택할 경우 CPU 전환 문제로 인해 아래 그림 4와 같이 반복적으로 발견되는 재생 가능한 트랜잭션을 처리하고, 반복적으로 발견되는 동일한 트랜잭션 ID에 대해 방어적인 멱등성 처리를 수행해야 합니다. 따라서 멱등성 처리를 위해 재생 가능한 각 트랜잭션마다 txnIDSet을 도입해야 합니다.

5. 재생이 끝났는지 판단하는 방법

동시 검색 및 동시 재생이 채택되었으므로 재생 가능한 모든 트랜잭션의 재생이 완료된 후 재생 프로세스를 종료해야 합니다. 재생 종료에 대한 정의는 다음과 같습니다.

재생 가능한 모든 트랜잭션이 재생되면 재생이 완료된 것으로 간주됩니다. 재생 가능한 트랜잭션은 과거에 발견된 재생 가능한 트랜잭션/현재 발견된 재생 가능한 트랜잭션/미래에 발견된 재생 가능한 트랜잭션의 세 가지 범주로 나뉩니다.

과거에 발견된 재생 가능 트랜잭션은 txnList에 추가됩니다. 현재 발견된 재생 가능 트랜잭션은 나중에 발견된 재생 가능 트랜잭션은 UUID를 검색하는 스캐닝 스레드에 의해 발견됩니다.

  • 과거에 발견된 트랜잭션의 재생을 종료하는 조건은 txnList가 비어 있다는 것입니다.
  • 이제 트랜잭션 재생이 종료되는 조건은 모든 WorkerStatus의 합이 0이라는 것입니다.
  • 향후 발견된 트랜잭션의 재생이 종료되는 조건은 재생 가능한 트랜잭션에 대한 GatherAll 스캐닝으로 모든 스캔 스레드를 발견할 수 없다는 것입니다.

6. 성능 튜닝

CPU 수에 따라 스캐닝 스레드와 재생 스레드의 재생 코루틴 수를 동적으로 조정하여 두 코루틴의 부하를 합리적으로 분산시킬 수 있습니다. 이렇게 하면 멀티 코어 프로세서의 성능을 최대한 활용하고 시스템 처리량과 응답성이 향상됩니다.

오픈 소스 산업용 소프트웨어를 포기하기로 결정했습니다 . 주요 이벤트 - OGG 1.0 출시, Huawei가 모든 소스 코드를 제공했습니다. Google Python Foundation 팀이 "코드 똥산"에 의해 해고되었습니다 . ". Fedora Linux 40이 정식 출시되었습니다. 유명 게임 회사가 출시했습니다. 새로운 규정: 직원의 결혼 선물은 100,000위안을 초과할 수 없습니다. China Unicom은 세계 최초로 오픈 소스 모델의 Llama3 8B 중국어 버전을 출시했습니다. Pinduoduo는 보상금을 선고 받았습니다 . 불공정 경쟁에 500만 위안 국내 클라우드 입력 방식 - 화웨이만 클라우드 데이터 업로드 보안 문제 없음
{{o.이름}}
{{이름}}

추천

출처my.oschina.net/u/5148943/blog/11045388