반응형

clock drift라는 용어를 들어보았는데, 낯선 용어이기 때문에 가볍게 정리해보려고 합니다.

 

일단 이 용어가 말하는 현상이 나타나는 상황은 다음과 같습니다.

 

어떤 하나의 노드 내에서 타임스탬프를 이용하여 ID를 생성하고있는데,

순차적으로 증가해야할 타임스탬프 값이, 순서를 유지하지 않으면서 생성되고 있던 것입니다.

예를 들어, 1 2 3 4 5 6 처럼 순서대로 찍혀야할 타임스탬프가,

1 2 3 5 4 6 처럼 순차적인 생성을 하지 않는 상황입니다.

이 것은 타임스탬프 사이에 clock drift라는 것이 발생하면서, 시간이 되돌아간 것처럼 보이는 것입니다.

기준 클록과 정확히 동일한 속도로 실행되지 않으면서 나타난 현상입니다.

 

위키에 정리되어있는 clock drift의 정의는 다음과 같습니다.

클럭 드리프트(clock drift)는 클럭이 정확한 속도로 동작하지 않음으로써 발생하는 현상을 일컫는다. 클럭을 발생시키는 오실레이터가 온도나 압력 등의 변화에 의해 미세하게 영향을 받음으로써 나타난다. 일반적으로 이러한 현상은 지속적으로 나타나며, 기대되는 동작 속도보다 빠르거나 느리게 된다. 만약, 기대되는 동작 속도보다 미세하게 빠르게 영향을 미치면, 기준 클럭보다 앞서게 된다. 반면, 기대되는 동작 속도보다 미세하게 느리게 영향을 미치면, 기준 클럭보다 뒤처지게 된다. 클럭 드리프트는 시간이 지나면 지날수록 원래의 기준 시각과의 편차는 커지는 현상으로 확인이 가능하다. 마치 기준 클럭을 중심으로 떠다니는 느낌이 들기 때문에 클럭 드리프트라고 하는 것이다.

 

 

정리하면, 컴퓨터의 모든 부품은 각각 다른 속도로 동작하기 때문에 어떤 통일된 작동 기준이 필요하고, 그 때 사용되는 것이 오실레이터입니다. 오실레이터는 주기적으로 클럭을 발생시키게 되는데, 이것은 온도나 압력에 의해서 기대와 다르게 동작하게 됩니다. 이러한 현상을 clock drift라고 합니다. 이로 인해 특정 시간 순서로 발생해야하는 어떠한 트랜잭션에 문제가 발생할 수도 있는 것입니다.

 

 

LINE DEVELOPER DAY에서 ID 제너레이터에 대한 부분을 듣다가 처음 듣게 되었는데, 간략히 정리해보았습니다.

 

출처 및 참고자료

https://www.youtube.com/watch?v=Nj6z8NgKun0 

https://ko.wikipedia.org/wiki/%ED%81%B4%EB%9F%AD_%EB%93%9C%EB%A6%AC%ED%94%84%ED%8A%B8

https://en.wikipedia.org/wiki/Clock_drift

 

반응형

+ Recent posts