나는 우리가 (last_x, 카운터) 계정에 대한 정보를 수집하는 프로젝트에서 일하고 있습니다. 사용자 작업으로 인해 여러 비즈니스 이벤트가 생성 될 수 있습니다. 웹에서 단일 사용자 조치가 발생하면 둘 이상의 이벤트가 발생하여 USER HISTORY 테이블에 대한 갱신을 트리거합니다.낙천적 인 잠금 장치에 대한 대안이 있습니까
모든 이벤트가 USER HISTORY 테이블로 업데이트되도록 낙관적 잠금을 수행합니다.
문제 : 여분의
낙관적 잠금 결과 읽기 (충돌이 감지되면, 다시 읽고 갱신) 및 (충돌을 해결 한 후) 추가 쓰기. 시도
솔루션 : 사용자 연혁 표 에 삽입에서
- 모든 이벤트 결과 - 더 히스토리 정보, 가난한 읽기 성능 결과.
다른 대안이 있습니까?
업데이트하는 대신 레코드를 쓸 수 있습니까? 따라서 충돌 가능성이 없습니다. – davidfrancis
쓰기가 발생하면 웹 사이트의 사용자 이벤트와 사용자 기록 테이블의 레코드가 일대일로 매핑됩니다. 카운터 변수와 last_X 변수가있는 테이블이기 때문에. 우리는 최신 기록이 필요합니다. 이는로드하기 전에 모든 이벤트를 정렬해야 함을 의미합니다. 읽기 성능이 떨어지게됩니다. –
즉시 업데이 트하는 것이 중요합니다? – Ben