저는 x 머신이 있으며 특정 작업 (기본 머신)을 수행하려면 1을 선택하고 싶습니다. 나는이 기계가 가지고있는 유일한 공유 자원 인 데이터베이스를 가지고 있으며 기계 간 통신 메커니즘이 없다.리더 선택
기계를 선택하려면 먼저 db에 값을 쓰고 처음 성공한 쪽을 선택하십시오 (예 : M1). M1은 데이터베이스를 주기적으로 업데이트하여 해당 데이터베이스가 살아 있는지 확인합니다. M1이 죽을 때 M1이 DB를 최근에 업데이트하지 않은 것으로 보이는 다른 시스템은 주 기계 역할을 맡기 위해 db에 쓰려고 시도합니다.
어떤 시점에서 머신이 db에 어떤 값을 쓸 수있어 모든 머신이 동일한 값을 쓰려고합니까? 시계가 모든 컴퓨터에서 동기화되면 YYMMDDHHMM을 사용할 수 있습니다. 그러나 그것은 사실이 아닐 수도 있습니다.
모든 포인터/아이디어?
모든 기계가 같은 값을 쓰는 이유는 무엇입니까? 분명히 M1은 M2가 쓰는 것과 다른 것을 써야하기 때문에 M2는 M1이 먼저 도착한다는 것을 안다. –
DBMS의 기능을 사용하여 서버 자체의 시간을 쿼리 할 수 없습니까? –
@ReinierTorenbeek, 고마워, 왜 내가 그런 생각을하지 않았는지 모르겠다. – Sam