2012-08-17 2 views
4

사람들은 왜 분산 자물쇠가 필요합니까?분산 잠금이란 무엇이며 왜 사용합니까?

공유 리소스가 로컬 시스템에 의해 보호되는 경우 분산 잠금이 필요하지 않은 것입니까?

공유 리소스가 특정 종류의 API 또는 서비스를 사용하여 다른 사용자에게 노출되고이 API 또는 서비스가 해당 로컬 잠금을 사용하여 보호되는 경우를 의미합니다. 그러면 우리는 이런 종류의 분산 된 잠금을 필요로하지 않습니다. 내가 맞습니까?

답변

1

quora에 질문하신 후. 나는 대답을 얻은 것 같아.

N 작업자 서버가 데이터베이스 서버에 액세스한다고 가정 해 보겠습니다. 여기에 두 부분이 있습니다

  1. 데이터베이스는 다른 클라이언트의 동시 액세스 (N 작업 서버)에 의해 손상으로부터 데이터를 보호하기 위해 자신의 잠금 방법이있다. 이것은 데이터베이스의 로컬 잠금이 나오는 곳입니다.

  2. N 작업자 서버는 올바른 작업을 수행하기 위해 대관식을 필요로 할 수 있으며 이는 응용 프로그램마다 다릅니다. 이것은 분산 된 잠금이 나오는 곳입니다. 예를 들어, 동일한 작업을 실행중인 두 작업자 서버가 데이터베이스 테이블을 삭제하고 테이블에 레코드를 추가하는 경우를 가정 해보십시오. 데이터베이스 서버는 내부 데이터가 맞는지를 확실히 보장 할 수 있지만이 두 프로세스는 서로를 조정하기 위해 분산 잠금이 필요합니다. 그렇지 않으면 하나의 프로세스가 다른 프로세스의 테이블을 삭제합니다.

2

예, 아니오. 잠금 설정 방법에 따라 뮤텍스를 방지하기 위해 로컬 API에서 정보를 노출하는 경우 분산 잠금이 수행하려고하는 것과 정확히 일치 할 수도 있지만 if API를 개발하지 않았다면 API의 소스를 파헤쳐 로컬라이제이션 된 시스템인지 분산 된 시스템인지 알아 내야합니다. 솔직히 자물쇠는 자물쇠이다. 자물쇠는 똑같은 일을하려고 시도하고있다. 지역화 된 잠금보다 분산 된 잠금의 이점은 값 비싼 캐시 포인트에있는 클라이언트의 과도한 액세스를 방지하기 위해 이미 큐잉을 고려하고 있다는 것입니다.

+0

안녕하세요, 내 대답을 확인하십시오, 이것을 명확히하기를 바랍니다. –

+0

@ ming.kernel 당신의 대답은 교과서 잠금과 뮤텍스입니다. 제가 말했듯이, 자물쇠는 자물쇠입니다. –

관련 문제