AWS Redshift를 사용하여 분석 쿼리를 수행하고 있습니다. 쿼리는 계산을 수행하고 키 값을 업데이트합니다. 이 결과는 비동기 클라이언트가 소비 할 수 있도록 대기열 시스템으로 내보내집니다. 그러나 대기열 처리 시스템이 순서를 보장하지는 못하므로 순서를 결정하는 메커니즘이 필요합니다. "update_version"열과 같은 것이 필요합니다.이 열은 각 업데이트 작업에서 증가합니다. 이것은 optimistic locking과 유사합니다.레드 쉬프트에서 행 레벨 버전 관리를 수행하는 방법은 무엇입니까?
어떻게 적색 변이로 이것을 할 수 있습니까?
타임 스탬프를 사용하는 것이 하나의 방법이지만 클러스터의 개별 노드에서 타임 스탬프를 가져오고 clock skew이 발생하기 쉽기 때문에 신뢰할 수 없습니다.
전 세계적으로 주문할 필요가 없습니다.
참고 :이 질문의 범위 밖에서 다른 문제가 있으므로 주문 대기열을 사용하지 않는 것이 좋습니다.
두 프로세스가 동시에 키 값을 업데이트하는 경우 왜 다른 프로세스보다 키 값이 정확합니까? 즉, 대기열 작업자가 가장 최근에 처리 된 메시지보다 오래된 새 메시지를 버린 경우, 시계의 왜곡은 어떤 차이가 있습니까? – systemjack
또한 주어진 데이터 포인트의 값이 여러 노드에 분산 될 수 있지만 업데이트 쿼리를 실행하도록 선택된 작업자 노드의 시계 만 계산됩니다. 주어진 갱신에 대한 다양한 노드 저장소의 모든 시간 소인 값은 동일합니다. – systemjack