1
내가 두 작업을 필요로 키 값을 저장을 알리는 기사의 숫자를 읽고 : 키/값 저장소가 동시성을 관리하는 방법은 무엇입니까?
get(key)
이 하나의 프로세스에 대한 괜찮
set(key, value)
-
을하지만, 여러 프로세스가있을 때, 키 값 저장소가 동시성을 어떻게 관리합니까?
에 대해 사용 된 버전 번호 (예 : 부호없는 정수)를 생각하면 스타일 동시성이 필요합니다. 예를 들어, 두 작업은 다음과 같습니다
set(key, value, version)
는 - 불일치는 동시성 오류가 발생하고 성공적인 일치가 증가됩니다.get(key)
(value
및version
모두를 반환).
version
가
조건입니다
대부분의 키/값 구조는 모든 작업에서 스레드로부터 안전하지 않습니다. 데이터 경쟁을 피하는 것은 사용자의 몫입니다. – iamnoten
뮤텍스 등을 사용하여 데이터 레이스를 피하십시오? 공유 된 KV 저장소가있는 별도의 컴퓨터에서는 불가능합니다. – magnus
공유 KV 매장의 경우 데이터베이스처럼 작동하며 일반적으로 경쟁 처리 메커니즘이 서로 다릅니다. 특정 문서를 확인해야합니다. 귀하의 버전 번호 솔루션은 그 중 하나 일 수도 있지만 실제 구현은 더욱 복잡합니다. – iamnoten